Starten von Prozessen mit Windows PowerShell
-
Das
Start-Process
Cmdlet in PowerShell -
Die Cmdlet-Parameter
Start-Process
-
Die Vorteile von PowerShell
Start-Prozess
Das Cmdlet Start-Process
ist ein PowerShell-Befehl, mit dem einzelne oder mehrere Prozesse kontrolliert und verwaltet gestartet werden können. Standardmäßig erbt der gestartete Prozess alle aktuellen PowerShell-Umgebungen.
Das Cmdlet Start-Process
kann eine ausführbare Datei, ein Batch-Skript, MS-DOS- und PowerShell-Befehle und sogar eine Java-Anwendung ausführen oder ausführen. Darüber hinaus kann Windows PowerShell das Cmdlet Start-Process
verwenden, um Benutzerprofil, Windows-Status und Anmeldeinformationen usw. anzugeben.
In diesem Artikel wird erläutert, wie das Cmdlet Start-Process
funktioniert und wie es beim Schreiben unserer Skripts verwendet wird.
Das Start-Process
Cmdlet in PowerShell
Das Cmdlet Start-Process
führt einen oder mehrere Prozesse, ausführbare oder Skriptdateien oder beliebige Dateien aus, die eine installierte Software auf dem Computer öffnen kann.
Das Cmdlet Start-Process
hat eine grundlegende Syntax, die unten gezeigt wird, wenn Windows PowerShell verwendet wird.
Start-Process <string>
Die Cmdlet-Parameter Start-Process
Das Cmdlet Start-Process
kann Parameter verwenden, um dem Cmdlet mehr Leistung, Funktionalität und Flexibilität hinzuzufügen.
Neuen Prozess oder ausführbare Datei starten
Wie bereits erwähnt, besteht die grundlegendste Verwendung des Befehls Start-Process
darin, die ausführbare Datei, Batch- oder Skriptdatei oder einen Befehl wie die folgende Syntax bereitzustellen. Beispielsweise wird eine Notepad-Anwendung geöffnet, wenn sie mit der folgenden Syntax aufgerufen wird.
Start-Process notepad.exe
Alternativ kann das Cmdlet den Parameter -FilePath
verwenden, um den Dateispeicherort anzugeben, den wir ausführen möchten.
Start-Process -FilePath notepad.exe
Wir können auch den vollständigen Pfad der ausführbaren Datei oder Batch-Datei unten angeben. Im folgenden Beispiel führen wir eine Batchdatei aus, die sich im folgenden Beispiel im Verzeichnis D:\scripts
befindet.
Start-Process -FilePath "D:\scripts\backup.bat"
Standardeingabe als Datei festlegen
Wir können eine Prozesseingabe mit der Standardeingabe angeben, wobei bereitgestellte Standardeingabeinhalte in den angegebenen Prozess umgeleitet werden. In diesem Fall kann der Parameter -RedirectStandardInput
eine Datei als Input in den neu erstellten Prozess setzen.
Start-Process -FilePath "D:\scripts\backup.bat" -RedirectStandardInput test.txt
In der obigen Beispielsyntax stammt die ausführbare Eingabe backup.bat
aus der Datei test.txt
.
Standardausgabe als Datei festlegen
Wenn ein Prozess ausgeführt wird, kann er eine Ausgabe erzeugen, die wir auf dem Terminal, Bildschirm oder in einer Datei ausgeben können. Wir können den Parameter -RedirectStandardOutput
verwenden, um die Ausgabe in eine Datei zu spezifizieren.
Start-Process -FilePath "D:\scripts\backup.bat" -RedirectStandardOutput test.txt
Die ausführbare Ausgabe backup.bat
stammt aus der Datei test.txt
in der Beispielsyntax oben.
Standardfehlerausgabe als Datei festlegen
Während der Ausführung eines Prozesses können Fehler auftreten, und Informationen zu diesen Fehlern werden standardmäßig in die Konsole oder das Terminal gedruckt. Mit dem Parameter -RedirectStandardError
kann die Ausgabe in eine Datei wie unten umgeleitet werden.
Start-Process -FilePath "D:\scripts\backup.bat" -RedirectStandardError errors.txt
Wenn in der obigen Beispielsyntax beim Ausführen der ausführbaren Datei backup.bat
Fehler aufgetreten sind, werden die Fehler in der Datei errors.txt
gedruckt.
Arbeitsverzeichnis festlegen
Standardmäßig wird ein neuer Prozess im aktuellen Arbeitsverzeichnis ausgeführt, was normalerweise das Systemlaufwerk C:
ist. Wir können jedoch unten mit dem Parameter -WorkingDirectory
ein neues Arbeitsverzeichnis festlegen.
Start-Process notepad.exe -WorkingDirectory "D:\"
Für dieses Beispiel
Neue Umgebung erstellen
Zusammen mit unseren vorherigen Parametern, die im Artikel besprochen wurden, können wir sie zu einem Skriptblock zusammenführen.
Der Parameter -UseNewEnvironment
gibt an, dass der Prozess mit seinen Umgebungsvariablen läuft.
$processOptions = @{
FilePath = "sort.exe"
RedirectStandardInput = "TestSort.txt"
RedirectStandardOutput = "Sorted.txt"
RedirectStandardError = "SortError.txt"
UseNewEnvironment = $true
}
Start-Process @processOptions
Start-Process
im maximierten Fenster
Der Befehl Start-Process
kann einen Befehlszeilenprozess oder einen GUI-Prozess starten, der möglicherweise eine GUI hat.
Das Skript kann die Größe des GUI-Fensters mit dem Parameter -WindowStyle
festlegen. Dieser Parameter kann auf Maximiert eingestellt werden, um das neue Prozessfenster zu maximieren.
Start-Process notepad.exe -WindowStyle Maximized
Start-Prozess
mit einem anderen Benutzer
Standardmäßig wird der gestartete Prozess mit den aktuellen Benutzerrechten ausgeführt. Das Cmdlet Start-Process
kann jedoch die Berechtigungen des Prozesses mit dem Parameter -Credential
ändern, indem es den neuen Benutzer angibt, mit dem wir den Prozess ausführen möchten.
Wenn Sie Ihren Benutzernamen eingeben, werden Sie aufgefordert, ein Passwort einzugeben.
Start-Process notepad.exe -Credential <username>
Start-Process
als Administrator
Wir können die Anwendung als Administrator mit dem Parameter - Verb
ausführen.
Start-Process notepad.exe -Verb RunAs
Start-Prozess
mit angegebenen Argumenten
Befehle, Prozesse oder Batch-dateien können einzelne oder mehrere Argumente akzeptieren, um Eingabedaten zu erhalten.
Diese Eingabedaten werden als Argument bezeichnet, und der Befehl Start-Process
kann dem gestarteten Prozess mit der -ArgumentList
Argumente liefern. Bereitgestellte Argumentliste, die als Argumente an die Prozesse übergeben wird.
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""
Die Vorteile von PowerShell Start-Prozess
- Skriptdateien können nur lokal geöffnet werden. Es handelt sich um eine Sicherheitstechnik, die Remoteangriffe mithilfe von Windows PowerShell-Skripts verhindert.
– Das Cmdlet wird in einer von Microsoft unterstützten Skriptumgebung ausgeführt. Solange Windows PowerShell unterstützt wird, stellt Microsoft Ressourcen bereit, um die Sprache mit Update-Revisionen auf dem neuesten Stand zu halten. - Eine große Entwickler-Community teilt bereitwillig ihr Wissen speziell mit dem Cmdlet
Start-Process
. - Die Cmdlets und Systemdatenspeicher verwenden standardisierte, konsistente Syntax und Namenskonventionen, um Daten einfach gemeinsam zu nutzen.
- Mit diesem Cmdlet wird die Navigation des Betriebssystems vereinfacht, wodurch Benutzer sich mit dem Dateisystem, der Registrierung und anderen Daten vertraut machen können.
- Objekte können einfach direkt manipuliert oder an andere Tools oder Datenbanken gesendet werden.
- Softwareanbieter und -entwickler können benutzerdefinierte Tools erstellen.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn