
Irgendwelche Ideen, was ich hier falsch gemacht habe? Ich habe dieses Skript aus einem Tutorial kopiert und erhalte diesen Fehler...
PS C:\Windows\system32> Get-Service | Where-Object ($_.status -eq "running")
Where-Object : Cannot bind parameter 'FilterScript'. Cannot convert value "False" to type "System.Management.Automation
.ScriptBlock". Error: "Invalid cast from 'System.Boolean' to 'System.Management.Automation.ScriptBlock'."
At line:1 char:27
+ Get-Service | Where-Object <<<< ($_.status -eq "running")
+ CategoryInfo : InvalidArgument: (:) [Where-Object], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.WhereObjectCommand
Antwort1
Versuchen Sie, {} anstelle von Klammern um Ihr Argument zu verwenden.
http://technet.microsoft.com/en-us/library/ee177028.aspx
Beachten Sie die Syntax sorgfältig. Zunächst ist die Where-Klausel in geschweifte Klammern eingeschlossen. Darüber hinaus wird die Notation $_ verwendet, um das Standardobjekt darzustellen (also das Objekt, das über die Pipeline übertragen wird).
Antwort2
Sie müssen { anstelle von ( verwenden.
Get-Service | Where-Object {$_.status -eq "running"}