Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
PowerShell-Cmdlets der Windows-Remoteverwaltung können BITS-Übertragungsaufträge (Background Intelligent Transfer Service) verwalten. Weitere Informationen zur BITS-Remoteverwaltung finden Sie unter BITS-Anbieter und BITS-Anbieterklassen.
In den folgenden Beispielen ist der BITS-Anbieter erforderlich. Der BITS-Anbieter ist verfügbar, nachdem der BITS Compact-Server installiert wurde. Informationen zum Installieren des Compact-Servers finden Sie in der Dokumentation zu BITS Compact Server .
Erstellen Sie einen BITS-Übertragungsauftrag.
# Get the credentials to connect to the remote client computer $cred = Get-Credential $result = Invoke-WsmanAction -Action CreateJob –Resourceuri wmi/root/microsoft/bits/BitsClientJob ` –Valueset @{DisplayName="TestJob"; RemoteUrl="https://Server01/servertestdir/testfile1.txt"; LocalFile="C:\clienttestdir\testfile1.txt";Type=0} ` –ComputerName Client1 -Credential $cred
Das Cmdlet Get-Credential fordert die Anmeldeinformationen des Benutzers an, um eine Verbindung mit dem Remotecomputer herzustellen, und weist die Anmeldeinformationen dem $cred-Objekt zu.
Das Cmdlet Invoke-WsmanAction erstellt den BITS-Übertragungsauftrag auf Client1, indem eine instance der BitsClientJob-Klasse erstellt und die Informationen in der Hashtabelle verwendet werden, die im Valueset-Parameter definiert ist. Der Valueset-Parameter gibt die Informationen an, die zum Auffüllen der Parameter der CreateJob-Methode erforderlich sind. Im vorherigen Beispiel legt der Benutzer den Type-Parameter auf 0 (Download) fest. Der Benutzer gibt auch den Namen der Remote- und der lokalen Dateien für den Downloadauftrag an. Weitere Informationen zum Erstellen von BITS-Übertragungsaufträgen und ausführliche Informationen zu Parametern finden Sie unter CreateJob-Methode .
Das Cmdlet Invoke-WsmanAction weist das Ergebnis der variablen $result zu.
Hinweis
Das Grave-Accent-Zeichen (') wird verwendet, um einen Zeilenumbruch anzugeben.
Legen Sie die Priorität des BITS-Übertragungsauftrags fest.
Set-WsmanInstance -ResourceURI wmi/root/microsoft/bits/BitsClientJob -SelectorSet @{JobId=$result.JobId} ` -ValueSet @{Priority=0} –ComputerName Client1 -Credential $cred
Das Cmdlet Set-WsmanInstance ändert die neue BITS-Übertragungsauftragspriorität in 0 (BG_JOB_PRIORITY_FOREGROUND). Weitere Informationen zu den Prioritätsstufen finden Sie in der BG_JOB_PRIORITY-Enumeration .
Setzen Sie den BITS-Übertragungsauftrag fort.
Invoke-WsmanAction -Action SetJobState -ResourceUri wmi/root/microsoft/bits/BitsClientJob -selectorset @{JobId=$result.JobId} ` -valueset @{JobState= 2} –ComputerName Client1 -Credential $cred
Das Cmdlet Invoke-WsmanAction ruft die SetJobState-Methode auf, die den Auftragsstatus auf 2 (Auftrag fortsetzen) festlegt.
Verwalten Sie den BITS-Übertragungsauftrag.
$IsPprocessing = $TRUE while ($IsPprocessing) { $result = Get-WsmanInstance -ResourceURI wmi/root/microsoft/bits/BitsClientJob -selectorset @{JobId = $result.JobId} ` –ComputerName Client1 -Credential $cred if ($result.State -eq 6) { #Complete the job Invoke-WsmanAction -action SetJobState -resourceuri wmi/root/microsoft/bits/BitsClientJob -selectorset @{JobId=$result.JobId} ` -valueset @{JobState= 1} –ComputerName Client1 -Credential $cred "Job Successfully Transferred" $IsPprocessing = $FALSE; } elseif (($result.State -eq 4) -or ($result.State -eq 5)) { #Cancel the job "Job is in Error " Invoke-WsmanAction -action SetJobState -resourceuri wmi/root/microsoft/bits/BitsClientJob -selectorset @{JobId=$result.JobId} ` -valueset @{JobState= 0} –ComputerName Client1 -Credential $cred # You can troubleshoot or delete the job $IsPprocessing = $FALSE; } else { "Job is processing\n" } # Perform other action or poll in a tight loop. This example sleeps for 5 seconds sleep 5 }
Das obige Beispiel ist ein Skript zum Abfragen der status des Auftrags und zum Ausführen einer Aktion basierend auf dem status. Die folgenden Aktionen sind möglich:
- Wenn $result. Status ist 4 (BG_JOB_STATE_ERROR), das Cmdlet Invoke-WsmanAction ruft die SetJobState-Methode auf und bricht den Auftrag ab.
- Wenn $result. Status ist 5 (BG_JOB_STATE_TRANSIENT_ERROR), das Cmdlet Invoke-WsmanAction ruft die SetJobState-Methode auf und bricht den Auftrag ab.
- Wenn $result. Status ist 6 (BG_JOB_STATE_TRANSFERRED), das Cmdlet Invoke-WsmanAction ruft die SetJobState-Methode auf und legt den Status auf abgeschlossen fest.
Weitere Informationen zu Auftragszuständen finden Sie in der BG_JOB_STATE-Enumeration .
Zugehörige Themen