Разрешения Vbscript GPO - установите группу, чтобы запретить «Применить групповую политику»

Предыстория (все эти факты высечены в камне и не могут быть изменены):

  • SettingA применяется ко всем пользователям, ЗА ИСКЛЮЧЕНИЕМ TestGroup.
  • Все пользователи находятся в одном подразделении
  • Нет группы (и я не могу ее создать), которая включает «всех пользователей, ЗА ИСКЛЮЧЕНИЕМ TestGroup».
  • Мне нужно сделать это с помощью vbscript
  • Использование Server 2003

Поэтому, чтобы применить SettingA, мне нужно установить TestGPO (у которого есть SettingA) с разрешениями:

  • Прошедшие проверку пользователи с правом чтения и применения (разрешения по умолчанию)
  • TestGroup настроен на запрет «Применить групповую политику».

Я просмотрел предоставленный Microsoft SetGPOPermissions.wsf (доступен здесь - https://gallery.technet.microsoft.com/group-policy-management-17a5f840), но он охватывает только базовые разрешения (обратите внимание, что разрешение PermGPORead, хотя оно не имеет разрешения «Применить групповую политику», все пользователи находятся в разделе «Прошедшие проверку», поэтому отсюда получит разрешения Применить GPO, так что это не означает отрицать)

Я настроил здесь сценарий для своих целей (но сохранил те же имена переменных и т. д.), И он работает так, как описывает сценарий, но я не могу понять, как заставить его работать с настраиваемыми разрешениями. (https://books.google.co.uk/books?id=Ga1nLk_xqcUC&pg=PA430&dq=objGPOlist+item+1+getsecurityinfor&hl=en&sa=X&ved=0ahUKEwj67qq56-baAhUU3YMKHURTA1&hl=ru&hl=ru&hl=ru&hl=ru&hl=ru&hl=ru&hl=ru&hl=ru&hl=ru&hl=ru&hl=ru&hl=ru&hl=ru&hl=en)

Когда дело доходит до следующей строки, я вижу, что могу изменить метод / свойство в конце с «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, как и просто «Запретить» «Применить групповую политику». Другими словами, мне это ни к чему.

Я нашел соблазнительную ссылку на то, как установить разрешения на следующем веб-сайте, но потом не смог найти больше полезной информации по этой ссылке.

«Чтобы установить разрешения Deny или Custom для этих объектов, вам все равно нужно использовать интерфейсы служб Active Directory - ADSI - инструменты, такие как IADsSecurityDescriptor или Microsoft adssecurity.dll». (http://www.itprotoday.com/management-mobility/scripting-group-policy-permissions)

Итак, в итоге: Пожалуйста, может кто-нибудь посоветовать, как использовать vbscript для установки GPO, чтобы запретить «Применить групповую политику» для указанной группы. Спасибо!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
269
1

Ответы 1

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

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

Другие вопросы по теме