Freigeben über


Start-Job

Startet einen PowerShell-Hintergrundauftrag.

Syntax

Start-Job
     [-Name <String>]
     [-ScriptBlock] <ScriptBlock>
     [-Credential <PSCredential>]
     [-Authentication <AuthenticationMechanism>]
     [[-InitializationScript] <ScriptBlock>]
     [-WorkingDirectory <String>]
     [-RunAs32]
     [-PSVersion <Version>]
     [-InputObject <PSObject>]
     [-ArgumentList <Object[]>]
     [<CommonParameters>]
Start-Job
     [-DefinitionName] <String>
     [[-DefinitionPath] <String>]
     [[-Type] <String>]
     [-WorkingDirectory <String>]
     [<CommonParameters>]
Start-Job
     [-Name <String>]
     [-Credential <PSCredential>]
     [-FilePath] <String>
     [-Authentication <AuthenticationMechanism>]
     [[-InitializationScript] <ScriptBlock>]
     [-WorkingDirectory <String>]
     [-RunAs32]
     [-PSVersion <Version>]
     [-InputObject <PSObject>]
     [-ArgumentList <Object[]>]
     [<CommonParameters>]
Start-Job
     [-Name <String>]
     [-Credential <PSCredential>]
     -LiteralPath <String>
     [-Authentication <AuthenticationMechanism>]
     [[-InitializationScript] <ScriptBlock>]
     [-WorkingDirectory <String>]
     [-RunAs32]
     [-PSVersion <Version>]
     [-InputObject <PSObject>]
     [-ArgumentList <Object[]>]
     [<CommonParameters>]

Beschreibung

Das Start-Job Cmdlet 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 ohne Unterbrechung in der Sitzung weiterarbeiten, während der Auftrag abgeschlossen wird.

Das Auftragsobjekt enthält nützliche Informationen zum Auftrag, enthält aber nicht die Auftragsergebnisse. Wenn der Auftrag abgeschlossen ist, verwenden Sie das Receive-Job Cmdlet, 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 AsJob-Parameter, der für viele Cmdlets verfügbar ist, oder verwenden Sie das Invoke-Command Cmdlet, um einen Start-Job Befehl auf dem Remotecomputer auszuführen. Weitere Informationen finden Sie unter about_Remote_Jobs.

Ab PowerShell 3.0 Start-Job können Instanzen von benutzerdefinierten Auftragstypen, z. B. geplante Aufträge, gestartet werden. Informationen zum Start-Job Starten von Aufträgen mit benutzerdefinierten Typen finden Sie in den Hilfedokumenten für die Auftragstypfunktion.

Ab PowerShell 6.0 können Sie Aufträge mit dem Kaufmännischen Und-Zeichen(&)-Hintergrundoperator starten. Die Funktionalität des Hintergrundoperators ähnelt Start-Jobdem . Beide Methoden zum Starten eines Auftrags erstellen ein PSRemotingJob-Auftragsobjekt . Weitere Informationen zur Verwendung des kaufmännischen Und-Zeichens (&) finden Sie unter about_Operators.

PowerShell 7 hat den WorkingDirectory-Parameter eingeführt, der das anfängliche Arbeitsverzeichnis eines Hintergrundauftrags angibt. Wenn der Parameter nicht angegeben ist, Start-Job wird standardmäßig das aktuelle Arbeitsverzeichnis des Aufrufers verwendet, der den Auftrag gestartet hat.

Hinweis

Das Erstellen eines Out-of-Process-Hintergrundauftrags mit Start-Job einem Hintergrundauftrag wird in dem Szenario nicht unterstützt, in dem PowerShell in anderen Anwendungen gehostet wird, z. B. die PowerShell Azure Functions.

Dies ist entwurfsbedingt, da Start-Job die pwsh ausführbare Datei abhängig ist, die verfügbar $PSHOME ist, um einen Hintergrundauftrag außerhalb von Prozessen zu starten, aber wenn eine Anwendung PowerShell hostet, verwendet sie direkt die PowerShell NuGet SDK-Pakete und wird pwsh nicht ausgeliefert.

Der Ersatz in diesem Szenario stammt 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 ScriptBlock-Parameter , um als Hintergrundauftrag auszuführen Get-Process . Der Parameter Name gibt an, um 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 Receive-Job Cmdlet, 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 kaufmännisches Und-Zeichen (&) verwendet, um einen Hintergrundauftrag auf dem lokalen Computer zu starten. Der Auftrag erhält 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-Processverwendet den Parameter Name, um PowerShell-Prozesse anzugeben. pwsh Das kaufmännische Und-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 Receive-Job Cmdlet, um die Ausgabe des Auftrags anzuzeigen. Beispiel: Receive-Job -Id 5.

