Ärger mit powershell Kommas
Ich versuche zu schreiben, eine sehr kurze powershell-Skript führt ein paar Befehle, pipes, Ihre Ausgabe in eine text-Datei, und führt dann eine Suche mit einem Stichwort.
Ich kann nicht herausfinden, was zu ändern, aber für diese Zeile:
wmic service get name, startname | out-File "$pwd\admin\wmic.txt"
WMIC.exe : Invalid GET Expression.
At \\test.ps1:7 char:5
+ wmic <<<< service get name startname | out-File "$pwd\admin\wmic.txt"
+ CategoryInfo : NotSpecified: (Invalid GET Expression.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Ich glaube der Fehler wird generiert aus ',' wie powershell verwendet das Komma, ein array zu erstellen.
Irgendwelche Gedanken oder Anregungen?
Dank
- Ich bin currious warum Sie mit WMIC? PS hat deutlich bessere Möglichkeiten für den Zugriff auf WMI (Get-WMIObject -). Es hat sogar cmlets, die spezifisch für die Arbeit mit services (Get-Service).
- Haben Sie versucht, "name, startname"?
- Zitate funktionieren nicht, ich glaube, es ist nicht syntaktisch korrekt.
- Ich gebe, dass ein Schuss EBGreen. Immer noch halb-neu -, PS-und war sich nicht bewusst, dass cmdlet. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist einfach zu beheben, Komma, überhaupt keine Veränderung.
Beginnend mit der Powershell 3.0 gibt es die neue Flucht Betreiber
--%
erhältlich (siehe Magie parameter in der release notes):Die Antwort auf diese Frage liegt in der Verwendung von Start-Process cmdlet. Dadurch wird die interpretation von Kommandozeilen-Argumente viel einfacher, da kann man auch konstruieren, die Kommandozeilen-Argumente vor der Zeit, speichern Sie in einer Variablen, und klicken Sie dann verweisen Sie Sie mit den Namen der variable.
Aber, warum auch du mit WMIC.exe?
Gibt es einfachere Wege für die Arbeit mit WMI, wie mit der PowerShell Art Beschleuniger [wmi], [wmiclass], [wmisearcher], und die Get-WmiObject-cmdlet.