Ho scritto questo breve script PowerShell per rinominare un computer come parte di una sequenza di attività 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 MDT esegue questa attività, la esegue come amministratore locale. Ottengo il seguente errore quando tenta di caricare il modulo AD.
Warning: Error initializing default drive: 'The server has rejected the client credentials.'.
Posso importare il modulo subito dopo che la sequenza di attività è terminata dalla macchina quando ho effettuato l'accesso come amministratore di dominio, ma non come amministratore locale della macchina. Esiste un modo per eseguire la sequenza di attività MDT come amministratore di dominio o elevare i privilegi dell'amministratore locale durante la sequenza di attività?
Grazie in anticipo per qualsiasi aiuto tu possa fornire,
Mx
AGGIORNAMENTO: 13/10/2015
Ho deciso di abbandonare l'utilizzo del modulo AD all'interno del mio script MDT e poco dopo la pubblicazione ho escogitato un altro modo per farlo. I miei risultati con il modulo AD erano al massimo imprevedibili. Volevo pubblicarlo qui per i posteri. Aggiungo questo alla cartella Ripristino stato> Attività personalizzate come "Esegui script Powershell" nella sequenza delle attività MDT e quindi aggiungo un'attività Riavvia computer direttamente al di sotto di essa. Ha funzionato come un incantesimo su un'implementazione di oltre 1600 client l'anno scorso.
$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)
CMD
o PowerShell
? Se stai eseguendo PowerShell allora prova il cmd
comando: powershell
Inoltre vorrei controllare e vedere se la casella PowerShell è selezionata nella schermata di configurazione build boot.wim
-WarningAction SilentlyContinue
per sopprimere il messaggio sul comando import-module.
$AdminPassword
nella lista degli argomenti di PSCredential?