2016-12-22 12 views
0

Во-первых, это мой первый пост, поэтому, если я неправильно разместил это в неправильном месте, сообщите мне.WMIMethodException с .InstallProductKey

Итак, мы пытаемся создать сценарий powershell, который мы можем нанести на наш образ рабочей станции, чтобы после того, как наши окна Windows 10 были обработаны, мы можем щелкнуть по сценарию powershell, ключ от BIOS и автоматически активировать его. Это, как говорится, вот сценарий, который мы собрали из разных источников.


(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). Кажется, что независимо от того, как мы пытаемся это вызывать, он будет последовательно терпеть неудачу с ошибкой «Exception call» InstallProductKey ». Я даже заменил переменную ($key) специальным ключом активации, и STILL сбойной ошибки с той же ошибкой.

Причина, по которой мы имеем ее выход в часть файла txt файла лицензии, заключается в том, что мы можем проверить, действительно ли команда потянула ключ продукта (который он есть).

На данный момент я не уверен, куда идти. Похоже, что люди пытались сделать это раньше, однако никто не зафрахтовал свое сообщение тем, что сработало и/или что нет. Я не могу себе представить, что это невозможно, но я также не люблю тратить больше времени, чем нужно, поэтому любой, кто имеет представление об этой проблеме, был бы очень благодарен.

Мы получили его для работы на двух машинах, которые были ранее активированы, а затем деактивированы, но на новых машинах, которые были недавно отображены и еще не активированы, каждый раз он будет терпеть неудачу.

+0

Кроме того, я, вероятно, должен добавить, что, поскольку я уверен, что сценарий отражает, кодирование/скриптинг не является моей сильной стороной. Итак, будьте осторожны.lol –

+0

Опубликовать полное сообщение об ошибке – andyb

+0

У меня такая же проблема, и похоже, потому что это совершенно новая машина. Сообщение Вся ошибка: Исключение вызова "InstallProductKey": "" В D: \ ProjectionWorks-SystemInstallScripts \ ActivateWindows.ps1: 4 символьные: 1 + $ service.InstallProductKey ('некоторый продукт ключ') + ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: WMIMethodException – hlo

ответ

1

Две вещи, как на мое замечание:

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

Я не думаю, что она возвращается любое значение к вашему license.txt. Если да, то я хотел бы, чтобы вы видели, есть ли какое-либо место до и после лицензионного ключа. Вы можете использовать отделку во время получения содержимого из файла.

Во-вторых, когда вы получаете контент из файла, убедитесь, что он не разделен на несколько строк. В этом случае вы должны указать его как строку, например [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() 

Для получения дополнительной вещи, пожалуйста, напишите точную ошибку. Надеюсь, это поможет ... !!!