автоматически добавлять группу домена в новую установку Windows

автоматически добавлять группу домена в новую установку Windows

Я столкнулся со следующим catch22 в скрипте установки моей рабочей станции, пытаясь автоматически добавить группу домена в локальные администраторы.
Уловка, с которой я сталкиваюсь, заключается в следующем:

  • Когда я использую локального администратора, у меня есть права добавлять пользователей в локальную группу, но для подключения к домену мне нужно предоставить учетные данные домена.
  • Когда я использую пользователя домена, я могу подключиться к AD, но пользователь, выполняющий это действие, еще не является локальным администратором, поэтому я пока не могу изменять локальные группы.

Я работаю в среде GMP, поэтому правила и положения !действительно! строгие, что ограничивает другие возможные пути.

  • Роли разделены, поэтому у меня нет доступа к администратору домена.
  • Не допускается внесение изменений в OU, которые могут вывести группу из групповой политики.
  • Использование PowerShell с удаленными скриптами запрещено.

Это довольно легко обойти вручную, используя compmgmt.msc и предоставляя необходимые учетные данные по запросу... но я бы хотел избежать добавления ручных шагов и просто автоматизировать всю установку, насколько это возможно.

Несколько подробностей:

  • Операционная система рабочей станции — Windows 10.
  • Я использую скрипт PowerShell.
  • Скрипт запущен с учетной записью локального администратора с повышенными привилегиями.
  • Рабочая станция уже присоединена к домену
  • Учетная запись, используемая для присоединения рабочей станции к домену, не является учетной записью администратора домена.
  • Чтобы иметь права администратора в моей учетной записи домена, мне нужно добавить группу нашего отдела в локальную группу администраторов.

Код, который я использую для добавления группы в локальную группу администраторов, выглядит $de = [ADSI]"WinNT://$Env:ComputerName/Administrators,group" $de.psbase.Invoke("Add",([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").path)
следующим образом: Этот код отлично работает при запуске с учетной записью домена.иявляется локальным администратором.

Поскольку это используется для установки совершенно новой рабочей станции, я могу запустить это как учетную запись доменаилилокальный администратор.
С первым $de.psbase.Invoke("Add",часть не работает
С последним часть ([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").pathне работает

Я попробовал использовать start-processкомандлет с –verb runasпараметрами, чтобы получить другой контекст безопасности, но столкнулся с той же проблемой, что и выше.

Есть ли способ, которым я могу

  • разрешать только ([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").pathв контексте безопасности пользователя домена и передавать это остальной части моего скрипта, работающего в контексте безопасности локального администратора (именно так это делает compmgmt.msc)

или

  • построить объект [ADSI] из жестко закодированных данных без необходимости подключения к домену

или

  • что-то еще ослепительно очевидное, о чем я не подумал

решение1

Вы можете добавить группу домена в локальную группу через файл unattend.xml, что устраняет необходимость в написании каких-либо скриптов.

Редактирование Unattend.xml через System Image Manager (SIM)

После открытия unattend.xmlSIM-карты в левом нижнем углу окна найдите узел Microsoft-Windows-Shell-Setup.(Примечание:Вам следует использовать узел, соответствующий архитектуре вашего образа, т. е. amd64 для 64-битных платформ.)Разверните узел Shell-Setup, затем UserAccounts, DomainAccounts, и DomainAccountList. Щелкните правой кнопкой мыши DomainAccountузел и выберите добавление настройки для прохода 7 (oobeSystem).добавление узла DomainAccount в режим unattend

В центре окна SIM вам необходимо настроить вновь добавленные узлы. В DomainAccountListузле введите в значение имя вашего домена Domain.

В DomainAccountузле Groupзначение должно быть установлено на имя локальной группы, которую вы хотите изменить, в данном случаеАдминистраторы. NameЗначение должно быть установлено на имя доменной группы, которую вы хотите добавить в локальную группу.

Редактирование Unattend.xml вручную (не рекомендуется)

Вы также можете редактировать unattend.xmlфайл вручную в вашем любимом текстовом редакторе. Найдите <settings>узел дляoobeSystempass. Вы можете скопировать DomainAccountsузел ниже и поместить его в свой unattend.xmlпосле AdministratorPasswordузла. Обязательно измените узлы Groupи Nameв DomainAccountузле, а также доменное имя, указанное в Domainузле.

  <settings pass="oobeSystem">
    <component name="Microsoft-Windows-Shell-Setup" ... >
      <UserAccounts>
        <AdministratorPassword>
          <Value>mylocaladminpassword</Value>
          <PlainText>true</PlainText>
        </AdministratorPassword>
        <DomainAccounts>
          <DomainAccountList wcm:action="add">
            <DomainAccount wcm:action="add">
              <Group>Administrators</Group>
              <Name>Name-Of-Domain-Group-To-Add</Name>
            </DomainAccount>
            <Domain>DOMAIN_NAME_HERE</Domain>
          </DomainAccountList>
        </DomainAccounts>

Связанный контент