Beispiel 3: Starten eines Auftrags mit Invoke-Command

In diesem Beispiel wird ein Auftrag 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 verwendet Invoke-Command wird, 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 C:\Servers.txt Datei ab.

Der Parameter ScriptBlock gibt einen Befehl an, Get-Service der den WinRM-Dienst abruft . Der Parameter JobName gibt einen Anzeigenamen für den Auftrag WinRM an. Der Parameter ThrottleLimit begrenzt die Anzahl der gleichzeitigen 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 angibt Get-WinEvent , dass das Systemprotokoll abgerufen wird. Der Parameter "Credential " gibt ein Domänenbenutzerkonto mit der Berechtigung zum Ausführen des Auftrags auf dem Computer an. Das Auftragsobjekt wird in der $j Variablen gespeichert.

Das Objekt in der $j Variablen wird an die Pipeline gesendet.Select-Object 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 FilePath-Parameter , 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 Anzeigeauftragsnamen, PShellJob, anzugeben. Der ScriptBlock-Parameter gibt an Get-Process , prozesse mit dem Namen PowerShell abzurufen.

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 Anzeigeauftragsnamen, GetMappingFiles, anzugeben. Der Parameter InitializationScript führt einen Skriptblock aus, der das MapFunctions-Modul importiert. Der ScriptBlock-Parameter wird ausgeführt Get-Map und Set-Content speichert die Daten an dem durch den Path-Parameter angegebenen Speicherort.

Beispiel 8: Übergeben von Eingaben an einen Hintergrundauftrag

In diesem Beispiel wird die $input automatische Variable verwendet, um ein Eingabeobjekt zu verarbeiten. Wird Receive-Job verwendet, 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-Jobverwendet den ScriptBlock-Parameter, um mit der $input automatischen Variablen auszuführenGet-Content. Die $input Variable ruft Objekte aus dem InputObject-Parameter ab. Receive-Job verwendet den Parameter Name , um den Auftrag anzugeben und die Ergebnisse auszugeben. Der Parameter Keep speichert die Auftragsausgabe, damit sie 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 dieses Beispiels lautet C:\Test. Start-Job verwendet den WorkingDirectory-Parameter , 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 löscht den Auftrag, 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 ArgumentList-Parameter 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 Start-Job Cmdlet 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 Receive-Job Cmdlet, 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 durch den FilePath-Parameter oder einen 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 ArgumentList finden Sie unter about_Splatting.

Typ:Object[]
Aliase:Args
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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
  • Grundlegend
  • Credssp
  • Digest
  • Kerberos
  • Aushandeln
  • NegotiateWithImplicitCredential

Der Standardwert lautet 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.

Achtung

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 die Sicherheit des Remotecomputers gefährdet ist, können die an ihn übergebenen Anmeldeinformationen zum Steuern der Netzwerksitzung verwendet werden.

Typ:AuthenticationMechanism
Zulässige Werte:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Standardwert:Default
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 vom Cmdlet generiertes Get-Credential PSCredential-Objekt ein. 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 zum Schutz von SecureString finden Sie unter "Wie sicher ist SecureString?".

Typ:PSCredential
Position:Named
Standardwert:Current user
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DefinitionName

Gibt den Definitionsnamen des Auftrags an, den dieses Cmdlet startet. Verwenden Sie diesen Parameter, um benutzerdefinierte Auftragstypen zu starten, die über einen Definitionsnamen verfügen, z. B. geplante Aufträge.

Wenn Sie Start-Job eine Instanz eines geplanten Auftrags starten, wird der Auftrag sofort gestartet, unabhängig von Auftragsauslösern oder Auftragsoptionen. Die resultierende Auftragsinstanz ist ein geplanter Auftrag, wird jedoch nicht auf dem Datenträger gespeichert, z. B. ausgelöste geplante Aufträge. Sie können den ArgumentList-Parameter 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.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 ist der vollqualifizierte Pfad der Auftragsdefinition. Verwenden Sie diesen Parameter, um benutzerdefinierte Auftragstypen zu starten, die über einen Definitionspfad verfügen, z. B. geplante Aufträge.

