WMIMethodException与.InstallProductKey

WMIMethodException与.InstallProductKey

问题描述:

首先,这是我的第一篇文章,所以如果我不正确地张贴在错误的位置,请让我知道。WMIMethodException与.InstallProductKey

因此,我们正在努力完成的是构建一个PowerShell脚本,我们可以将其放在我们的工作站映像上,以便一旦我们的Windows 10盒完成映像,我们就可以点击PowerShell脚本,然后自动激活它。话虽如此,这里是我们从各种来源汇集的脚本。


(Get-WmiObject -query ‘select * from SoftwareLicensingService’).OA3xOriginalProductKey | out-file c:\license.txt 

$computer = gc env:computername 

$key = get-content c:\license.txt 

$service = get-wmiObject -query “select * from SoftwareLicensingService” -computername $computer 

$service.InstallProductKey($key)  <--------THIS IS WHERE IT FAILS 

$service.RefreshLicenseStatus() 

我们开始运行到上线$service.InstallProductKey($key)问题。看来,无论我们如何尝试调用它,它都会一直失败,并显示错误“异常调用”InstallProductKey“”。我甚至用特定的激活密钥替换了变量($key),它仍然失败并出现相同的错误。

我们将它输出到许可证txt文件的部分原因是,我们可以验证该命令的确在拉动产品密钥(它是)。

在这一点上,我不知道该去哪里。看起来人们之前都试图做到这一点,但是,没有人真正将他们的发布与有效和/或没有发布的内容结合起来。我无法想象这是不可能的,但我也不喜欢浪费时间,因此任何对这个问题有深入了解的人都会非常感激。

我们已经在两台以前被激活的机器上工作,后来停用,但是在新机器上已经被成像并且尚未被激活的机器上,每次都会失败。

+0

此外,我应该补充一点,就像我确信脚本反映的那样,编码/脚本编写不是我的特长。所以,请温柔。大声笑 –

+0

发布完整的错误讯息 – andyb

+0

我有同样的问题,它似乎是因为它是一个全新的机器。整个错误信息是: 异常调用 “InstallProductKey”: “” 在d:\ ProjectionWorks-SystemInstallScripts \ ActivateWindows.ps1:4字符:1 + $ service.InstallProductKey( '一些产品密钥') + ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:WMIMethodException – hlo

两件事情按照我的观察:

(Get-WmiObject -query ‘select * from SoftwareLicensingService’).OA3xOriginalProductKey | out-file c:\license.txt 

我不认为这是返回到您的LICENSE.TXT任何价值。 如果是,那么我希望您看看许可证密钥前后是否有空间。在从文件获取内容期间,您可以使用trim

第二件事,当您从文件中获取内容时,请确保它不会分成多行。在这种情况下,您必须将其转换为字符串,如[String] $ key或者您可以拨打toString()方法。

更重要的是安装后刷新。

$service.RefreshLicenseStatus() 

注:确保您正在运行在提升模式下的壳。

替代方案:尝试硬编码值,并查看结果

$key = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" # hardcode the key 
$computer= "Computer01" # Hardcode the computer 
$service = get-wmiObject -query "select * from SoftwareLicensingService" -computername $computer 
$service.InstallProductKey($key) 
$service.RefreshLicenseStatus() 

如需进一步的事情,请张贴的具体错误。 希望它有助于... !!!