У меня есть следующий бит 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, переданные ему отдельно.
То, что я не уверен в том, какое исключение будет выбрано на 32-битной машине, если для $Arch
установлено значение 64, поскольку мне нужно обработать это и позволить сценарию продолжить работу без выполнения 64-битных операций, иначе выкиньте исключение. Я протестировал с недопустимым номером, например 128, и он выбрал неверное числовое исключение в $objLocator.ConnectServer
. Я просто не уверен, что это будет то же самое исключение с действительным номером 64.
У меня нет доступа к 32-битной машине, чтобы проверить сценарий самостоятельно и не нашли соответствующую документацию в Интернете.
Спасибо - поставил меня на правильном пути. –
рады помочь. Goodluck @MatthewNorth –