Share via


Start-Service

Startet beendete Dienste.

Syntax

Start-Service
     [-InputObject] <ServiceController[]>
     [-PassThru]
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-Service
     [-Name] <String[]>
     [-PassThru]
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-Service
     [-PassThru]
     -DisplayName <String[]>
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Beschreibung

Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.

Das Start-Service Cmdlet sendet eine Startnachricht an den Windows-Dienstcontroller für jeden der angegebenen Dienste. Wenn ein Dienst bereits ausgeführt wird, wird die Meldung ignoriert, ohne dass ein Fehler ausgegeben wird. Sie können die Dienste anhand ihrer Dienstnamen oder Anzeigenamen angeben, oder Sie können den InputObject-Parameter verwenden, um ein Dienstobjekt zur Verfügung zu stellen, das die Dienste darstellt, die Sie starten möchten.

Beispiele

Beispiel 1: Starten eines Diensts mit seinem Namen

In diesem Beispiel wird der EventLog-Dienst auf dem lokalen Computer gestartet. Der Name-Parameter identifiziert den Dienst anhand seines Dienstnamens.

Start-Service -Name "eventlog"

Beispiel 2: Anzeigen von Informationen ohne Starten eines Diensts

In diesem Beispiel wird gezeigt, was passieren würde, wenn Sie die Dienste mit einem Anzeigenamen starten, der "remote" enthält.

Start-Service -DisplayName *remote* -WhatIf

Der DisplayName-Parameter identifiziert die Dienste anhand ihres Anzeigenamens anstelle des Dienstnamens. Der WhatIf-Parameter bewirkt, dass das Cmdlet anzeigt, was geschieht, wenn Sie den Befehl ausführen, aber keine Änderungen vornehmen.

Beispiel 3: Starten eines Diensts und Aufzeichnen der Aktion in einer Textdatei

In diesem Beispiel wird der WMI-Dienst (Windows Management Instrumentation) auf dem Computer gestartet und der services.txt-Datei ein Datensatz der Aktion hinzugefügt.

$s = Get-Service wmi
Start-Service -InputObject $s -PassThru | Format-List >> services.txt

Zunächst wird verwendet Get-Service , um ein Objekt abzurufen, das den WMI-Dienst darstellt, und es in der $s Variablen zu speichern. Als Nächstes starten wir den Dienst. Ohne den PassThru-ParameterStart-Service wird keine Ausgabe erstellt. Der Pipelineoperator (|) übergibt die Objektausgabe an Start-Service das Format-List Cmdlet, um das Objekt als Liste seiner Eigenschaften zu formatieren. Der Anfügeumleitungsoperator (>>) leitet die Ausgabe an die services.txt-Datei um. Die Ausgabe wird am Ende der vorhandenen Datei hinzugefügt.

Beispiel 4: Starten eines deaktivierten Diensts

In diesem Beispiel wird gezeigt, wie Sie einen Dienst starten, wenn der Starttyp des Diensts Deaktiviert ist.

PS> Start-Service tlntsvr
Start-Service : Service 'Telnet (TlntSvr)' cannot be started due to the following error: Cannot start service TlntSvr on computer '.'.
At line:1 char:14
+ Start-Service  <<<< tlntsvr

PS> Get-CimInstance win32_service | Where-Object Name -eq "tlntsvr"
ExitCode  : 0
Name      : TlntSvr
ProcessId : 0
StartMode : Disabled
State     : Stopped
Status    : OK

PS> Set-Service tlntsvr -StartupType manual
PS> Start-Service tlntsvr

Der erste Versuch, den Telnet-Dienst (tlntsvr) zu starten, schlägt fehl. Der Get-CimInstance Befehl zeigt an, dass die StartMode-Eigenschaft des Tlntsvr-Diensts Deaktiviert ist. Das Set-Service Cmdlet ändert den Starttyp in Manuell. Nun können wir den Start-Service Befehl erneut übermitteln. Dieses Mal wird der Befehl ohne Fehler verarbeitet. Um zu überprüfen, ob der Befehl erfolgreich war, führen Sie aus Get-Service.

Parameter

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayName

Gibt die Anzeigenamen der zu startenden Dienste an. Platzhalterzeichen sind zulässig.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-Exclude

Gibt Dienste an, die dieses Cmdlet auslässt. Der Wert dieses Parameters qualifiziert den Parameter Name . Geben Sie ein name-Element oder -Muster ein, z. B s*. . Platzhalterzeichen sind zulässig.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Include

Gibt Dienste an, die dieses Cmdlet startet. Der Wert dieses Parameters qualifiziert den Parameter Name . Geben Sie ein name-Element oder -Muster ein, z. B s*. . Platzhalterzeichen sind zulässig.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-InputObject

Gibt ServiceController-Objekte an, die die zu startenden Dienste darstellen. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden.

Type:ServiceController[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Gibt die Dienstnamen für die zu startenden Dienste an.

Der Parametername ist optional. Sie können Name oder seinen Alias ServiceName verwenden oder den Parameternamen weglassen.

Type:String[]
Aliases:ServiceName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

Gibt ein Objekt zurück, das den Dienst darstellt. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

System.ServiceProcess.ServiceController, System.String

Sie können Objekte, die die Dienste oder Zeichenfolgen darstellen, die die Dienstnamen enthalten, an dieses Cmdlet übergeben.

Ausgaben

None, System.ServiceProcess.ServiceController

Dieses Cmdlet generiert ein System.ServiceProcess.ServiceController-Objekt , das den Dienst darstellt, wenn Sie PassThru angeben. Andernfalls wird von diesem Cmdlet keine Ausgabe generiert.

Hinweise

Dieses Cmdlet ist nur auf Windows-Plattformen verfügbar.

  • Sie können auch auf den Start-Service integrierten Alias verweisen. sasv Weitere Informationen finden Sie unter about_Aliases.
  • Start-Service kann Dienste nur steuern, wenn der aktuelle Benutzer dazu über die Berechtigung verfügt. Wenn ein Befehl nicht ordnungsgemäß verarbeitet wird, verfügen Sie u. U. nicht über die erforderlichen Berechtigungen.
  • Geben Sie ein, Get-Serviceum die Dienst- und Anzeigenamen der Dienste auf Ihrem System zu suchen. Die Dienstnamen werden in der Spalte Name und die Anzeigenamen in der Spalte DisplayName angezeigt.
  • Sie können nur die Dienste starten, die über den Starttyp Manuell, Automatisch oder Automatisch (Verzögerter Start) verfügen. Sie können die Dienste mit dem Starttyp Deaktiviert nicht starten. Wenn ein Start-Service Befehl mit der Meldung Cannot start service \<service-name\> on computerfehlschlägt, verwenden Sie Get-CimInstance , um den Starttyp des Diensts zu ermitteln, und verwenden Sie ggf. das Set-Service Cmdlet, um den Starttyp des Diensts zu ändern.
  • Einige Dienste, beispielsweise der Dienst für Leistungsprotokolle und -warnungen (SysmonLog), werden automatisch beendet, wenn sie keine Vorgänge ausführen müssen. Wenn PowerShell einen Dienst startet, der sich selbst fast sofort beendet, wird die folgende Meldung angezeigt: Service \<display-name\> start failed.