Powershell: Dienst - Starten, Stoppen und Status Abfragen

Mitglied: SaschaRD

SaschaRD (Level 1)

28.01.2016, aktualisiert 15:34 Uhr, 3096 Aufrufe, 2 Kommentare

Hallo zusammen,

habe das Starten, Stoppen und die Abfrage des Status (inkl. Error-Handling) eines Dienstes zusammengelegt, jedoch hängt er sich jetzt an den Parametern zum Abfragen der ErrorVariable $ServiceAction $WhichService -ErrorVariable getServiceError -ErrorAction SilentlyContinue auf.
Beim Ausführen des Skripts ist zu dem Zeitpunkt, wo er an die Stelle kommt (siehe oben rot markiert) ihm das Command noch nicht bekannt. Was dann auch zu der Fehlermeldung führt, dass die Ausgabe liefert:
$ServiceAction $WhichService -ErrorVariable getServiceErr ...
Unexpected token '$WhichService' in expression or statement.
$ServiceAction $WhichService -ErrorVariable getServiceErr ...
Unexpected token '-ErrorVariable' in expression or statement.
$ServiceAction $WhichService -ErrorVariable getServiceError -ErrorA ...
Unexpected token 'getServiceError' in expression or statement.
CategoryInfo : ParserError: (:) face-smile [], ParseException
FullyQualifiedErrorId : UnexpectedToken
Wird anstatt der Variable ServiceAction das Command Stop-Service verwendet nimmt der Sauburschi ohne murren alles :-( face-sad

Hat jemand eine Idee?

Gruß, Sascha
2 Kommentare
Mitglied: 122990
122990 (Level 2)
LÖSUNG 28.01.2016, aktualisiert um 15:34 Uhr
Moin,
du übergibst einen String, aber ein String ist kein Befehl oder CMDLet!
Um aus einem String einen Befehl zu machen benutzt man Invoke-Expression.

Gruß grexit
Mitglied: SaschaRD
28.01.2016, aktualisiert um 16:15 Uhr
Hallo grexit,

nicht nachgedacht :-( face-sad
Klar ohne Invoke-Expression wird, wie Du bereits geschrieben hast, das Ganze als String gelesen und nicht als Command.

Danke und Gruß, Sascha

Lösung: