J'ai écrit ce court script PowerShell pour renommer un ordinateur dans le cadre d'une séquence de tâches 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
Lorsque MDT exécute cette tâche, il l'exécute en tant qu'administrateur local. J'obtiens l'erreur suivante lorsqu'il tente de charger le module AD.
Warning: Error initializing default drive: 'The server has rejected the client credentials.'.
Je peux importer le module très bien une fois la séquence de tâches terminée depuis la machine lorsque je suis connecté en tant qu'administrateur de domaine, mais pas en tant qu'administrateur local de la machine. Existe-t-il un moyen d'exécuter la séquence de tâches MDT en tant qu'administrateur de domaine ou d'élever les privilèges de l'administrateur local pendant la séquence de tâches?
Merci d'avance pour toute aide que vous pouvez fournir,
Mx
MISE À JOUR: 13/10/2015
J'ai décidé de m'éloigner de l'utilisation du module AD dans mon script MDT et peu de temps après la publication, j'ai imaginé une autre façon de faire cela. Mes résultats avec le module AD étaient au mieux imprévisibles. Je voulais le poster ici pour la postérité. J'ajoute cela au dossier State Restore> Custom Tasks en tant que "Run Powershell Script" dans ma séquence de tâches MDT, puis j'ajoute une tâche Redémarrer l'ordinateur directement en dessous. Cela a fonctionné comme un charme sur un déploiement de 1600+ clients l'année dernière.
$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
ou PowerShell
? Si vous exécutez powershell, essayez la cmd
commande: powershell
Je vérifierais également si la case powershell est cochée sur l'écran de configuration de la construction boot.wim
-WarningAction SilentlyContinue
pour supprimer le message sur la commande import-module.
$AdminPassword
dans la liste d'arguments PSCredential?