Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Ab bestimmten Datum sortieren Powershell

Mitglied: Dpole86

Dpole86 (Level 1) - Jetzt verbinden

26.11.2013 um 11:05 Uhr, 3027 Aufrufe, 12 Kommentare

Guten Morgen liebe Administratoren

Ich ersuche eure hilfe da ich mich auf fremden Gebiet befinde.
Bisher habe ich nur batch gescriptet will mich aber nun weiter wagen richtung Powershell.

Ich versuche gerade aus einer CSV die Daten ab einem bestimmten Datum zu Sortieren und
die Ausgabe danach als Email zu verschicken.

Ich habe mich in Powershell etwas eingelesen und fand den Befehl import-Csv
dadurch kann ich die CSV importieren und auch nach Datum Sortieren

Wie Sortiere ich allerdings nach einem Bestimmten datum ?

Grüß eRoman

Mitglied: Snowman25
26.11.2013, aktualisiert um 11:18 Uhr
Zitat von Dpole86:
Guten Morgen liebe Administratoren
Hallo Dpole86

Wie Sortiere ich allerdings nach einem Bestimmten datum ?
Wie meinst du das? Willst du, dass alles bevor einem festgelegtem Datum ignoriert wird? oder abgeschnitten?


Grüß eRoman
Gruß,
Snowman25
Bitte warten ..
Mitglied: Dpole86
26.11.2013 um 11:25 Uhr
Hi Snowman

Ich hätte gerne das ab einem Bestimmten Datum alles Ignoriert wird.

wir haben hier bei uns Rsync am Laufen um die Rechner synchron zu halten.

Das CSV welches ich gestern mit deiner Hiilfe aus dem Log erstellt habe, muss ich nun
so aufbereiten das wir jeden tag oder einmal in der woche eine mail bekommen mit dem Inhalt,
wo wir sehen, welcher Rechner sich länger nicht mehr am Rsync gemeldet hat.

so sieht die Datei bisher aus:

Client Date Time

Rechner NBAPS185 gemeldet am 2013/09/04 22:00:07
Rechner NBAPSV49 gemeldet am 2013/09/04 22:00:19
Rechner NBAPSV49 gemeldet am 2013/09/04 22:10:16
Rechner NBAPSV49 gemeldet am 2013/09/04 22:20:19
Rechner NBAPSV49 gemeldet am 2013/09/04 22:30:18
Rechner NBAPSV49 gemeldet am 2013/09/04 22:40:19
Rechner NBAPSV49 gemeldet am 2013/09/04 22:50:16
Rechner NBAPSV49 gemeldet am 2013/09/04 23:00:18
Rechner NBAPS164 gemeldet am 2013/09/05 0:03:27

Das Datum reicht von 04.09.2013 bis gestern.

Grüße Roman
Bitte warten ..
Mitglied: Daniel.Wenzel
26.11.2013 um 11:26 Uhr
Hallo Roman,

hier ist ein Link zu einem ziemlich guten PowerShell Blog:

https://blogs.technet.com/b/heyscriptingguy/archive/2012/01/10/order-you ...

Und hier findest du etwas zu der Syntax des "sort by" Objektes:

http://technet.microsoft.com/en-us/library/hh849912.aspx

Ich hoffe das hilft dir weiter.

Gruß
Daniel
Bitte warten ..
Mitglied: colinardo
26.11.2013, aktualisiert um 12:12 Uhr
Hallo Roman,
das ist kein Problem.
Beispiel: Wenn deine CSV-Datei z.B. so formatiert ist:
Client;DateTime
NBAPS185;2013/09/04 22:00:07
NBAPSV49;2013/09/04 22:00:19
NBAPSV49;2013/09/04 22:10:16
NBAPSV49;2013/09/04 22:20:19
NBAPSV49;2013/09/04 22:30:18
NBAPSV49;2013/09/04 22:40:19
NBAPSV49;2013/09/04 22:50:16
NBAPSV49;2013/09/04 23:00:18
NBAPS164;2013/09/05 0:03:27
kannst du folgenden Code nutzen um alle Einträge die nicht älter als 7 Tage sind sortiert nach Client anzuzeigen:
01.
$csv = Import-CSV "C:\info.csv" -Delimiter ";"
02.
$csv | ?{(get-date $_.DateTime) -gt (get-date).AddDays(-7)} | sort -Property Client
Grüße Uwe
Bitte warten ..
Mitglied: Dpole86
26.11.2013, aktualisiert um 13:52 Uhr
Hi Daniel Danke für die Links

Hi Uwe,

Super hat wunderbar geklappt.. Danke :D

Allerdings habe ich nun das Problem das ich Trotzdem mehrere Zeilen habe (insgesamt 1000)
somit ist das etwas unübersichtlich.

Ich müsste jetzt noch Doppelte Clients ausschliessen und nur den Letzen in dem Dokuemtn anzeigen lassen.

Kurz gesagt muss ich wissen welches Gerät sich wann das letzte mal gemeldet hat.

muss ich da mit foreach basteln?


Grüße Roman


Edit:

