adiciona automaticamente o grupo de domínio à instalação de novas janelas

0

Eu executei o seguinte catch22 em meu script de instalação de estação de trabalho ao tentar adicionar automaticamente um grupo de domínio aos administradores locais.
O problema que estou tendo é o seguinte:

  • Quando estou usando o administrador local, tenho o direito de adicionar usuários a um grupo local, mas preciso fornecer credenciais de domínio para me conectar ao domínio
  • Quando estou usando um usuário de domínio, posso me conectar ao AD, mas o usuário que faz isso ainda não é um administrador local, por isso ainda não posso modificar grupos locais.

Eu estou em um ambiente GMP, então regras e regulamentos são realmente! estrito que limita outros caminhos possíveis.

  • Os papéis são divididos, por isso não tenho acesso ao administrador do domínio.
  • Nenhuma alteração é permitida às UOs, o que poderia empurrar o grupo da Política de Grupo
  • O uso do PowerShell com scripts remotos não é permitido

É bastante fácil navegar manualmente ao usar o compmgmt.msc e fornecer as credenciais necessárias quando solicitado ... mas gostaria de evitar a adição de etapas manuais e automatizar a instalação inteira o máximo possível.

Alguns detalhes:

  • O sistema operacional da estação de trabalho é o Windows 10
  • O script que estou usando é o PowerShell
  • O script está sendo executado com uma conta de administrador local com privilégios elevados
  • A estação de trabalho já está associada ao domínio
  • A conta usada para ingressar na estação de trabalho para o domínio não é um administrador de domínio
  • Para ter direitos de administrador com minha conta de domínio, preciso adicionar o grupo do nosso departamento ao grupo de administradores local

O código que eu uso para adicionar um grupo ao grupo de administradores local é $de = [ADSI]"WinNT://$Env:ComputerName/Administrators,group" $de.psbase.Invoke("Add",([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").path)
Este código funciona como um encanto quando executado com uma conta de domínio e é um administrador local.

Como isso é usado para a instalação de uma nova estação de trabalho, posso executá-la como conta de domínio ou admin local.
Com o primeiro, a parte $de.psbase.Invoke("Add", falha. Com este último, o ([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").path falha

Eu tentei usar start-process cmdlet com –verb runas opções para obter um contexto de segurança diferente, mas tive o mesmo problema descrito acima.

Existe alguma maneira que eu possa

  • resolva apenas ([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").path no contexto de segurança de um usuário do domínio e passe isso para o restante do meu script em execução no contexto de segurança do administrador local (É assim que o compmgmt.msc faz isso)

ou

  • crie o objeto [ADSI] a partir de dados codificados sem a necessidade de se conectar ao domínio

ou

  • algo mais óbvio que eu não pensei
por GapWim 27.01.2016 / 11:07

1 resposta

2

Você pode adicionar um grupo de domínio a um grupo local por meio do arquivo unattend.xml , eliminando a necessidade de qualquer script.

Editando o Unattend.xml através do System Image Manager (SIM)

Após abrir seu unattend.xml no SIM, no canto inferior esquerdo da janela, encontre o nó para Microsoft-Windows-Shell-Setup . ( Observação: você deve usar o nó correspondente à arquitetura da sua imagem, por exemplo, amd64 para plataformas de 64 bits.) Expanda o nó Configuração da shell, em seguida, UserAccounts , DomainAccounts e DomainAccountList . Clique com o botão direito do mouse no nó DomainAccount e escolha adicionar a configuração para passar 7 (oobeSystem).

No centro da janela do SIM, você precisa configurar os nós recém-adicionados. No nó DomainAccountList , insira o nome do seu domínio no valor Domain .

No nó DomainAccount , o valor Group deve ser definido para o nome do grupo local que você deseja modificar, neste caso, Administradores . O valor Name deve ser definido para o nome do grupo de domínio que você deseja adicionar ao grupo local.

Editando Unattend.xml manualmente ( não recomendado )

Você também pode editar o arquivo unattend.xml manualmente, no seu editor de texto favorito. Localize o nó <settings> para a passagem oobeSystem . Você pode copiar o nó DomainAccounts abaixo e colocá-lo no seu unattend.xml após o nó AdministratorPassword . Não se esqueça de modificar os nós Group e Name no nó DomainAccount , juntamente com o nome do domínio especificado no nó 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>
    
por 27.01.2016 / 16:53