Start-Job
Startet einen PowerShell-Hintergrundprozess.
Syntax
ComputerName (Standardwert)
Start-Job
[-ScriptBlock] <ScriptBlock>
[[-InitializationScript] <ScriptBlock>]
[-Name <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-WorkingDirectory <String>]
[-RunAs32]
[-PSVersion <Version>]
[-InputObject <PSObject>]
[-ArgumentList <Object[]>]
[<CommonParameters>]
DefinitionName
Start-Job
[-DefinitionName] <String>
[[-DefinitionPath] <String>]
[[-Type] <String>]
[-WorkingDirectory <String>]
[<CommonParameters>]
FilePathComputerName
Start-Job
[-FilePath] <String>
[[-InitializationScript] <ScriptBlock>]
[-Name <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-WorkingDirectory <String>]
[-RunAs32]
[-PSVersion <Version>]
[-InputObject <PSObject>]
[-ArgumentList <Object[]>]
[<CommonParameters>]
LiteralFilePathComputerName
Start-Job
[[-InitializationScript] <ScriptBlock>]
-LiteralPath <String>
[-Name <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-WorkingDirectory <String>]
[-RunAs32]
[-PSVersion <Version>]
[-InputObject <PSObject>]
[-ArgumentList <Object[]>]
[<CommonParameters>]
Beschreibung
Das Cmdlet Start-Job startet einen PowerShell-Hintergrundauftrag auf dem lokalen Computer.
Ein PowerShell-Hintergrundauftrag führt einen Befehl aus, ohne mit der aktuellen Sitzung zu interagieren. Wenn Sie einen Hintergrundauftrag starten, wird selbst dann sofort ein Auftragsobjekt zurückgegeben, wenn der Abschluss des Auftrags längere Zeit in Anspruch nimmt. Sie können weiterhin in der Sitzung ohne Unterbrechung arbeiten, während der Auftrag ausgeführt wird.
Das Auftragsobjekt enthält nützliche Informationen zum Auftrag, enthält aber nicht die Auftragsergebnisse.
Wenn der Auftrag abgeschlossen ist, verwenden Sie das cmdlet Receive-Job, um die Ergebnisse des Auftrags abzurufen. Weitere Informationen zu Hintergrundaufträgen finden Sie unter about_Jobs.
Verwenden Sie zum Ausführen eines Hintergrundauftrags auf einem Remotecomputer den parameter AsJob, der auf vielen Cmdlets verfügbar ist, oder verwenden Sie das Cmdlet Invoke-Command, um einen Start-Job Befehl auf dem Remotecomputer auszuführen. Weitere Informationen finden Sie unter about_Remote_Jobs.
Ab PowerShell 3.0 kann Start-Job Instanzen benutzerdefinierter Aufgabearten starten, wie z. B. geplante Aufgaben. Informationen zum Verwenden von Start-Job zum Starten von Aufträgen mit benutzerdefinierten Typen finden Sie in den Hilfedokumenten für die Funktion "Auftragstyp".
Ab PowerShell 6.0 können Sie Aufträge mit dem Et-Zeichen (&)-Hintergrundoperator starten. Die Funktionalität des Hintergrundoperators ähnelt Start-Job. Beide Methoden zum Starten eines Auftrags erstellen ein PSRemotingJob-Auftragsobjekt. Weitere Informationen zur Verwendung des Et-Zeichens (&) finden Sie unter about_Operators.
PowerShell 7 hat den parameter WorkingDirectory eingeführt, der das anfängliche Arbeitsverzeichnis eines Hintergrundauftrags angibt. Wenn der Parameter nicht angegeben ist, wird Start-Job standardmäßig auf das aktuelle Arbeitsverzeichnis des Aufrufers festgelegt, der den Auftrag gestartet hat.
Hinweis
Das Erstellen eines Out-of-Process-Hintergrundauftrags mit Start-Job wird in dem Szenario nicht unterstützt, in dem PowerShell in anderen Anwendungen gehostet wird, z. B. die PowerShell Azure Functions.
Dies ist beabsichtigt, da Start-Job von der pwsh Programmdatei abhängig ist, die unter $PSHOME verfügbar ist, um einen Hintergrundprozess außerhalb des Prozesses zu starten. Wenn jedoch eine Anwendung PowerShell hostet, verwendet sie direkt die PowerShell NuGet SDK-Pakete und wird nicht zusammen mit pwsh geliefert.
Der Ersatz in diesem Szenario ist Start-ThreadJob aus dem Modul ThreadJob.
Beispiele
Beispiel 1: Starten eines Hintergrundauftrags
In diesem Beispiel wird ein Hintergrundauftrag gestartet, der auf dem lokalen Computer ausgeführt wird.
Start-Job -ScriptBlock { Get-Process -Name pwsh }
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Job1 BackgroundJob Running True localhost Get-Process -Name pwsh
Start-Job verwendet den parameter ScriptBlock, um Get-Process als Hintergrundauftrag auszuführen. Der Parameter Name dient dazu, PowerShell-Prozesse zu finden, pwsh. Die Auftragsinformationen werden angezeigt, und PowerShell kehrt zu einer Eingabeaufforderung zurück, während der Auftrag im Hintergrund ausgeführt wird.
Verwenden Sie das Cmdlet Receive-Job, um die Ausgabe des Auftrags anzuzeigen. Beispiel: Receive-Job -Id 1.
Beispiel 2: Verwenden des Hintergrundoperators zum Starten eines Hintergrundauftrags
In diesem Beispiel wird der Hintergrundoperator "Ampersand (&)" verwendet, um einen Hintergrundauftrag auf dem lokalen Computer zu starten. Die Aufgabe erzielt das gleiche Ergebnis wie Start-Job in Beispiel 1.
Get-Process -Name pwsh &
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 Job5 BackgroundJob Running True localhost Microsoft.PowerShell.Man...
Get-Process verwendet den Parameter Name, um PowerShell-Prozesse pwshanzugeben. Das Et-Zeichen (&) führt den Befehl als Hintergrundauftrag aus. Die Auftragsinformationen werden angezeigt, und PowerShell kehrt zu einer Eingabeaufforderung zurück, während der Auftrag im Hintergrund ausgeführt wird.
Verwenden Sie das Cmdlet Receive-Job, um die Ausgabe des Auftrags anzuzeigen. Beispiel: Receive-Job -Id 5.
Beispiel 3: Einen Auftrag mit Invoke-Command starten
In diesem Beispiel wird ein Job auf mehreren Computern ausgeführt. Der Auftrag wird in einer Variablen gespeichert und mithilfe des Variablennamens in der PowerShell-Befehlszeile ausgeführt.
$jobWRM = Invoke-Command -ComputerName (Get-Content -Path C:\Servers.txt) -ScriptBlock {
Get-Service -Name WinRM } -JobName WinRM -ThrottleLimit 16 -AsJob
Ein Auftrag, der Invoke-Command verwendet, wird erstellt und in der $jobWRM Variablen gespeichert.
Invoke-Command verwendet den Parameter ComputerName, um die Computer anzugeben, auf denen der Auftrag ausgeführt wird.
Get-Content ruft die Servernamen aus der datei C:\Servers.txt ab.
Der ScriptBlock-Parameter gibt einen Befehl an, damit Get-Service den WinRM-Dienst abruft. Der Parameter JobName gibt einen benutzerfreundlichen Namen für den Auftrag an, WinRM. Der ThrottleLimit Parameter begrenzt die Anzahl gleichzeitiger Befehle auf 16. Der parameter AsJob startet einen Hintergrundauftrag, der den Befehl auf den Servern ausführt.
Beispiel 4: Abrufen von Auftragsinformationen
In diesem Beispiel werden Informationen zu einem Auftrag und die Ergebnisse eines abgeschlossenen Auftrags angezeigt, der auf dem lokalen Computer ausgeführt wurde.
$j = Start-Job -ScriptBlock { Get-WinEvent -Log System } -Credential Domain01\User01
$j | Select-Object -Property *
State : Completed
HasMoreData : True
StatusMessage :
Location : localhost
Command : Get-WinEvent -Log System
JobStateInfo : Completed
Finished : System.Threading.ManualResetEvent
InstanceId : 27ce3fd9-40ed-488a-99e5-679cd91b9dd3
Id : 18
Name : Job18
ChildJobs : {Job19}
PSBeginTime : 8/8/2019 14:41:57
PSEndTime : 8/8/2019 14:42:07
PSJobTypeName : BackgroundJob
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
Information : {}
Start-Job verwendet den ScriptBlock--Parameter, um einen Befehl auszuführen, der Get-WinEvent angibt, um das System--Protokoll abzurufen. Der Parameter Credential gibt ein Domänenbenutzerkonto mit der Berechtigung zum Ausführen des Auftrags auf dem Computer an. Das Auftragsobjekt wird in der variablen $j gespeichert.
Das Objekt in der Variablen $j wird über die Pipeline an Select-Object gesendet. Der parameter Property gibt ein Sternchen (*) an, um alle Eigenschaften des Auftragsobjekts anzuzeigen.
Beispiel 5: Ausführen eines Skripts als Hintergrundauftrag
In diesem Beispiel wird ein Skript auf dem lokalen Computer als Hintergrundauftrag ausgeführt.
Start-Job -FilePath C:\Scripts\Sample.ps1
Start-Job verwendet den parameter FilePath, um eine Skriptdatei anzugeben, die auf dem lokalen Computer gespeichert ist.
Beispiel 6: Abrufen eines Prozesses mithilfe eines Hintergrundauftrags
In diesem Beispiel wird ein Hintergrundauftrag verwendet, um einen angegebenen Prozess anhand des Namens abzurufen.
Start-Job -Name PShellJob -ScriptBlock { Get-Process -Name powershell }
Start-Job verwendet den Parameter Name, um einen benutzerfreundlichen Auftragsnamen anzugeben: PShellJob. Der parameter ScriptBlock gibt Get-Process zum Abrufen von Prozessen mit dem Namen powershellan.
Beispiel 7: Sammeln und Speichern von Daten mithilfe eines Hintergrundauftrags
In diesem Beispiel wird ein Auftrag gestartet, der eine große Menge von Kartendaten sammelt und dann in einer .tif Datei speichert.
Start-Job -Name GetMappingFiles -InitializationScript {Import-Module -Name MapFunctions} -ScriptBlock {
Get-Map -Name * | Set-Content -Path D:\Maps.tif }
Start-Job verwendet den Parameter Name, um einen freundlichen Auftragsnamen anzugeben, GetMappingFiles. Der InitializationScript Parameter führt einen Skriptblock aus, der das MapFunctions Modul importiert. Der ScriptBlock-Parameter wird Get-Map ausgeführt, und Set-Content speichert die Daten an dem durch den Parameter Path angegebenen Speicherort.
Beispiel 8: Eingabe an einen Hintergrundauftrag übergeben
In diesem Beispiel wird die $input automatische Variable verwendet, um ein Eingabeobjekt zu verarbeiten. Verwenden Sie Receive-Job, um die Ausgabe des Auftrags anzuzeigen.
Start-Job -ScriptBlock { Get-Content -Path $input } -InputObject "C:\Servers.txt"
Receive-Job -Name Job45 -Keep
Server01
Server02
Server03
Server04
Start-Job verwendet den parameter ScriptBlock, um Get-Content mit der $input automatischen Variablen auszuführen. Die $input Variable ruft Objekte aus dem parameter InputObject ab.
Receive-Job verwendet den Parameter Name, um den Auftrag anzugeben und die Ergebnisse auszugeben. Der Keep Parameter speichert die Auftragsausgabe, sodass er während der PowerShell-Sitzung erneut angezeigt werden kann.
Beispiel 9: Festlegen des Arbeitsverzeichnisses für einen Hintergrundauftrag
Mit dem WorkingDirectory können Sie ein alternatives Verzeichnis für einen Auftrag angeben, aus dem Sie Skripts ausführen oder Dateien öffnen können. In diesem Beispiel gibt der Hintergrundauftrag ein Arbeitsverzeichnis an, das sich von dem aktuellen Verzeichnisspeicherort unterscheidet.
PS C:\Test> Start-Job -WorkingDirectory C:\Test\Scripts { $PWD } | Receive-Job -AutoRemoveJob -Wait
Path
----
C:\Test\Scripts
Das aktuelle Arbeitsverzeichnis in diesem Beispiels ist C:\Test.
Start-Job verwendet den Parameter WorkingDirectory, um das Arbeitsverzeichnis des Auftrags anzugeben. Der ScriptBlock-Parameter verwendet $PWD, um das Arbeitsverzeichnis des Auftrags anzuzeigen.
Receive-Job zeigt die Ausgabe des Hintergrundauftrags an.
AutoRemoveJob den Auftrag löscht, und Wait unterdrückt die Eingabeaufforderung, bis alle Ergebnisse empfangen werden.
Beispiel 10: Verwenden des ArgumentList-Parameters zum Angeben eines Arrays
In diesem Beispiel wird der parameter ArgumentList verwendet, um ein Array von Argumenten anzugeben. Das Array ist eine durch Trennzeichen getrennte Liste von Prozessnamen.
Start-Job -ScriptBlock { Get-Process -Name $args } -ArgumentList powershell, pwsh, notepad
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Job1 BackgroundJob Running True localhost Get-Process -Name $args
Das cmdlet Start-Job verwendet den ScriptBlock Parameter, um einen Befehl auszuführen.
Get-Process verwendet den Parameter Name, um die automatische Variable $argsanzugeben. Der ArgumentList Parameter übergibt das Array von Prozessnamen an $args. Die Prozessnamen powershell, pwsh und Notepad werden auf dem lokalen Computer ausgeführt.
Verwenden Sie das Cmdlet Receive-Job, um die Ausgabe des Auftrags anzuzeigen. Beispiel: Receive-Job -Id 1.
Beispiel 11: Ausführen eines Auftrags in einer Windows PowerShell 5.1
In diesem Beispiel wird der PSVersion Parameter mit dem Wert 5.1- verwendet, um einen Auftrag in einer Windows PowerShell 5.1-Sitzung auszuführen.
$PSVersionTable.PSVersion
Major Minor Patch PreReleaseLabel BuildLabel
----- ----- ----- --------------- ----------
7 0 0 rc.1
$job = Start-Job -ScriptBlock { $PSVersionTable.PSVersion } -PSVersion 5.1
Receive-Job -Job $job
Major Minor Build Revision
----- ----- ----- --------
5 1 14393 3383
Parameter
-ArgumentList
Gibt ein Array von Argumenten oder Parameterwerten für das Skript an, das vom FilePath-parameter oder einem Befehl angegeben wird, der mit dem ScriptBlock--Parameter angegeben ist.
Argumente müssen als Eindimension-Arrayargument an ArgumentList übergeben werden. Beispiel: eine durch Trennzeichen getrennte Liste. Weitere Informationen zum Verhalten von ArgumentListfinden Sie unter about_Splatting.
Parametereigenschaften
| Typ: | Object[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Argumente |
Parametersätze
ComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
FilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
LiteralFilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Authentication
Gibt den Mechanismus an, der zum Authentifizieren von Benutzeranmeldeinformationen verwendet wird.
Die zulässigen Werte für diesen Parameter sind wie folgt:
- Standard
- Basic
- Credssp
- Zusammenfassung
- Kerberos
- Verhandeln
- NegotiateWithImplicitCredential
Der Standardwert ist "Default".
CredSSP-Authentifizierung ist nur in Windows Vista, Windows Server 2008 und höheren Versionen des Windows-Betriebssystems verfügbar.
Weitere Informationen zu den Werten dieses Parameters finden Sie unter AuthenticationMechanism.
Vorsicht
Credential Security Support Provider (CredSSP)-Authentifizierung, bei der die Anmeldeinformationen des Benutzers an einen Remotecomputer übergeben werden, der authentifiziert werden soll, ist für Befehle konzipiert, die eine Authentifizierung für mehrere Ressourcen erfordern, z. B. den Zugriff auf eine Remotenetzwerkfreigabe. Dieser Mechanismus erhöht das Sicherheitsrisiko des Remotevorgangs. Wenn der Remotecomputer kompromittiert ist, können die an ihn übergebenen Anmeldeinformationen zum Steuern der Netzwerksitzung verwendet werden.
Parametereigenschaften
| Typ: | AuthenticationMechanism |
| Standardwert: | Default |
| Zulässige Werte: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
FilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
LiteralFilePathComputerName
| Position: | Named |
| 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. Wenn der parameter Credential nicht angegeben ist, verwendet der Befehl die Anmeldeinformationen des aktuellen Benutzers.
Geben Sie einen Benutzernamen ein, z. B. User01 oder Domain01\User01, oder geben Sie ein PSCredential-Objekt ein, das vom cmdlet Get-Credential generiert wird. Wenn Sie einen Benutzernamen eingeben, werden Sie aufgefordert, das Kennwort einzugeben.
Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert, und das Kennwort wird als SecureString-gespeichert.
Hinweis
Weitere Informationen zu SecureString Datenschutz finden Sie unter Wie sicher ist SecureString?.
Parametereigenschaften
| Typ: | PSCredential |
| Standardwert: | Current user |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
FilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
LiteralFilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-DefinitionName
Gibt den Definitionsnamen des Auftrags an, den dieses Cmdlet startet. Verwenden Sie diesen Parameter, um benutzerdefinierte Auftragstypen zu starten, die einen Definitionsnamen aufweisen, z. B. geplante Aufträge.
Wenn Sie Start-Job verwenden, um eine Instanz eines geplanten Auftrags zu starten, wird der Auftrag sofort gestartet, unabhängig von Auftragsauslösern oder Auftragsoptionen. Die resultierende Auftragsinstanz ist ein geplanter Auftrag, wird jedoch im Gegensatz zu ausgelösten geplanten Aufträgen nicht auf dem Datenträger gespeichert. Sie können den ArgumentList Parameter von Start-Job nicht verwenden, um Werte für Parameter von Skripts bereitzustellen, die in einem geplanten Auftrag ausgeführt werden.
Dieser Parameter wurde in PowerShell 3.0 eingeführt.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
DefinitionName
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-DefinitionPath
Gibt den Pfad der Definition für den Auftrag an, den dieses Cmdlet startet. Geben Sie den Definitionspfad ein. Die Verkettung der Werte der Parameter DefinitionPath und DefinitionName ergibt den vollqualifizierten Pfad der Auftragsdefinition. Verwenden Sie diesen Parameter, um benutzerdefinierte Auftragstypen zu starten, die einen Definitionspfad aufweisen, z. B. geplante Aufträge.
Für geplante Aufträge ist der Wert des DefinitionPath--Parameters $HOME\AppData\Local\Windows\PowerShell\ScheduledJob.
Dieser Parameter wurde in PowerShell 3.0 eingeführt.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
DefinitionName
| Position: | 1 |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-FilePath
Gibt ein lokales Skript an, das Start-Job als Hintergrundauftrag ausgeführt wird. Geben Sie den Pfad und Dateinamen des Skripts ein, oder verwenden Sie die Pipeline, um einen Skriptpfad an Start-Jobzu senden. Das Skript muss sich auf dem lokalen Computer oder in einem Ordner befinden, auf den der lokale Computer zugreifen kann.
Wenn Sie diesen Parameter verwenden, konvertiert PowerShell den Inhalt der angegebenen Skriptdatei in einen Skriptblock und führt den Skriptblock als Hintergrundauftrag aus.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
FilePathComputerName
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-InitializationScript
Gibt Befehle an, die vor dem Starten des Auftrags ausgeführt werden. Um einen Skriptblock zu erstellen, schließen Sie die Befehle in geschweifte Klammern ({}) ein.
Verwenden Sie diesen Parameter, um die Sitzung vorzubereiten, in der der Auftrag ausgeführt wird. Sie können sie beispielsweise verwenden, um der Sitzung Funktionen, Snap-Ins und Module hinzuzufügen.
Parametereigenschaften
| Typ: | ScriptBlock |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ComputerName
| Position: | 1 |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
FilePathComputerName
| Position: | 1 |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
LiteralFilePathComputerName
| Position: | 1 |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-InputObject
Gibt eingaben für den Befehl an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Objekte generiert.
Verwenden Sie im Wert des ScriptBlock- Parameters die $input automatische Variable, um die Eingabeobjekte darzustellen.
Parametereigenschaften
| Typ: | PSObject |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
FilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
LiteralFilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-LiteralPath
Gibt ein lokales Skript an, das dieses Cmdlet als Hintergrundauftrag ausführt. Geben Sie den Pfad eines Skripts auf dem lokalen Computer ein.
Start-Job verwendet den Wert des LiteralPath- Parameters genau so, wie er eingegeben wird. Es werden keine Zeichen als Wildcardzeichen interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen signalisieren PowerShell, dass keine Zeichen als Escapesequenzen interpretiert werden sollen.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | PSPath, EP |
Parametersätze
LiteralFilePathComputerName
| Position: | Named |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Name
Gibt einen freundlichen Namen für den neuen Auftrag an. Sie können den Namen verwenden, damit andere Auftrags-Cmdlets, wie z. B. das Cmdlet Stop-Job, den Auftrag identifizieren können.
Der standardmäßige Anzeigename lautet Job#, wobei # eine Ordnungszahl ist, die für jeden Auftrag erhöht wird.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
FilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
LiteralFilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-PSVersion
Gibt eine Version von PowerShell an, die für die Ausführung des Auftrags verwendet werden soll. Wenn der Wert von PSVersion5.1 ist, wird der Auftrag in einer Windows PowerShell 5.1-Sitzung ausgeführt. Für jeden anderen Wert wird der Auftrag mit der aktuellen Version von PowerShell ausgeführt.
Dieser Parameter wurde in PowerShell 7 hinzugefügt und funktioniert nur unter Windows.
Parametereigenschaften
| Typ: | Version |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
FilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
LiteralFilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-RunAs32
Ab PowerShell 7 funktioniert der RunAs32--Parameter nicht auf 64-Bit-PowerShell (pwsh).
Wenn RunAs32- in 64-Bit-PowerShell angegeben ist, löst Start-Job einen Ausnahmefehler mit Abbruch aus.
Um einen 32-Bit-PowerShell-Prozess (pwsh) mit RunAs32-zu starten, müssen Sie die 32-Bit-PowerShell installiert haben.
In 32-Bit-PowerShell erzwingt RunAs32 die Ausführung des Auftrags in einem 32-Bit-Prozess, auch auf einem 64-Bit-Betriebssystem.
Bei 64-Bit-Versionen von Windows 7 und Windows Server 2008 R2 können Sie nicht den Parameter Start-Job verwenden, um die Anmeldeinformationen eines anderen Benutzers anzugeben, wenn der -Befehl den Parameter Anmeldeinformationen enthält.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
ComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
FilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
LiteralFilePathComputerName
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-ScriptBlock
Gibt die Befehle an, die im Hintergrundauftrag ausgeführt werden sollen. Um einen Skriptblock zu erstellen, schließen Sie die Befehle in geschweifte Klammern ({}) ein. Verwenden Sie die $input automatische Variable, um auf den Wert des InputObject-Parameters zuzugreifen. Dieser Parameter ist erforderlich.
Parametereigenschaften
| Typ: | ScriptBlock |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Befehl |
Parametersätze
ComputerName
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Type
Gibt den benutzerdefinierten Typ für Aufträge an, die von Start-Jobgestartet werden. Geben Sie einen benutzerdefinierten Auftragstypnamen ein, z. B. PSScheduledJob für geplante Aufträge oder PSWorkflowJob für Workflows-Aufträge. Dieser Parameter ist nicht gültig für Standardhintergrundaufträge.
Dieser Parameter wurde in PowerShell 3.0 eingeführt.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
DefinitionName
| Position: | 2 |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-WorkingDirectory
Gibt das ursprünglichen Arbeitsverzeichnis des Hintergrundauftrags an. Wenn der Parameter nicht angegeben ist, wird der Job vom Standardspeicherort aus ausgeführt. Der Standardspeicherort ist das aktuelle Arbeitsverzeichnis des Aufrufers, der den Auftrag gestartet hat.
Dieser Parameter wurde in PowerShell 7 eingeführt.
Parametereigenschaften
| Typ: | String |
| Standardwert: | $HOME on Unix (macOS, Linux) and $HOME\Documents on Windows |
| 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
String
Sie können ein Objekt mit der Eigenschaft Name an dieses Cmdlet mit dem Parameter Name weiterleiten. Sie können z. B. ein FileInfo-Objekt von Get-ChildItem aus weiterleiten.
Ausgaben
System.Management.Automation.PSRemotingJob
Dieses Cmdlet gibt ein PSRemotingJob--Objekt zurück, das den Auftrag darstellt, den es gestartet hat.
Hinweise
PowerShell enthält die folgenden Aliase für Start-Job:
- Alle Plattformen:
sajb
Start-Job läuft in der aktuellen Sitzung in seiner eigenen Sitzung, um im Hintergrund ausgeführt zu werden. Wenn Sie das Cmdlet Invoke-Command verwenden, um einen Start-Job-Befehl in einer Sitzung auf einem Remotecomputer auszuführen, wird Start-Job in einer Sitzung in der Remotesitzung ausgeführt.