Powershellで所有者を再帰的に変更しますか?


9

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ますか?

回答:


17

takeownコマンドは、実行しようとしていることを正確に実行します。これは通常のWindowsユーティリティです。

このスニペットは、所有権を現在のユーザーに適用しますが、任意のユーザーに設定できます。

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

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

問題が発生した場合は、管理者権限でcmd / powershellウィンドウを実行していることを確認してください。同じことが他のPowerShell固有の回答にも当てはまります。


1
このdoeは、所有者をグループ(「管理者」以外)に設定するために機能しないようです
Gert van den Berg

5

Set-ACLコマンドレットはパイプからパスパラメーターを取得するため、ディレクトリのコンテンツをパイプして各アイテムの所有者を設定することをお勧めします。

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

これにより、プロファイルの一時ディレクトリにあるすべてのフォルダー/ファイルの所有者が再帰的に設定されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.