Bei geplanten Aufträgen lautet $HOME\AppData\Local\Windows\PowerShell\ScheduledJobder Wert des DefinitionPath-Parameters .

Dieser Parameter wurde in PowerShell 3.0 eingeführt.

Typ:String
Position:1
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 zu senden.Start-Job 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.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 geschweifte Klammern ({}) ein.

Verwenden Sie diesen Parameter zum Vorbereiten der Sitzung, in der der Auftrag ausgeführt wird. Sie können damit beispielsweise Funktionen, Snap-Ins und Module zur Sitzung hinzufügen.

Typ:ScriptBlock
Position:1
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputObject

Gibt die Eingabe für den Befehl an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, der die Objekte generiert.

Verwenden Sie im Wert des ScriptBlock-Parameters die $input automatische Variable, um die Eingabeobjekte darzustellen.

Typ:PSObject
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren: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 Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.

Typ:String
Aliase:PSPath, LP
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Name

Gibt einen Anzeigenamen für den neuen Auftrag an. Sie können den Namen verwenden, um den Auftrag für andere Auftrags-Cmdlets zu identifizieren, z. B. das Stop-Job Cmdlet.

Der Standardmäßige Anzeigename ist Job#, wobei # es sich um eine Ordnungszahl handelt, die für jeden Auftrag erhöht wird.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-PSVersion

Gibt eine Version von PowerShell an, die für die Ausführung des Auftrags verwendet werden soll. Wenn der Wert von PSVersion 5.1 Lautet der Auftrag in einer Windows PowerShell 5.1-Sitzung ausgeführt wird. 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.

Typ:Version
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-RunAs32

Ab PowerShell 7 funktioniert der RunAs32-Parameter nicht auf 64-Bit-PowerShell (pwsh). Wenn RunAs32 in der 64-Bit-PowerShell angegeben ist, Start-Job löst ein Beendigungsfehler 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, wenn der Start-Job Befehl den RunAs32-Parameter enthält, nicht den Parameter "Credential " verwenden, um die Anmeldeinformationen eines anderen Benutzers anzugeben.

Typ:SwitchParameter
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ScriptBlock

Gibt die im Hintergrundauftrag auszuführenden Befehle an. Um einen Skriptblock zu erstellen, schließen Sie die Befehle in geschweifte geschweifte Klammern ({}) ein. Verwenden Sie die $input automatische Variable, um auf den Wert des InputObject-Parameters zuzugreifen. Dieser Parameter ist erforderlich.

Typ:ScriptBlock
Aliase:Command
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Type

Gibt den benutzerdefinierten Typ für Aufträge an, die von Start-Job. Geben Sie einen benutzerdefinierten Auftragstypnamen ein, wie z. B. „PSScheduledJob“ für geplante Aufträge oder „SWorkflowJob“für Workflowaufträge. Dieser Parameter ist nicht gültig für Standardhintergrundaufträge.

Dieser Parameter wurde in PowerShell 3.0 eingeführt.

Typ:String
Position:2
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WorkingDirectory

Gibt das anfängliche Arbeitsverzeichnis des Hintergrundauftrags an. Wenn der Parameter nicht angegeben ist, wird der Auftrag vom Standardspeicherort ausgeführt. Der Standardspeicherort ist das aktuelle Arbeitsverzeichnis des Aufrufers, der den Auftrag gestartet hat.

Dieser Parameter wurde in PowerShell 7 eingeführt.

Typ:String
Position:Named
Standardwert:$HOME on Unix (macOS, Linux) and $HOME\Documents on Windows
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

String

Sie können ein Objekt mit der Name-Eigenschaft an den Parameter Name an dieses Cmdlet weiterleiten. Sie können z. B. ein FileInfo-Objekt von Get-ChildItem.

Ausgaben

System.Management.Automation.PSRemotingJob

Dieses Cmdlet gibt ein PSRemotingJob -Objekt zurück, das den Auftrag darstellt, den er gestartet hat.

Hinweise

PowerShell enthält die folgenden Aliase für Start-Job:

  • Alle Plattformen:
    • sajb

Um im Hintergrund auszuführen, Start-Job wird in einer eigenen Sitzung in der aktuellen Sitzung ausgeführt. Wenn Sie das Invoke-Command Cmdlet verwenden, um einen Start-Job Befehl in einer Sitzung auf einem Remotecomputer auszuführen, Start-Job wird sie in einer Sitzung in der Remotesitzung ausgeführt.