1

我有一个非常具体的问题,我一直在努力解决。我在映像过程中使用 PowerShell 脚本来命名新映像的计算机并且我需要从序列中获取新生成的数字。我为此使用 SCCM 2012 R2,顺便说一句

例如,我的脚本使用 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 请求,并将返回的数字(下一个可用的)设置为新变量。

我以前从未使用过网络服务或网络请求,任何帮助将不胜感激。提前致谢!

4

1 回答 1

1

取决于 Web 请求返回的内容以及您是否需要处理任何返回数据,但如果它只是返回数字,您可以这样做:

$webClient = New-Object System.Net.WebClient
$num = $webClient.downloadstring("http://yourwebservice.com/buildnumber")
于 2014-04-30T16:53:23.137 回答