none
Wie kann ich alle Dateien eines Benutzers auf einem Gruppenlaufwerk finden? RRS feed

  • 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


    Montag, 14. Juni 2010 09:23

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

    Dienstag, 15. Juni 2010 15:14
    Moderator

Alle Antworten

  • Hallo Karsten,

    klappt es so?

    Get-ChildItem -Recurse X:\User\shared\ | get-acl | select owner, @{Label="Path"; Expression={$_.Path.substring(38)}} | Out-File x.txt

    Gruß,
    Andrei

    Dienstag, 15. Juni 2010 06:55
    Moderator
  • 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

    Dienstag, 15. Juni 2010 12:58
  • 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 --
    Dienstag, 15. Juni 2010 13:00
  • 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

    Dienstag, 15. Juni 2010 15:14
    Moderator