PowerShellでフォルダのACLを一括設定する
フォルダをアクセス権を設定したいセキュリティグループ名のリストをCSVで用意し、
このps1スクリプトに実行させます。
付与される権限は固定
下記の例
$aclparam = @($ADGroup, "Modify, Synchronize" ,"ContainerInherit, ObjectInherit","None","Allow")
は、
「変更」「読み取りと実行」「フォルダーの内容の一覧表示」「読み取り」「書き込み」
を対象のセキュリティグループに追加します。
CSVのフォーマット
Tfolder,Agroup
対象フォルダ1,対象セキュリティグループ1
対象フォルダ2,対象セキュリティグループ2
# ダイアログを表示 if($dialog.ShowDialog() -eq "OK"){ # [OK]ボタンがクリックされたら、選択されたファイル名(パス)を表示 $dialog.FileName + " が選択されました。" } $CsvFileName = $dialog.FileName Write-Host $CsvFileName #get-content samplelist.csv > unicode.csv $arrayData = @(import-csv $CsvFileName) $j = $arrayData.Length Write-Host $j for ($i=0; $i -lt $j; $i++){ $FolderPath = "対象フォルダの一つ上位のフォルダパス" + $arrayData[$i].TFolder $ADGroup = $arrayData[$i].AGroup Write-Host $FolderPath Write-Host $ADGroup $aclparam = @($ADGroup, "Modify, Synchronize" ,"ContainerInherit, ObjectInherit","None","Allow") $rule = New-Object System.Security.AccessControl.FileSystemAccessRule $aclparam $acl = Get-Acl $FolderPath $acl.AddAccessRule($rule) Set-Acl $FolderPath -AclObject $acl Write-Host $i }