Импорт модуля 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)

1 ответ

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

Import-Module ActiveDirectory -WarningAction SilentlyContinue
New-PSDrive -Name AD -PSProvider ActiveDirectory -Server <your DC> -Root //RootDSE/ -Credential $cred
Set-Location AD:
Другие вопросы по тегам