在使用SCCM部署计算机的过程中,大部分的情况下都不需要人员干预的,但是通常部署完成的计算机都是随机以MINI-开头的计算机名,会对加域造成不变
此时,我们可以通过在任务序列中添加PS1脚本,完成计算机的命名
此示例中根据主板型号(OptiPlex 7040和Latitude 3046 )重命名为D7040-2JDW0018或D3046-2Y7R4U2I,具体情况可根据自己想要的结果进行组合
$ComputerModel = (Get-WmiObject -Class Win32_ComputerSystem | Select-Object Model).Model
$SerialNumber = (Get-WmiObject -Class Win32_BIOS | Select-Object SerialNumber).SerialNumber
Switch -Wildcard ($ComputerModel)
{
"OptiPlex*"
{
$OSDComputerName = "D"+$ComputerModel.Replace("OptiPlex ","").Replace("OptiPlex","")+"-"+$SerialNumber
$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$TSEnv.Value("OSDComputerName") = "$OSDComputerName"
}
"Latitude*"
{
$OSDComputerName = "D"+$ComputerModel.Replace("Latitude E","").Replace("LatitudeE","")+"-"+$SerialNumber
$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$TSEnv.Value("OSDComputerName") = "$OSDComputerName"
}
}
将以上内容保存为ps1文件,并放入Scripts文件夹进行共享

在脚本编写完毕之后,打开SCCM控制台,进行添加

程序类型选择不创建程序

添加完成后将该包分发到分发点,并勾选复制到分发点

现在,即可在序列中添加该脚本,在设置任务序列变量后添加一条如下步骤
powershell.exe -noprofile -command "Set-ExecutionPolicy Bypass LocalMachine" -force
以允许运行脚本

然后继续添加一条步骤:powershell.exe -noprofile -file OSDComputerName.ps1

这里要注意包的名称和脚本的名称需与您定义的一致
**最终部署完的计算机会根据厂商的首字母+型号+"-"+SN号进行计算机命名**
