2017-02-17 5 views
1

Ich kann nicht scheinen, meine Splatting in meinem Invoke-WmiMethod Befehl zu arbeiten. Ich erkläre die Hash-Tabelle wie folgt:Splatting - Eingabe-String hatte kein korrektes Format

$HKU = 2147483651 

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

# additional code determining ComputerName... # 

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

Diese Linie gibt mir die folgende Fehlermeldung:

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

Wissen Sie, was das Problem sein könnte?

+3

Versuchen Sie, die Zitate aus 'argumentlist' entfernt, so dass es ein Array kein String – BenH

+0

@AnsgarWiechers ist Sieht aus wie Mark antwortete ich sonst auf der engen zustimmen würde. – BenH

+0

@BenH Das hat funktioniert! Fantastisch. – AlwaysQuestioning

Antwort

1

Try this:

$HKU = 2147483651 

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

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

Quelle: http://blogs.microsoft.co.il/scriptfanatic/2010/12/16/invoking-wmi-methods-in-powershell/ "Es gibt ein Casting-Problem, nach der Hilfe des Parameter ArgumentList Der Wert des Parameters muss ein Array von Objekten sein. " –

Verwandte Themen