ibicis 10 Geschrieben 4. Februar 2013 Melden Teilen Geschrieben 4. Februar 2013 Ich möchte auf XP-Clients nach verwaisten Userprofilen suchen, also dachte ich, dass ich jeweils nach der Datei "NTUSER.DAT" unter "C:\Dokumente und ..." suche und als verwaist deklariere, was älter ist als 3 Monate.Da forfiles leider kein UNC unterstützt, musste ps (Powershell) herhalten, mit Get-ChildItem komme ich weiter, aber es läuft nicht nach Wunsch. Hier die Syntax, die alle "NTUSER.DAT" ausgeben soll: Get-ChildItem "\\netzwerk-pc\C$\Dokumente und Einstellungen\*" -name "NTUSER.DAT" -recurse -force | ? { ($_.LastAccessTime -lt (Get-Date).AddMonths(-3)) } | out-file "\\netzwerk-pc1\c$\Dokumente und Einstellungen\Administrator\Desktop\ntuser-dat.txt" Was mir nun ausgegeben wird sind zwar "NTUSER.DAT"-Namen, aber egal, was ich als Datumsfilter (AddMonths, AddDays, AddYears) einsetze, es bleibt immer bei derselben Auflistung. Syntaxfehler wirft ps nicht, aber irgendwie greift die Filterung nicht oder falsch. Was läuft da verkehrt?Außerdem hätte ich gern, dass das Datum der letzten Veränderung mit ausgegeben wird (aktuell listet ps nur die Dateinamen unereinander ohne weiteren Kontext auf), wie stelle ich das an (wenn mgl. mit Syntax-Bsp. im Code)? Danke vorab. Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 4. Februar 2013 Melden Teilen Geschrieben 4. Februar 2013 Hallo, Lastaccesstime ist default ab vista deaktiviert, kann man aber aktivieren http://msdn.microsoft.com/en-us/library/ms940846%28v=winembedded.5%29.aspx Zum Filtern der Ausgabe kannst du Select-object oder Format-Table verwenden blub Zitieren Link zu diesem Kommentar
ibicis 10 Geschrieben 6. Februar 2013 Autor Melden Teilen Geschrieben 6. Februar 2013 ... Zum Filtern der Ausgabe kannst du Select-object oder Format-Table verwenden ... Danke für deine Antwort, das sagt mir momentan nicht sehr viel, da ich nicht weiß, wie ich diese Option wo einbinden muss. Hast du ein Bsp., wie ich das syntaktisch einbinden kann? Ich habe mir hier aus dem Forum ein Bsp.-Script geholt, welches ich auf diesem Weg umbog: $path="\\netzwerk-pc\C$\Dokumente und Einstellungen\*" Get-ChildItem $path -name "NTUSER.DAT" -recurse -force $MonateAlt=(Get-Date).AddMonths(-3) $DateiAlter=$MonateAlt # Zuweisung, die benutzt wird # Ab hier nichts mehr ändern Foreach ($item in (dir –recurse $path)) { If (!( $item.PSIsContainer)) { If ($item.LastWriteTime –lt $DateiAlter) { Write-output "$($item.FullName), $($item.LastWriteTime), $($item.Length)" } } } Die Ausgabe schaut nun folgendermaßen aus (genau so möchte ich es eben nicht haben): NTUSER.DAT NTUSER.DAT NTUSER.DAT NTUSER.DAT NTUSER.DAT NTUSER.DAT \\netzwerk-pc\C$\Dokumente und Einstellungen\administrator\Eigene Dateien\Eigene Bilder\Beispielbilder.lnk, 12/07/2012 12:00:34, 907 \\netzwerk-pc\C$\Dokumente und Einstellungen\administrator\Eigene Dateien\Eigene Musik\Beispielmusik.lnk, 12/07/2012 12:00:34, 897 Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 6. Februar 2013 Melden Teilen Geschrieben 6. Februar 2013 das sagt mir momentan nicht sehr viel, da ich nicht weiß, wie ich diese Option wo einbinden muss. Hast du ein Bsp., wie ich das syntaktisch einbinden kann? Schau in seine Signatur, dort hast Du sehr viele Beispiele: http://www.powershellpraxis.de/index.php/suche?searchword=format-table&ordering=newest&searchphrase=all Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.