Powershell任务序列查找当前名称

Powershell任务序列查找当前名称,powershell,task,sequence,sccm,Powershell,Task,Sequence,Sccm,最近,我一直在制作一个脚本,以便在广告中找到下一个可用的计算机名。我让它工作了,但当我用任务序列在计算机上重新安装windows时,它会找到一个新名称,即使它已经准备好了我想要的名称。我尝试在powershell脚本中添加一个步骤: if ($env:computername -like "Computer*") { exit } 这是行不通的。在PE中查找当前computername的变量是什么?我使用“OSDComputername”设置计算机名。使用$ENV:computerna

最近,我一直在制作一个脚本,以便在广告中找到下一个可用的计算机名。我让它工作了,但当我用任务序列在计算机上重新安装windows时,它会找到一个新名称,即使它已经准备好了我想要的名称。我尝试在powershell脚本中添加一个步骤:

if ($env:computername -like "Computer*")
{
    exit
}

这是行不通的。在PE中查找当前computername的变量是什么?我使用“OSDComputername”设置计算机名。

使用
$ENV:computername
返回当前计算机名的方式是正确的。但是,您应该在通过
OSDComputerName
设置计算机名后检查是否应用了更改(这听起来像是与SCCM相关的变量,而不是Windows内部变量)。新名称是否反映在您的豪华会话中,您是开始新的豪华会话还是重复使用同一会话?如果后者为真,则不会更新名称。当您运行上面的代码时,
$ENV:COMPUTERNAME
变量的内容是什么)?无法真正检查任务序列中PE中$ENV:COMPUTERNAME的输出是什么,因为很难将任何输出写入文件。MDT的更好方法是将其与SQL数据库相结合:这样机器就可以从任务序列中读取当前名称数据库(基于机器的MAC或serialnumber)。如果由于更改了计算机名而导致挂起重新启动,您也可以在
HKLM:SYSTEM\ControlSet001\Control\computername\computername
上检查注册表并使用该计算机名