Назад | Перейти на главную страницу

Импорт модуля Powershell AD во время выполнения последовательности задач MDT

Я написал этот короткий сценарий PowerShell для переименования компьютера в рамках последовательности задач 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 

Когда MDT запускает эту задачу, он запускает ее от имени локального администратора. Я получаю следующую ошибку при попытке загрузить модуль AD.

Warning: Error initializing default drive:  'The server has rejected the client credentials.'.

Я могу импортировать модуль сразу после завершения последовательности задач с машины, когда я вошел в систему как администратор домена, но не как локальный администратор машины. Есть ли способ запустить последовательность задач MDT от имени администратора домена или повысить права локального администратора во время выполнения последовательности задач?

Заранее благодарим за любую помощь, которую вы можете предоставить,

Mx

ОБНОВЛЕНИЕ: 13.10.2015

Я решил отказаться от использования модуля AD в моем сценарии MDT и вскоре после публикации этого сообщения придумал другой способ сделать это. Мои результаты с модулем AD были в лучшем случае непредсказуемыми. Я хотел разместить это здесь для потомков. Я добавляю это в папку «Восстановление состояния»> «Пользовательские задачи» как «Запуск сценария Powershell» в моей последовательности задач MDT, а затем добавляю задачу «Перезагрузить компьютер» непосредственно под ним. В прошлом году он отлично работал над развертыванием более 1600 клиентов.

$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)

Если вы не вошли в систему как пользователь домена, вам необходимо явно создать экземпляр PSDrive, а затем запустить оттуда команды * -AD *:

Import-Module ActiveDirectory -WarningAction SilentlyContinue
New-PSDrive -Name AD -PSProvider ActiveDirectory -Server <your DC> -Root //RootDSE/ -Credential $cred
Set-Location AD: