2017-05-29 76 views
0

我有大约1000台计算机,我必须设置NT AUTHORITY \ Authenticated Users允许进行身份验证。 我试图编写基于几个谷歌搜索脚本,但它不起作用。通过PowerShell在AD中的几台计算机上设置Acl

请看看我的脚本。也许我错过了一些东西。

Import-Module ActiveDirectory 
Set-Location AD:\ 
$ALLDTPC = Get-Content H:\dtcomputer.txt 
foreach ($PC In $ALLDTPC) { 
    $ace = (Get-Acl "AD:$((Get-ADComputer $PC).DistinguishedName)").Access 
    foreach ($acl in $ace.Access) { 
     $accessrule = New-Object System.Security.AccessControl.ActiceDirectoryAccessRule("NT AUTHORITY\Authenticated Users", "Allow") 
     $ace.AddAccessRule($accessrule) 
     Set-Acl -AclObject $ace $PC.DistinguishedName -Verbose -Passthru 
    } 
} 
+1

您从获取的ACL得到的ACE,然后你想在foreach再次检索的ACE –

回答

0

我没有AD avaibable现在,但是从我所看到的,你在第6行有一个问题(.access)我不知道,如果foreach循环做你的期望,也许首先尝试一个项目并查看结果。

试试这个代码:

Import-Module ActiveDirectory 
Set-Location AD:\ 
$ALLDTPC = Get-Content H:\dtcomputer.txt 
foreach ($PC In $ALLDTPC) { 
    $ace = (Get-Acl "AD:$((Get-ADComputer $PC).DistinguishedName)").Access 
    foreach ($acl in $ace) { 
     $accessrule = New-Object System.Security.AccessControl.ActiceDirectoryAccessRule("NT AUTHORITY\Authenticated Users", "Allow") 
     $ace.AddAccessRule($accessrule) 
     Set-Acl -AclObject $ace $PC.DistinguishedName -Verbose -Passthru 
    } 
} 
相关问题