0
在腳本中,我需要運行很多機器並添加一個註冊表項。在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
。我只是不確定它是否是與傳遞的有效數字64相同的例外。
我無法訪問32位機器來測試我自己的腳本,並且沒有在線找到相關文檔。
謝謝 - 讓我走在正確的道路上。 –
樂意提供幫助。 Goodluck @MatthewNorth –