Start-Process
Startet einen oder mehrere Prozesse auf dem lokalen Computer.
Syntax
Default (Standard)
Start-Process
[-FilePath] <String>
[[-ArgumentList] <String[]>]
[-Credential <PSCredential>]
[-WorkingDirectory <String>]
[-LoadUserProfile]
[-NoNewWindow]
[-PassThru]
[-RedirectStandardError <String>]
[-RedirectStandardInput <String>]
[-RedirectStandardOutput <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-UseNewEnvironment]
[<CommonParameters>]
UseShellExecute
Start-Process
[-FilePath] <String>
[[-ArgumentList] <String[]>]
[-WorkingDirectory <String>]
[-PassThru]
[-Verb <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[<CommonParameters>]
Beschreibung
Das Cmdlet Start-Process startet einen oder mehrere Prozesse auf dem lokalen Computer. Um das Programm anzugeben, das im Prozess ausgeführt wird, geben Sie eine ausführbare Datei oder Skriptdatei oder eine Datei ein, die mit einem Programm auf dem Computer geöffnet werden kann. Wenn Sie eine nicht ausführbare Datei angeben, startet Start-Process das Programm, das der Datei zugeordnet ist, ähnlich dem cmdlet Invoke-Item.
Sie können die Parameter von Start-Process verwenden, um Optionen anzugeben, z. B. das Laden eines Benutzerprofils, das Starten des Prozesses in einem neuen Fenster oder die Verwendung alternativer Anmeldeinformationen.
Beispiele
Beispiel 1: Starten eines Prozesses, der Standardwerte verwendet
In diesem Beispiel wird ein Prozess gestartet, der die Sort.exe Datei im aktuellen Ordner verwendet. Der Befehl verwendet alle Standardwerte, einschließlich des Standardfensterstils, des Arbeitsordners und der Anmeldeinformationen.
Start-Process -FilePath "sort.exe"
Beispiel 2: Drucken einer Textdatei
In diesem Beispiel wird ein Prozess gestartet, der die C:\PS-Test\MyFile.txt Datei druckt.
Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print
Beispiel 3: Starten eines Prozesses zum Sortieren von Elementen in eine neue Datei
In diesem Beispiel wird ein Prozess gestartet, der Elemente in der Testsort.txt Datei sortiert und die sortierten Elemente in den Sorted.txt-Dateien zurückgibt. Alle Fehler werden in die SortError.txt Datei geschrieben.
Start-Process -FilePath "Sort.exe" -RedirectStandardInput "Testsort.txt" -RedirectStandardOutput "Sorted.txt" -RedirectStandardError "SortError.txt" -UseNewEnvironment
Der UseNewEnvironment Parameter gibt an, dass der Prozess mit eigenen Umgebungsvariablen ausgeführt wird.
Beispiel 4: Starten eines Prozesses in einem maximierten Fenster
In diesem Beispiel wird der Notepad.exe Prozess gestartet. Es maximiert das Fenster und behält das Fenster bei, bis der Vorgang abgeschlossen ist.
Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized
Beispiel 5: Starten von PowerShell als Administrator
In diesem Beispiel wird PowerShell mithilfe der Option "Als Administrator ausführen" gestartet.
Start-Process -FilePath "powershell" -Verb RunAs
Beispiel 6: Verwenden verschiedener Verben zum Starten eines Prozesses
In diesem Beispiel wird gezeigt, wie Sie die Verben finden, die beim Starten eines Prozesses verwendet werden können. Die verfügbaren Verben werden durch die Dateinamenerweiterung der Datei bestimmt, die im Prozess ausgeführt wird.
$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args PowerShell.exe
$startExe.verbs
open
runas
Im Beispiel wird New-Object verwendet, um ein System.Diagnostics.ProcessStartInfo -Objekt für PowerShell.exezu erstellen, die Datei, die im PowerShell-Prozess ausgeführt wird. Die Verbs--Eigenschaft des ProcessStartInfo--Objekts zeigt, dass Sie die Open und RunAs Verben mit PowerShell.exeoder mit einem beliebigen Prozess verwenden können, der eine .exe Datei ausführt.
Beispiel 7: Angeben von Argumenten für den Prozess
Beide Befehle starten den Windows-Befehlsdolmetscher und geben einen Dir-Befehl im Ordner "Programme" aus. Da dieser Ordnername ein Leerzeichen enthält, muss der Wert in Escapezeichen eingeschlossen sein. Beachten Sie, dass der erste Befehl eine Zeichenfolge als ArgumentList angibt. Der zweite Befehl ist ein Zeichenfolgenarray.
Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%systemdrive%\program files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""
Parameter
-ArgumentList
Gibt Parameter oder Parameterwerte an, die verwendet werden sollen, wenn dieses Cmdlet den Prozess startet. Wenn Parameter oder Parameterwerte ein Leerzeichen enthalten, müssen sie mit escaped doppelten Anführungszeichen umgeben sein.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Argumente |
Parametersätze
(All)
| Position: | 1 |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Credential
Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Geben Sie einen Benutzernamen ein, z. B. "User01" oder "Domain01\User01", oder geben Sie ein PSCredential--Objekt ein, z. B. eines aus dem Cmdlet Get-Credential. Standardmäßig verwendet das Cmdlet die Anmeldeinformationen des aktuellen Benutzers.
Parametereigenschaften
| Typ: | PSCredential |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | RunAs |
Parametersätze
Default
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-FilePath
Gibt den optionalen Pfad und Dateinamen des Programms an, das im Prozess ausgeführt wird. Geben Sie den Namen einer ausführbaren Datei oder eines Dokuments ein, z. B. eine .txt oder .doc Datei, die einem Programm auf dem Computer zugeordnet ist. Dieser Parameter ist erforderlich.
Wenn Sie nur einen Dateinamen angeben, verwenden Sie den WorkingDirectory Parameter, um den Pfad anzugeben.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | PSPath |
Parametersätze
(All)
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-LoadUserProfile
Gibt an, dass dieses Cmdlet das Windows-Benutzerprofil lädt, das im HKEY_USERS Registrierungsschlüssel für den aktuellen Benutzer gespeichert ist.
Dieser Parameter wirkt sich nicht auf die PowerShell-Profile aus. Weitere Informationen finden Sie unter about_Profiles.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Lup |
Parametersätze
Default
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-NoNewWindow
Starten Sie den neuen Prozess im aktuellen Konsolenfenster. Standardmäßig öffnet PowerShell ein neues Fenster.
Sie können die parameter NoNewWindow und WindowStyle im selben Befehl nicht verwenden.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Nnw |
Parametersätze
Default
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-PassThru
Gibt ein Prozessobjekt für jeden Prozess zurück, den das Cmdlet gestartet hat. Standardmäßig generiert dieses Cmdlet keine Ausgabe.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-RedirectStandardError
Gibt eine Datei an. Dieses Cmdlet sendet alle vom Prozess generierten Fehler an eine von Ihnen angegebene Datei. Geben Sie den Pfad und dateinamen ein. Standardmäßig werden die Fehler in der Konsole angezeigt.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | RSE |
Parametersätze
Default
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-RedirectStandardInput
Gibt eine Datei an. Dieses Cmdlet liest Eingaben aus der angegebenen Datei. Geben Sie den Pfad und dateinamen der Eingabedatei ein. Standardmäßig ruft der Prozess seine Eingabe von der Tastatur ab.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | RSI |
Parametersätze
Default
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-RedirectStandardOutput
Gibt eine Datei an. Dieses Cmdlet sendet die vom Prozess generierte Ausgabe an eine von Ihnen angegebene Datei. Geben Sie den Pfad und dateinamen ein. Standardmäßig wird die Ausgabe in der Konsole angezeigt.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | RSO |
Parametersätze
Default
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-UseNewEnvironment
Gibt an, dass dieses Cmdlet neue Umgebungsvariablen verwendet, die für den Prozess angegeben sind. Standardmäßig wird der gestartete Prozess mit den für den Computer und Benutzer angegebenen Umgebungsvariablen ausgeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
Default
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Verb
Gibt ein Verb an, das verwendet werden soll, wenn dieses Cmdlet den Prozess startet. Die verfügbaren Verben werden durch die Dateinamenerweiterung der Datei bestimmt, die im Prozess ausgeführt wird.
In der folgenden Tabelle sind die Verben für einige gängige Prozessdateitypen aufgeführt.
| Dateityp | Verben |
|---|---|
| .cmd | Bearbeiten, Öffnen, Drucken, RunAs, RunAsUser |
| .exe | Öffnen, RunAs, RunAsUser |
| .txt | Öffnen, Drucken, DruckenTo |
| .wav | Öffnen, Wiedergeben |
Um die Verben zu finden, die mit der Datei verwendet werden können, die in einem Prozess ausgeführt wird, verwenden Sie das Cmdlet New-Object, um ein System.Diagnostics.ProcessStartInfo Objekt für die Datei zu erstellen. Die verfügbaren Verben befinden sich in der Verbs--Eigenschaft des ProcessStartInfo-Objekts. Ausführliche Informationen finden Sie in den Beispielen.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
UseShellExecute
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Wait
Gibt an, dass dieses Cmdlet auf den angegebenen Prozess und dessen Nachfolger wartet, bevor weitere Eingaben akzeptiert werden. Dieser Parameter unterdrückt die Eingabeaufforderung oder behält das Fenster bei, bis die Prozesse abgeschlossen sind.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-WindowStyle
Gibt den Status des Fensters an, das für den neuen Prozess verwendet wird. Die zulässigen Werte für diesen Parameter sind: Normal, Ausgeblendete, Minimierteund Maximierte. Der Standardwert ist Normal.
Sie können die parameter "WindowStyle" und "NoNewWindow" nicht im selben Befehl verwenden.
Parametereigenschaften
| Typ: | ProcessWindowStyle |
| Standardwert: | None |
| Zulässige Werte: | Normal, Hidden, Minimized, Maximized |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-WorkingDirectory
Gibt den Speicherort der ausführbaren Datei oder des Dokuments an, die im Prozess ausgeführt wird. Der Standardwert ist der Ordner für den neuen Prozess.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
None
Eingaben können nicht an dieses Cmdlet weitergereicht werden.
Ausgaben
None, System.Diagnostics.Process
Dieses Cmdlet generiert ein System.Diagnostics.Process--Objekt, wenn Sie den PassThru Parameter angeben. Andernfalls gibt dieses Cmdlet keine Ausgabe zurück.
Hinweise
- Dieses Cmdlet wird mithilfe der Start--Methode der System.Diagnostics.Process Klasse implementiert. Weitere Informationen zu dieser Methode finden Sie unter Process.Start Method.