Імпортуйте модуль AD Powershell під час послідовності завдань MDT


13

Я написав цей короткий сценарій оболонки, щоб перейменувати комп'ютер як частину послідовності завдань 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 в кращому випадку були непередбачуваними. Я хотів опублікувати його тут для нащадків. Я додаю це до папки "Відновлення стану"> "Спеціальні завдання" як "Запуск сценарію потужності" в моїй послідовності завдань 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)

Ви ніколи не пропали $AdminPasswordв PSCredential ArgumentList?
Mathias R. Jessen

Вибачте, він є у фактичному сценарії, але він повинен бути пропущений у копії та вставці.
Mx Gorply

У вас є виконання послідовності завдань CMDабо PowerShell? Якщо ви виконуєте повноваження, то спробуйте cmdкоманду: powershell Також я би перевірив і побачив, чи встановлено прапорець на панелі встановлення boot.wim на екрані конфігурації boot.wim
Elliot Labs LLC

@MxGorply Чи можете ви підтвердити: 1. що сценарій виконується після запуску Windows після встановлення ОС, як у фазі відновлення стану, чи це на більш ранній фазі в WinPE або в оновлюваній ОС. 2. Перед тим, як виконати цей крок, чи виконали ви вже етап кроку домену.
Берні Вайт

4
@MxGorply Ну добре, значить, немає проблем із виконанням команд? Попередження полягає в тому, що коли модуль імпортує, він автоматично спробує зв’язати, використовуючи поточні облікові дані, які не є дійсними, цього можна було б очікувати. Якщо команди виконуються, то я б потурбувався про попередження перед тим, як надати облікові дані. Ви можете -WarningAction SilentlyContinueпридушити повідомлення командою import-module.
Берні Вайт

Відповіді:


1

Якщо ви не ввійшли в систему як користувач домену, вам потрібно чітко створити екземпляр PSDrive, а потім запустити звідти команди * -AD *:

Import-Module ActiveDirectory -WarningAction SilentlyContinue
New-PSDrive -Name AD -PSProvider ActiveDirectory -Server <your DC> -Root //RootDSE/ -Credential $cred
Set-Location AD:
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.