Eu escrevi este pequeno script do PowerShell para renomear um computador como parte de uma sequência de tarefas do MDT:
Import-Module ActiveDirectory
$AdminUsername = 'domain.com\administrator'
$AdminPassword = 'password' | ConvertTo-SecureString -asPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $AdminUsername, $AdminPassword
$Domain = Get-ADDomainController –DomainName domain.com -Discover -NextClosestSite
$Site = $Domain.Site
$DomainComputer = Get-WmiObject Win32_BIOS
$Serial = $DomainComputer.SerialNumber
$Computername = $Site + "-" + $Serial
Rename-Computer -NewName $Computername -DomainCredential $cred
Quando o MDT executa essa tarefa, ele é executado como administrador local. Eu recebo o seguinte erro quando ele tenta carregar o módulo AD.
Warning: Error initializing default drive: 'The server has rejected the client credentials.'.
Posso importar o módulo muito bem após o término da sequência de tarefas da máquina quando conectado como administrador de domínio, mas não como administrador local da máquina. Existe alguma maneira de executar a sequência de tarefas MDT como administrador de domínio ou elevar os privilégios do administrador local durante a sequência de tarefas?
Agradecemos antecipadamente por qualquer ajuda que você pode proporcionar,
Mx
ATUALIZAÇÃO: 13/10/2015
Decidi deixar de usar o módulo AD no meu script MDT e, pouco depois de postar isso, criei outra maneira de fazer isso. Meus resultados com o módulo AD eram imprevisíveis na melhor das hipóteses. Eu queria publicá-lo aqui para a posteridade. Eu adiciono isso à pasta Restauração do Estado> Tarefas Personalizadas como um "Executar Script do Power Powershell" na minha sequência de tarefas do MDT e, em seguida, adiciono uma tarefa Reiniciar Computador diretamente abaixo dela. Ele tem funcionado como um encanto em uma implantação de mais de 1600 clientes no ano passado.
$type = [System.DirectoryServices.ActiveDirectory.DirectoryContextType]"Domain"
$context = New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext($type, "yourdomain.edu", "domainadmin", "yourpasswordhere")
$domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetDomain($context)
$DC = $domain.FindDomainController().Name
$Prefix = $DC.Substring(0,5)
$DomainComputer = Get-WmiObject Win32_BIOS
$Serial = $DomainComputer.SerialNumber
$Computername = $Prefix + "-" + $Serial
$Password = "yourpasswordhere"
$Username = "yourdomain.edu\domainadmin"
$Computer = Get-WmiObject Win32_ComputerSystem
$Computer.Rename($Computername,$Password,$Username)
fonte
$AdminPassword
no PSCredential ArgumentList?CMD
ouPowerShell
? Se você estiver executando o PowerShell, tente ocmd
comando:powershell
Também eu verificaria se a caixa do PowerShell está marcada na tela de configuração do boot.wim build-WarningAction SilentlyContinue
para suprimir a mensagem no comando import-module.Respostas:
Quando você não está conectado como usuário de domínio, é necessário instanciar explicitamente um PSDrive e executar os comandos * -AD * a partir daí:
fonte