2017-02-17 33 views
1

Я не могу заставить свой splatting работать в моей команде Invoke-WmiMethod. Я объявляю хэш-таблицу следующим образом:Splatting - строка ввода не была в правильном формате

$HKU = 2147483651 

$MyParams = @{ 
    'Class' = 'StdRegProv'; 
    'Name' = 'EnumKey'; 
    'ArgumentList' = "$HKU,''"; 
    'ComputerName' = ''; 
} 

# additional code determining ComputerName... # 

$MyParams['ComputerName'] = $MyComputer; 
$Vals = Invoke-WmiMethod @MyParams 

Эта линия дает мне следующую ошибку:

Invoke-WmiMethod : Input string was not in a correct format. 
At C:\Users\Person\Desktop\tmp.ps1:160 char:20 
+   $Vals = Invoke-WmiMethod @MyParams

Знаете ли вы, что может быть проблема?

+3

Попробуйте удалить кавычки из 'argumentlist' так что массив не является строкой – BenH

+0

@AnsgarWiechers Похоже, Марк ответил, в противном случае я бы согласился на закрытии. – BenH

+0

@BenH Это сработало! Фантастика. – AlwaysQuestioning

ответ

1

Попробуйте это:

$HKU = 2147483651 

$MyParams = @{ 
    'Class' = 'StdRegProv'; 
    'Name' = 'EnumKey'; 
    'ArgumentList' = @($HKU,''); 
    'ComputerName' = ''; 
} 

$MyParams['ComputerName'] = $MyComputer; 
$Vals = Invoke-WmiMethod @MyParams 
+0

Источник: http://blogs.microsoft.co.il/scriptfanatic/2010/12/16/invoking-wmi-methods-in-powershell/ «Есть проблема с кастингом, в соответствии с помощью параметра ArgumentList, значение параметра должно быть массивом объектов, " –