私は現在Vista 32ビットを使用しています。 Windowsセキュリティグループ「Everyone」を追加して、ディレクトリとそのすべてのサブディレクトリとすべてのファイルを完全に制御する方法を教えてください。私が使用できるpowershellスクリプトはありますか?"Everyone"というグループをディレクトリに追加し、そのすべてのサブディレクトリ
ありがとうございます!
私は現在Vista 32ビットを使用しています。 Windowsセキュリティグループ「Everyone」を追加して、ディレクトリとそのすべてのサブディレクトリとすべてのファイルを完全に制御する方法を教えてください。私が使用できるpowershellスクリプトはありますか?"Everyone"というグループをディレクトリに追加し、そのすべてのサブディレクトリ
ありがとうございます!
私はmartonaのスニペットを拡張し、すべてのフォルダとサブフォルダにアクセスできました。ここに私のコードです -
$FilesAndFolders = gci "c:\data" -recurse | % {$_.FullName}
foreach($FileAndFolder in $FilesAndFolders)
{
#using get-item instead because some of the folders have '[' or ']' character and Powershell throws exception trying to do a get-acl or set-acl on them.
$item = gi -literalpath $FileAndFolder
$acl = $item.GetAccessControl()
$permission = "Everyone","FullControl","Allow"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($rule)
$item.SetAccessControl($acl)
}
$acl = Get-Acl c:\mydir
$permission = "Everyone","FullControl","Allow"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($rule)
$acl | Set-Acl c:\mydir
"ネイティブ" PowerShellの方法は必ずしも最良の方法ではない場合があります。このようなものについては、私はまだicacls.exeを使用します。良いol 'exesはPowerShellでうまくいくことを忘れないでください。あなたが設定し、実行したいディレクトリにジャストのCD:
icacls $pwd /grant "Everyone":(OI)(CI)F
これは、誰もが(権限の継承を経由して)下向きにカレントディレクトリへのフルアクセスを提供します。これは、dir構造のEveryoneに対して明示的な拒否がない限り有効です。
ありがとうございます。うまく動作し、誰かが "Get-Item -LiteralPath"がUNCパスで動作することを不思議に思うなら、リモートマシンに権限を適用することができます。 – Patrick