Я использую некоторые функции PowerShell для настройки ключей продукта Windows и активации. Я получаю экземпляр SoftwareLicensingService
и вызываю InstallProductKey
, вот так. Блок trap
с суперформатированием является дополнительным для отладки.
trap [Exception]
{
"=================================================="
"Trapped: $($Error[0])"
"=================================================="
"Exception: $($_.Exception)"
"--------------------------------------------------"
""
break
}
$service = Get-WmiObject -Query "SELECT * FROM SoftwareLicensingService"
$service.InstallProductKey("12345-12345-12345-12345-12345")
$service.RefreshLicenseStatus() | Out-Null
Условием ошибки является недопустимый ключ продукта. Я знаю это, потому что я ввел его вручную в диалоговое окно Активировать Windows с панели Система . Но сценарий только показывает мне WMIMethodException
или COMException
.
==================================================
Trapped: Exception calling "InstallProductKey" : ""
==================================================
Exception: System.Runtime.InteropServices.COMException (0xC004F025)
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Management.ManagementObject.InvokeMethod(String methodName, ManagementBaseObject inParameters, InvokeMethodOptions options)
at System.Management.Automation.ManagementObjectAdapter.InvokeManagementMethod(ManagementObject obj, String methodName, ManagementBaseObject inParams)
--------------------------------------------------
Exception calling "InstallProductKey" : ""
At line:14 char:31
+ $service.InstallProductKey <<<< ("12345-12345-12345-12345-12345")
+ CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : WMIMethodException
Я не получаю код возврата от метода (несмотря на документацию, подтверждающую, что я не могу найти список кодов ошибок в любом случае). Знаете ли вы, как получить причину ошибки активации (или установки ключа продукта)?