Powershellを使用して、フォルダーの所有者を再帰的に変更しようとしています。
私は基本的にこのコードを使用しています:
$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
これにより、最初のレベルで所有権が変更されますが、サブフォルダーやファイルの所有権は変更されません。スコープをMyFolder
のすべてのコンテンツに拡張する方法はありますか?
Takeownコマンドは、実行しようとしていることを正確に実行します。これは通常のWindowsユーティリティです。
このスニペットは現在のユーザーに所有権を適用しますが、任意のユーザーに設定できます。
http://technet.Microsoft.com/en-us/library/cc753024(v = ws.10).aspx
takeown /f "c:\folder\subfolder" /r
問題が発生した場合は、管理者権限でcmd/powershellウィンドウを実行していることを確認してください。同じことが他のPowerShell固有の回答にも当てはまります。
Set-ACLコマンドレットはパイプからパスパラメーターを取得するため、ディレクトリのコンテンツをパイプして各アイテムの所有者を設定することをお勧めします。
dir -r c:\Users\goyuix\temp | set-acl -aclobject $acl1
これにより、自分のプロファイルの一時ディレクトリにあるすべてのフォルダー/ファイルの所有者が再帰的に設定されます。