Besitzer rekursiv mit Powershell wechseln?


9

Ich versuche, Powershell zu verwenden, um den Besitzer eines Ordners rekursiv zu ändern.

Ich benutze im Grunde diesen Code:

$acct1 = New-Object System.Security.Principal.NTAccount('DOMAIN\Enterprise Admins')
$profilefolder = Get-Item MyFolder
$acl1 = $profilefolder.GetAccessControl()
$acl1.SetOwner($acct1)
set-acl -aclobject $acl1 -path MyFolder

Dadurch wird der Besitz auf der ersten Ebene geändert, jedoch nicht für Unterordner oder Dateien. Gibt es eine Möglichkeit, den Umfang auf alle Inhalte von auszudehnen MyFolder?

Antworten:


16

Der Befehl zum Herunterfahren macht genau das, was Sie versuchen. Es ist ein normales Windows-Dienstprogramm.

Dieses Snippet wendet den Besitz auf den aktuellen Benutzer an, Sie können ihn jedoch auf einen beliebigen Benutzer festlegen.

http://technet.microsoft.com/en-us/library/cc753024(v=ws.10).aspx

takeown /f "c:\folder\subfolder" /r

Wenn Sie auf Probleme stoßen, stellen Sie sicher, dass Sie das cmd / Powershell-Fenster mit Administratorrechten ausführen. Gleiches gilt für die andere Powershell-spezifische Antwort.


1
Dieser Rotz scheint zu funktionieren, um den Besitzer einer Gruppe zuzuordnen (außer "Administratoren")
Gert van den Berg

5

Das Cmdlet Set-ACL übernimmt den Pfadparameter aus der Pipe. Daher wird empfohlen, den Inhalt eines Verzeichnisses weiterzuleiten, um den Eigentümer für jedes Element festzulegen:

dir -r c:\Users\goyuix\temp | set-acl -aclobject $acl1

Dadurch wird der Eigentümer rekursiv für alle Ordner / Dateien im temporären Verzeichnis in meinem Profil festgelegt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.