2017-09-23 2 views
0

Ich versuche, die Anzahl aller laufenden Dienste auf meiner Windows-Box abzurufen. Wenn ich renne:Die laufenden Dienste können nicht mit folgendem Cmdlet gezählt werden:

Get-Service | Where-Object {$_.Status -eq "running" } 

Ich bekomme eine Liste aller laufenden Dienste. Aber ich möchte zählen, wie viele der Dienste mit dem folgenden Befehl ausgeführt werden, zeigt die Anzahl als Null an. Das ist eine falsche Zählung. Ich habe mehr als 20 Dienste auf meiner Box.

$acoundrunningservices = Get-Service | Where-Object {$_.Status -eq "running"} 
$acoundrunningservices.Count 
+0

@ (acoundrunningservices $) – iRon

+0

@iRon Das .Count nur einen Unterschied machen würde Wenn das OP PowerShell v2 oder früher ausführt und die Anweisung 'Get-Service' 0 oder 1 ergibt. –

+0

@Jason Kann nicht reproduzieren. Bitte zeigen Sie die genaue Ausgabe, die Sie erhalten, wenn Sie das zweite Code-Snippet in eine PowerShell-Konsole kopieren/einfügen. Screenshot wäre ausreichend. Welche PowerShell-Version läuft auch? Zeige die Ausgabe von $ PSVersionTable. –

Antwort

2
$acoundrunningservices = Get-Service | Where-Object {$_.Status -eq "running"} 
$acoundrunningservices.Count 

für mich arbeiten, sowie:

Get-Service | Where-Object {$_.Status -eq "running" } | Measure-Object | Select-Object Count 

oder:

(Get-Service | Where-Object {$_.Status -eq "running" }).Count 
+0

Mein Fehler war ich tippte Kleinbuchstaben .count. Es hätte sein sollen .Count – Jason

+0

@Jason PowerShell ist (meistens) ohne Berücksichtigung der Groß- und Kleinschreibung, so dass dies definitiv nicht die Ursache Ihres Problems ist. –

Verwandte Themen