2016-12-08 5 views
0

多くのマシンを実行してレジストリキーを追加するスクリプト内には、以下の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ビットマシンにアクセスすることはできず、オンラインで関連ドキュメントを見つけられませんでした。

答えて

1

私はあなたにそれを進める方法の論理を教えています。私はあなたの要件に応じてスクリプトを作成し、私はあなたの理解と参照のために各行にコメントを追加しました。あなたがリモートですべてのコマンドを実行している場合、パラメータとしてがcomputernamesを渡すスクリプトブロックInvoke-Commandコマンドを使用し:その

$Input_file= Get-Content D:\Serverlist.txt # Getting list of servers from the text file 

foreach($Input in $Input_file) # Iterating each server 
{ 
    $OS_Architecture=(Get-WmiObject Win32_OperatingSystem -ComputerName $Input).OSArchitecture # Getting the OS Architecture for each server 
    if($OS_Architecture -eq '64-bit') 
    { 
    # write the code for 64 bit OS Architecture 
    <# 
    $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") 
    #> 
    } 
    else 
    { 
    # Write the code for 32 Bit OS Architecture 
    } 

注意をもとに、あなたがやっている、これまでどのようなコードを追加します。

ロジックを理解するのに役立ちます。

+0

ありがとうございます - 私は正しい道で私をオフにしてください。 –

+0

お寄せいただきありがとうございます。 Goodluck @MatthewNorth –

関連する問題