2016-05-23 18 views
0

Ich versuche, den Status eines bestimmten Dienstes auf 2008 R2-Servern in einer Textdatei aufgelistet.PowerShell: Get-Service mit Get-Content, -name und wählen

Ich war einmal in der Lage erfolgreich folgendes auszuführen:

$servers = Get-Content "C:\scripts\Computers.txt" 
Get-Service -ComputerName $servers -Name MrT | 
Select Name, MachineName, Status 

Wie hier gezeigt: screenshot

Nun, wenn ich laufe das gleiche Skript ich die folgende Fehlermeldung erhalten:

Get-Service : Cannot validate argument on parameter 'ComputerName'. The argument is null or empty. Supply an argument that is not null or empty and then try the command again. 
At line:3 char:27 
+ Get-Service -ComputerName $servers -Name MrT | 
+       ~~~~~~~~ 
    + CategoryInfo   : InvalidData: (:) [Get-Service], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.GetServiceCommand 

Um das technisch zu umgehen, könnte ich folgendes ausführen, würde aber eher gegen eine Serverliste laufen.

Get-Service -ComputerName 3b, 4b, 7b -Name MrT | Select Name, MachineName, Status 

Was mache ich falsch und wie hat es einmal funktioniert und nicht wieder funktioniert?

Antwort

1

Wie die Fehlermeldung darauf hinweist, enthält die $servers Variable wahrscheinlich keine Elemente. Überprüfen Sie die Ausgabe durch Ausführen:

Get-Content "C:\scripts\Computers.txt" 
+0

Wenn ich das ausführen, erhalte ich eine Liste der Maschinen in der Liste. Danke für Ihre Hilfe. –

+0

Welche Ausgabe erhalten Sie, wenn Sie rufen '$ servers.GetType()' –

+0

IsPublic: Wahre IsSerial: Wahre Name: Echte Basetype System.Array –

Verwandte Themen