Habe bisher folgendes versucht:

$csv = Import-CSV "C:\win\bat\test.csv"
$csv | ?{(get-date $_.Date) -gt (get-date).AddDays(-7)} | sort -Property Date | measure -Maximum

gibt aus

Count : 548
Average :
Sum :
Maximum :
Minimum :
Property :

Count : 1
Average :
Sum :
Maximum : 11/26/2013 1:44:35 PM
Minimum :
Property :


habe auch versucht:

$csv = Import-CSV "C:\win\bat\test.csv"
$csv | ?{(get-date $_.Date) -gt (get-date).AddDays(-7)} | sort -Property Date |?{(foreach $_.Client) | measure -Maximum}

bringt aber viele viele Zeilen ^^

Edit:

Ich glaube ich habs hinbekommen.

Jetzt muss ich noch die Bat-datei anpassen :D
Bitte warten ..
Mitglied: Dpole86
26.11.2013 um 14:27 Uhr
So neues Problem.

Der Code

$csv = Import-CSV "C:\win\bat\test.csv"
$csv | ?{(get-date $_.Date) -gt (get-date).AddDays(-7)} | sort -Property Date |?{(foreach $_.Client) | measure -Maximum}

bringt das gleiche Ergebniss wie

$csv = Import-CSV "C:\win\bat\test.csv"
$csv | ?{(get-date $_.Date) -gt (get-date).AddDays(-7)} | sort -Property Date

mit dem unterschied das ersortiert.

ich habe aber weiterhin Einträge wie:

NBAPS99 2013/11/20 00:19:01
NBAPS166 2013/11/20 00:51:03
NBAPS99 2013/11/20 03:29:14

wie Prüfe ich das letze datum und die letze zeit eines Clients?
Bitte warten ..
Mitglied: colinardo
26.11.2013, aktualisiert um 15:18 Uhr
probiers mal mit dem -Unique Parameter, so wie deine Liste aussieht steht die aktuellste Zeit des Clients immer an letzter Stelle, dann geht das hier:
01.
$csv = Import-CSV "C:\CSVDatei.csv" -Delimiter ";"
02.
$csv | ?{(get-date $_.DateTime) -gt (get-date).AddDays(-7)} | Sort-Object -Property Client -Unique
Grüße Uwe
Bitte warten ..
Mitglied: Dpole86
26.11.2013 um 14:39 Uhr
Sieht gut aus :D

ich glaube das war das Stichwort das ich gebruacht habe

Danke Uwe
Bitte warten ..
Mitglied: Dpole86
26.11.2013 um 15:00 Uhr
Hi Uwe.

Leider ist das Problem noch nicht ganz behoben.
Zwar bekomme ich jetzt eine Liste wo der REchner jeweils nur 1 mal auftaucht, Allerdings ist das Meldedatum nicht richtig

Beispiel hat sich NBAPS77 am 04.11.2013 letztes mal gemeldet. Das aber kann nicht sein da es mein Rechner ist und ich mich immer wieder daran melde ^^

habs mit
|?{(foreach $_.Date)} -unique
versucht aber das geht irgendwie nicht
Bitte warten ..
Mitglied: colinardo
26.11.2013 um 15:05 Uhr
wie sieht deine CSV-Liste genau aus und welchen Delimiter verwendest du, formatiere die Liste mal so wie ich es oben geschrieben habe, dann geht das. Und bitte benutze Tags zum formatieren deines Codes hier im Forum. Merci.
Wahrscheinlich verwendest du als Delimiter Leerzeichen und hast Datum und Zeit getrennt voneinander in jeweils einer Spalte aufgeführt.
Bitte warten ..
Mitglied: Dpole86
26.11.2013 um 15:11 Uhr
Hi colinardo

Muss ich den Delimiter mitnehmen?

Ja das ist richtig. Bei mir ist das Datum und die Zeit in jeweils einer Spalte.

Mein code sieht so aus:

01.
 
02.
$csv = Import-CSV "C:\win\bat\test.csv"
03.
$csv | ?{(get-date $_.Date) -gt (get-date).AddDays(-7)} | Sort-Object -Property Client -unique
Probiert habe ich es gerade eben mit


01.
 
02.
$csv = Import-CSV "C:\win\bat\test.csv"
03.
$csv | ?{(get-date $_.Date) -lt (get-date).AddDays(-7)} | Sort-Object -Property Client -unique
Allerdings ist da das letze Meldedatum am 24.09.2013

