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 要求を呼び出し、返された番号 (次に利用可能な番号) を新しい変数として設定する方法です。

私はこれまで Web サービスや 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 に答える