我有一个非常具体的问题,我一直试图解决。我正在使用PowerShell脚本在成像过程中命名新映像的计算机,我需要从序列中获取新生成的数字。我使用SCCM 2012 R2,btw
例如,我有脚本使用wmi查询命名我们的计算机:
if ($ComputerVersion -eq "ThinkPad T400")
{
$OSDComputerName = "T400xxxx-11"
$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$TSEnv.Value("OSDComputerName") = "$OSDComputerName"
}
我使用WMI查询设置$ ComputerVersion变量,如下所示:
$ComputerVersion = (Get-WmiObject -Class Win32_ComputerSystemProduct | Select-Object Version).Version
所以,我的问题的关键是我想设置另一个变量,可能是简单的 比如$ num,用于标记我们计算机的下一个号码。这个数字将取代“xxxx”。我将通过以下方式做到这一点:
if ($ComputerVersion -eq "ThinkPad T400")
{
$OSDComputerName = "T400" + $num + "-11"
$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$TSEnv.Value("OSDComputerName") = "$OSDComputerName"
}
这个号码是由我们拥有的linux服务器生成的,它已经运行了一些python脚本来输出序列中的下一个可用号码。如果需要,我可以发布该python脚本,但它是133行。
我需要知道的是如何通过PowerShell调用该Web请求,并将返回的数字(下一个可用)设置为新变量。
我之前从未使用过网络服务或网络请求,我们将非常感谢任何帮助。提前谢谢!
答案 0 :(得分:1)
取决于Web请求返回的内容以及是否需要处理任何返回数据,但如果它只返回数字,则可以执行此操作:
$webClient = New-Object System.Net.WebClient
$num = $webClient.downloadstring("http://yourwebservice.com/buildnumber")