2017-07-07 2 views
0

1人のユーザーからアクセスルールを取得して他のユーザーに適用しようとしています。次のコマンドを実行すると、エラーは発生しませんが、ルールは追加されません。私が$アクセスをログアウトするとき、それは私が望むルールです(そのユーザーのリストの4番目のものです)。私が$ aclをログアウトすると、グループ内の各ユーザのaclオブジェクトになります。私は、メソッドAddAccessRuleが存在しないと言っているエラーを取得しません。1人のユーザーからpowershell内の他のユーザーにACLルールを追加する

スクリプトを実行した後にActive Directory内のユーザーを見ると、変更はありません。

誰かが私がここで間違ったことやこれを達成するためのよりよい方法を知っていますか?

$users = Get-ADUser -SearchBase “OU=Users,OU=Corporate Office,DC=corp,DC=company DC=com”-filter * | Select-Object -ExpandProperty DistinguishedName 
$access = (Get-Acl ‘CN=peron,OU=Users,OU=Corporate Office,DC=corp,DC=company,DC=com’).access[3] 
    foreach ($user in $users){ 
        $acl = (Get-Acl $user) 
     echo $acl 
       $acl.AddAccessRule(($access))     
    } 
+0

「set-acl」で更新されたaclを適用するコードはありません。 – BenH

答えて

1

pointed out in the commentsされているように、あなたはどの時点でSet-ACLを使用していません。

アクセスルールを追加し、ターゲットオブジェクトに更新ACLを設定しないと、ワードドキュメントを変更してから変更を保存しないことに匹敵します。

foreach ($user in $users){ 
    $acl = (Get-Acl $user) 
    $acl.AddAccessRule(($access)) 
    Set-Acl -AclObject $acl $user.DistinguishedName     
} 
関連する問題