Предыстория (все эти факты высечены в камне и не могут быть изменены):
- Параметр A должен применяться ко всем пользователям, КРОМЕ TestGroup.
- Все пользователи находятся в одном OU
- Нет группы (и я не могу ее создать), которая включает в себя «всех пользователей, КРОМЕ TestGroup».
- Мне нужно сделать это с помощью vbscript
- Использование сервера 2003
Поэтому, чтобы применить SettingA, мне нужно установить TestGPO (у которого есть SettingA) с разрешениями:
- Аутентифицированные пользователи с правами на чтение и применение (разрешения по умолчанию)
- TestGroup настроен на запрет «Применить групповую политику».
я просмотрел предоставленный Microsoft файл SetGPOPermissions.wsf (доступен здесь — https://gallery.technet.microsoft.com/group-policy-management-17a5f840), но это касается только базовых разрешений (обратите внимание, что разрешение PermGPORead, хотя оно и не имеет разрешения «Применить групповую политику», все пользователи находятся в Аутентифицированные пользователи», поэтому отсюда будут получены разрешения «Применить объект групповой политики», так что это не равнозначно отказу)
Я настроил сценарий здесь для своих целей (но сохранил те же имена переменных и т. д.), и он работает, как описано в сценарии, но я не могу понять, как заставить его работать с пользовательскими разрешениями. (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», но я не могу найти примеры того, что я мог бы добавить сюда.
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, чтобы настроить объект групповой политики, чтобы запретить «применить групповую политику» для указанной группы. Спасибо!