Разрешения GPO vbscript - установите для группы запретить «Применить групповую политику» - PullRequest
0 голосов
/ 02 мая 2018

Фон (все эти факты изложены в камне и не могут быть изменены):

  • Настройка A применяется ко всем пользователям, КРОМЕ TestGroup
  • Все пользователи находятся в одном подразделении
  • Нет группы (и я не могу ее создать), в которую входят "все пользователи, КРОМЕ СУЩЕСТВУЕТ TestGroup"
  • Мне нужно сделать это с помощью vbscript
  • Использование Server 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 для настройки объекта групповой политики, чтобы запретить «Применить групповую политику» для указанной группы. Спасибо!

1 Ответ

0 голосов
/ 03 мая 2018

Не удалось найти способ с помощью COM-объекта GPMmgt.GPM, который используется в сценариях Microsoft, поэтому использовал DSA.exe для определения имени разрешений и DSACL для установки разрешений (поскольку объект групповой политики является, конечно, объектом в рекламе). Я установил разрешения на чтение, а затем отказал, и мне потребовалось отличительное имя (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

Не уверен в правильности ответа на мой вопрос. Я не хотел просто закрывать это, поскольку кто-то может столкнуться с этим и найти это полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...