多くのマシンを実行してレジストリキーを追加するスクリプト内には、以下のPowershellビットがあります。 x64マシンでは、このキーはレジストリの32ビットと64ビットの両方のセクションに追加する必要があります。異なるアーキテクチャでSWbemLocatorを使用した例外ハンドリング
$objswbem = New-Object -ComObject "WbemScripting.SWbemNamedValueSet"
$objswbem.Add("__ProviderArchitecture", $Arch) | Out-null
$objswbem.Add("__RequiredArchitecture", $True) | Out-null
$ObjLocator = New-Object -ComObject "Wbemscripting.SWbemLocator"
$objServices = $objLocator.ConnectServer($Computer,"root\Default",$null,$null,$null,$null,$null,$objswbem)
$objReg = $objServices.Get("stdRegProv")
これには、値32と64の両方が別々に渡されます。
$Arch
が64に設定されているときに32ビットマシンで例外がスローされることはわかりますが、これを処理して64ビット操作を実行せずにスクリプトを続行できるようにする必要があります。 私は128などの無効な番号でテストしました。$objLocator.ConnectServer
に無効な番号の例外がスローされます。私はそれが渡された有効な番号と同じ例外であるかどうかだけは分かりません。
自分でスクリプトをテストするための32ビットマシンにアクセスすることはできず、オンラインで関連ドキュメントを見つけられませんでした。
ありがとうございます - 私は正しい道で私をオフにしてください。 –
お寄せいただきありがとうございます。 Goodluck @MatthewNorth –