我编写了这个简短的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
更新:10/13/2015
我决定不再使用MDT脚本中的AD模块,而是在发布此方法后不久,便设计了另一种方法来完成此任务。我使用AD模块的结果充其量是无法预测的。我想在这里张贴以供后代参考。我将其作为MDT任务序列中的“运行Powershell脚本”添加到“状态还原”>“自定义任务”文件夹中,然后直接在其下面添加“重启计算机”任务。过去一年来,在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)
抱歉,它在实际脚本中,但是必须在复制和粘贴中省略。
—
Mx Gorply 2014年
您是否正在执行任务序列
—
Elliot Labs LLC
CMD
或PowerShell
?如果您正在执行powershell,请尝试执行以下cmd
命令:powershell
另外,我还将检查boot.wim构建配置屏幕上是否选中了powershell框
@MxGorply是否可以确认:1. Windows安装操作系统启动后,正在执行脚本,例如在状态还原阶段,还是在WinPE的早期阶段或刷新的操作系统中。2.在运行此步骤之前,您是否已执行加入/重新加入域步骤。
—
伯尼·怀特
@MxGorply嗯,那么命令执行没有问题吗?警告是因为导入模块时,它将自动尝试使用无效的当前凭据进行绑定,这是可以预期的。如果命令正在运行,那么在您提供凭据之前我会担心该警告。您可以
—
伯尼·怀特
-WarningAction SilentlyContinue
用来禁止导入模块命令上的消息。
$AdminPassword
的PSCredential的参数列表?