Benutzer mit den meisten Antworten
Wie kann ich alle Dateien eines Benutzers auf einem Gruppenlaufwerk finden?

Frage
-
Hallo.
Ich muss ca. 300 Benutzer aus dem AD löschen und möchte bevor ich das tue alle Dateien die diesen Benutzern gehören finden und löschen. Da alle Benutzer auf einem Sammellaufwerk Dateien ablegen können, muss ich nur die Dateien der zu löschenden Benutzer löschen! Nicht alle Dateien!!
Am liebsten würde ich das Löschen der Dateien in mein Powershell Skript mit einbinden.
Ich habe jetzt diesen Befehl gefunden:
Get-ChildItem -Recurse X:\User\shared\ | get-acl | Format-Table owner,path | Out-File x.txt
Nachteil: Der Pfad wird nicht richtig angezeigt.
Beispiel:
DOMAIN\ACCOUNT Microsoft.PowerShell.Core\FileSystem::X:\User\share...
Kann ich das Abschneiden des Textes verhindern oder besser den Teil "Microsoft.PowerShell.Core\FileSystem::" weglassen??
Gruß
Karsten
Antworten
-
Hallo zusammen,
@Frank: Danke für den Hinweis! Habe es jetzt im Befehl eingebunden
@Karsten: das Abschneiden kommt vom Out-File Cmdlet. Standardmäßig passiert es bei 80 Zeichen, man kann aber auch einen benutzerdefinierten Wert per -width Parameter angeben:
Get-ChildItem -Recurse X:\User\shared\ | get-acl | select owner, @{Label="Path"; Expression={($_.Path).substring(38)}} | Out-File x.txt -width 300
wie sieht es jetzt aus?
Gruß,
Andrei- Als Antwort markiert Andrei TalmaciuModerator Montag, 21. Juni 2010 11:54
Alle Antworten
-
Hallo Andrei,
leider nein. Auch bei deiner Lösung werden die Zeilen abgeschnitten.
Ich habe jetzt folgenden Befehl genutzt:
dir -recurse X:\User\shared | Get-Acl | foreach { write-output $_.owner $_.path } | out-file x.txt
Leider muss ich hinterher alles mit Excel umstellen um die Dateien löschen zu können. Da muss es doch auch andere, bessere Lösungen geben!
Gruß
Karsten
-
Hallo Andrei,
da hat sich bei Dir ein kleiner Fehler eingeschlichen:
Get-ChildItem -Recurse X:\User\shared\ | get-acl | select owner, @{Label="Path"; Expression={($_.Path).substring(38)}}
$_.path muss erst ausgewertet werden, bevor Du den Substring ziehst. Ansonsten passt das.
Grüße
Frank
-- Frank Röder MVP Directory Services blog.iteach-online.de -- -
Hallo zusammen,
@Frank: Danke für den Hinweis! Habe es jetzt im Befehl eingebunden
@Karsten: das Abschneiden kommt vom Out-File Cmdlet. Standardmäßig passiert es bei 80 Zeichen, man kann aber auch einen benutzerdefinierten Wert per -width Parameter angeben:
Get-ChildItem -Recurse X:\User\shared\ | get-acl | select owner, @{Label="Path"; Expression={($_.Path).substring(38)}} | Out-File x.txt -width 300
wie sieht es jetzt aus?
Gruß,
Andrei- Als Antwort markiert Andrei TalmaciuModerator Montag, 21. Juni 2010 11:54