2010-11-29 12 views

Antwort

10

Mit Powershell Version 4:

Sie können einen Befehl ausführen, wie unten angegeben:

Get-Service | select -property name,starttype 
+1

Dies scheint nur auf v5 zu arbeiten - getestet auf v4 und v2 und Das StartType-Feld wird nicht aufgefüllt – KERR

+0

Dies funktioniert nicht in Version 5 auf einem Windows Server 2012 R2. Es funktioniert unter Windows 10 sowohl lokal als auch bei der Abfrage eines Remote-Windows Server 2012 R2. – curropar

9

Soweit ich weiß, gibt es keine "native" PowerShell Möglichkeit, diese Informationen zu erhalten. Und vielleicht ist es eher die .NET-Beschränkung als PowerShell.

Hier ist der Vorschlag, diese Funktionalität auf die Version hinzuzufügen nächste:

https://connect.microsoft.com/PowerShell/feedback/details/424948/i-would-like-to-see-the-property-starttype-added-to-get-services

Die WMI Abhilfe ist auch da, nur für den Fall. Ich verwende diese WMI-Lösung für meine Aufgaben und es funktioniert.

+0

Stand 2015-10-10: [* Dies ist behoben und wird in der nächsten technischen Vorschau von Windows Server 2016 verfügbar sein. *] (Https://connect.microsoft.com/PowerShell/feedback/details/424948/ Ich möchte die Eigenschaft "start-type-add-to-get-services" sehen. – StackzOfZtuff

32

WMI ist der Weg, dies zu tun.

Get-WmiObject -Query "Select StartMode From Win32_Service Where Name='winmgmt'" 

Oder

Get-WmiObject -Class Win32_Service -Property StartMode -Filter "Name='Winmgmt'" 
+0

Gibt es eine Möglichkeit, den Starttyp über PowerShell zu ändern? –

+6

Sicher. '$ svc = Get-WmiObject -Klasse Win32_Service -Filter" Name = 'Winmgmt' "; $ svc.StartMode = 'Manuell'; $ svc.psbase.put() – ravikanth

+2

Wie kann ich sehen, ob ein verzögerter Start für den Service eingestellt ist? –

13

In Powershell Sie den Befehl Set-Service verwenden können:

Set-Service -Name Winmgmt -StartupType Manual 

ich kein Powershell-Befehl gefunden haben, obwohl Sie den Starttyp anzuzeigen. Man würde annehmen, dass der Befehl Get-Service das liefern würde, aber es scheint nicht so zu sein.

+0

Vielleicht nützlich: Set-Service -Name Winmgmt -StartupType Handbuch -Status läuft - http://www.computerperformance.de/powershell/powershell_service_set.htm – Kiquenet

1

Wenn Sie Powershell 5 aktualisieren können Sie alle Dienste auf der Maschine und Anzeige Name und Starttype und sortieren sie nach Starttype für die einfache Anzeige abfragen:

Get-Service |Select-Object -Property Name,StartType |Sort-Object -Property StartType 
3

Sobald Sie upgraded to PowerShell version 5 haben, können Sie den Starttyp bekommen.

Um zu überprüfen, welche Version von PowerShell Sie verwenden, verwenden Sie $PSVersionTable.

Die folgenden Beispiele sind für die Windows-Firewall-Service:

Für das lokale System

Get-Service | Select-Object -Property Name,Status,StartType | where-object {$_.Name -eq "MpsSvc"} | Format-Table -auto 

Für ein Remote-System

Get-Service -ComputerName HOSTNAME_OF_SYSTEM | Select-Object -Property MachineName,Name,Status,StartType | where-object {$_.Name -eq "MpsSvc"} | Format-Table -auto 

für mehrere Systeme (Muss Erstelle die systems.txt)

Get-Service -ComputerName (Get-content c:\systems.txt) | Select-Object -Property MachineName,Name,Status,StartType | where-object {$_.Name -eq "MpsSvc"} | Format-Table -auto 
+1

Es ist auch ohne Piping möglich: '(Get-Service-Name MpsSvc) .StartType' – Gargravarr

1

Sie können auch das sc Werkzeug verwenden, um es einzustellen.

Sie können es auch über PowerShell aufrufen und bei Bedarf zusätzliche Prüfungen hinzufügen. Der Vorteil dieses Tools gegenüber PowerShell besteht darin, dass das Tool sc den Starttyp auch auf automatisch verzögert setzen kann.

# Get Service status 
$Service = "Wecsvc" 
sc.exe qc $Service 

# Set Service status 
$Service = "Wecsvc" 
sc.exe config $Service start= delayed-auto 
4

können Sie auch:

(Get-Service 'winmgmt').StartType 

Es gibt nur den Starttyp, zum Beispiel deaktiviert.

+0

Dies scheint nur auf PS v5 zu funktionieren. Ich habe auf v2 und v4 getestet, aber es gibt nichts zurück. – KERR

2

Verwendung:

Get-Service BITS | Select StartType 

oder benutzen:

(Get-Service -Name BITS).StartType 

Dann

Set-Service BITS -StartupType xxx 

[Powershell 5.1]

Verwandte Themen