使用Powershell使用Web请求从序列中检索数字

时间:2014-04-30 16:44:39

标签: python powershell scripting new-webserviceproxy

我有一个非常具体的问题,我一直试图解决。我正在使用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请求,并将返回的数字(下一个可用)设置为新变量。

我之前从未使用过网络服务或网络请求,我们将非常感谢任何帮助。提前谢谢!

1 个答案:

答案 0 :(得分:1)

取决于Web请求返回的内容以及是否需要处理任何返回数据,但如果它只返回数字,则可以执行此操作:

$webClient = New-Object System.Net.WebClient
$num = $webClient.downloadstring("http://yourwebservice.com/buildnumber")