Grüße Roman
Bitte warten ..
Mitglied: colinardo
26.11.2013, aktualisiert um 18:47 Uhr
So hier noch mal zum Abschluss die Lösung für Roman:
bei einer so formatierten CSV-Datei:
"Client","Date","Time"
"NBAPS77", 2013/09/04,"17:52:53"
"NBAPS71", 2013/09/04,"18:00:09"
"NBAPS79", 2013/09/04,"20:00:46"
"NBAPS164", 2013/09/04,"20:27:56"
"NBAPS99", 2013/09/04,"20:59:39"
"NBAPS185", 2013/09/04,"21:00:08"
"NBAPS128", 2013/09/04,"21:10:18"
"NBAPS185", 2013/09/04,"22:00:07"
"NBAPS164", 2013/09/05,"00:03:27"
"NBAPS79", 2013/09/05,"00:24:40"
"NBAPS99", 2013/09/05,"00:43:38"
erhalten wir mit folgendem Code:
01.
$csv = Import-CSV "C:\Temp\test.csv" -Delimiter ","
02.
$csv | ?{(get-date $_.Date) -gt (get-date).AddDays(-7)} | sort Client,Date,Time -Descending | group Client | %{$_.Group[0]}
die Einträge mit dem jeweils aktuellste Datum. Doppelte Einträge in der Spalte "Client" werden also herausgefiltert und nur der Eintrag mit dem jeweils aktuellsten Datum erhalten.
Die Ausgabe sähe dann also für obige Daten so aus:
Client    Date        Time       
------    ----        ----       
NBAPS99   2013/09/05  00:43:38   
NBAPS79   2013/09/05  00:24:40   
NBAPS77   2013/09/04  17:52:53   
NBAPS71   2013/09/04  18:00:09   
NBAPS185  2013/09/04  22:00:07   
NBAPS164  2013/09/05  00:03:27   
NBAPS128  2013/09/04  21:10:18   
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

In einem Powershell Skript einen bestimmt User anmelden

Frage von Bommi1961Batch & Shell2 Kommentare

Hallo zusammen, ich muss ein PS Skript erstellen mit dem ich Installierte SW Automatisch und Silent Aktivieren kann. Ich ...

Batch & Shell

Powershell Monthcalendar Datum Format ändern

gelöst Frage von xpxy15Batch & Shell4 Kommentare

Hallo Zusammen Wie kann ich bei monthcalendar Windowsforms den Format ändern. Ich brauche es in dieser Format dd.mm.yyyy. Ich ...

Microsoft

Mit Powershell Datum aus Ordnername als Datum extrahieren

gelöst Frage von YotYotMicrosoft11 Kommentare

Moin! ja, ich habe bereits gesucht und auch ein paar Fortschritte gemacht, da ich aber außerhalb von Exchange gerade ...

Batch & Shell

Powershell - Windows kurzes Datum ändern

gelöst Frage von adm2015Batch & Shell4 Kommentare

Hallo, ich versuche aktuell das Windows Datumsformat (kurzes Datum) via Powershell zu ändern. Dies ist eine Einstellung welche für ...

Neue Wissensbeiträge
Windows 10

Windows 10 - Programme laufen schneller, wenn Sie mit Administratorrechten ausgeführt werden !

Erfahrungsbericht von 1Werner1 vor 5 StundenWindows 106 Kommentare

Moin, das wollte ich erst nicht glauben, aber es ist so. Wenn Ihr ein Programm mit Administratorrechten unter Windows ...

Sicherheits-Tools
Putty hat heftige Bugs korrigiert!
Information von Lochkartenstanzer vor 1 TagSicherheits-Tools5 Kommentare

Moin, Wie man aus herauslesen kann, sind in den Versionen vor 0.71 gravierende Bugs, die es angeraten erscheinen lassen, ...

Off Topic
Sachen die die Welt nicht braucht - Platz 1
Tipp von brammer vor 4 TagenOff Topic21 Kommentare

Hallo, ich habs als Tipp angelegt als Erfahrungsbericht nein Danke brammer

Humor (lol)
Spirit of Health-Kongress in Berlin
Information von AnkhMorpork vor 4 TagenHumor (lol)6 Kommentare

tgif! Beim dritten Spirit of Health-Kongress trafen sich am Wochenende Alternativmediziner und Naturheilkundler im Maritim Hotel Berlin, um sich ...

Heiß diskutierte Inhalte
Windows Server
Eingeschränkte Gruppen - Spezielle Benutzergruppe hinzufügen
Frage von killtecWindows Server17 Kommentare

Hallo, ich möchte gerne folgendes Realisieren: Ich habe bei mir Eingeschränkte Gruppen via GPO aktiv und möchte nun der ...

Microsoft Office
Videodateien auf Windows Server 2008 R2 öffnen schlägt fehl
Frage von SchroediMicrosoft Office13 Kommentare

Hallo zusammen, wir haben das Problem das embedded Videos in PowerPoint (O365) auf unserer Citrix Farm (6.5) nicht abgespielt ...

DNS
Größere DNS Probleme nach zweitem DC. Eigentlich sollte es auch dadurch besser werden
Frage von TeWutzDNS13 Kommentare

Hallo zusammen, nachdem ich letzte Woche erfolgreich einen zweiten DC ) an den Start gebracht habe melden sich weiterhin ...

LAN, WAN, Wireless
Switch als Verbindung von 2 Netzwerken
gelöst Frage von Lutz-ReLAN, WAN, Wireless12 Kommentare

Guten Tag Ich hab folgendes Problem 2 Rechner und 2 IP Kameras sind ohne dhcp in einen IP4 Netzwerk ...