背景(这些事实都是一成不变的,不能改变):
因此,要应用SettingA,我需要设置具有权限的TestGPO(具有SettingA):
我查看了Microsoft提供的SetGPOPermissions.wsf(此处可用 - https://gallery.technet.microsoft.com/group-policy-management-17a5f840),但这仅涵盖了基本权限(请注意PermGPORead权限,虽然它没有“应用组策略”权限,但所有用户在“经过身份验证的用户”中,因此将从此处获得“应用GPO”权限,因此这不等于拒绝)
我已经在这里为我的目的定制了脚本(但保留了相同的var名称等),并且它可以像脚本描述的那样工作,但我无法弄清楚如何使用自定义权限。 (https://books.google.co.uk/books?id=Ga1nLk_xqcUC&pg=PA430&dq=objGPOlist+item+1+getsecurityinfor&hl=en&sa=X&ved=0ahUKEwj67qq56-baAhUU3YMKHURTA1kQ6AEILTAA#v=onepage&q=objGPOlist%20item%201%20getsecurityinfor&f=false)
当涉及到以下行时,我可以看到我可以在最后将方法/属性从“PermGPOApply”更改为“PermGPOCustom”,但是我找不到可以放在这里的示例。< / p>
set objGPMPerm =
objGPM.CreatePermissions(strGroupAdd,objGPMConstants.PermGPOApply, False)
从剧本开始这一行:
setObjsecurityinfo = objGPOlist.item(1).GetSecurityInfo()
我添加了以下内容,改编自DumpGPOInfo.wsf(https://gallery.technet.microsoft.com/group-policy-management-17a5f840):
For each GPOPermission in objSecurityInfo
wscript.echo "GPO trustee is: " & GPOPermission.Trustee.Trusteename
wscript.echo "GPO permission is: " & GPOPermission.Permission
Next
从这里我可以看到“自定义”权限显示为65795.但是,这并不确定特定的自定义权限,而是任何不属于“读取”或“编辑”括号的权限 - 所以读取,执行,编辑和拒绝“应用组策略”将显示为65795,就像拒绝“应用组策略”一样。换句话说,对我来说没用。
我确实找到了如何在以下网站上设置权限的诱人参考,但之后无法从此链接中找到更多有用的信息。
“要对这些对象设置拒绝或自定义权限,您仍需要使用Active Directory服务接口-ADSI工具,如IADsSecurityDescriptor或Microsoft的adssecurity.dll。” (http://www.itprotoday.com/management-mobility/scripting-group-policy-permissions)
总结如下: 请有人建议如何使用vbscript设置GPO以拒绝指定组的“应用组策略”。谢谢!
答案 0 :(得分:0)
无法找到使用Microsoft脚本中使用的GPMmgt.GPM COM对象的方法,因此使用DSA.exe计算权限名称和DSACL来设置权限(因为GPO是,或者当然是对象在广告中)。我设置了读取权限,然后拒绝,我需要GPO的专有名称(DN)。
objFSO = CreateObject("wscript.Shell")
strCMDLineRead = "dsacls " & chr(34) & strGPO_DN & chr(34) & " /I:T /G " & strGroupAdd & ":GR"
strCMDLineDeny = "dsacls " & chr(34) & strGPO_DN & chr(34) & " /I:T /D " & strGroupAdd & ":CA;" & chr(34) & "Apply Group Policy" & chr(34)
objShell.Run strCMLDLineRead,0, TRUE
objShell.Run strCMLDLineDeny,0, TRUE
不确定回答我自己问题的礼仪。我并不想关闭它,因为有人可能会遇到这个并发现它很有用。