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.
Azure PowerShell hängt davon ab, eine Verbindung mit einer Azure-Cloud herzustellen und auf Antworten zu warten. Daher blockieren die meisten dieser Cmdlets Ihre PowerShell-Sitzung, bis sie eine Antwort aus der Cloud erhalten. Mithilfe von PowerShell-Aufträgen können Sie Cmdlets im Hintergrund ausführen oder mehrere Aufgaben in Azure gleichzeitig in einer einzigen PowerShell-Sitzung ausführen.
Dieser Artikel enthält eine kurze Übersicht darüber, wie Sie Azure PowerShell-Cmdlets als PowerShell-Aufträge ausführen und nach Abschluss suchen. Das Ausführen von Befehlen in Azure PowerShell erfordert die Verwendung von Azure PowerShell-Kontexten, die in Azure-Kontexten und Anmeldeinformationen ausführlich behandelt werden. Weitere Informationen zu PowerShell-Aufträgen finden Sie unter "Informationen zu PowerShell-Aufträgen".
Azure-Kontexte mit PowerShell-Aufträgen
PowerShell-Aufträge werden als separate Prozesse ohne angefügte PowerShell-Sitzung ausgeführt, sodass Ihre Azure-Anmeldeinformationen für sie freigegeben werden müssen. Anmeldeinformationen werden als Azure-Kontextobjekte mit einer der folgenden Methoden übergeben:
Automatische Kontextpersistenz. Die Kontextpersistenz ist standardmäßig aktiviert und behält Ihre Anmeldeinformationen in mehreren Sitzungen bei. Wenn die Kontextpersistenz aktiviert ist, wird der aktuelle Azure-Kontext an den neuen Prozess übergeben:
Enable-AzContextAutosave # Enables context autosave if not already on $vmadmin = Get-Credential Start-Job { New-AzVM -Name MyVm -Credential $Using:vmadmin }Stellen Sie ein Azure-Kontextobjekt mit jedem Azure PowerShell-Cmdlet bereit, das einen AzContext-Parameter aufweist:
$context = Get-AzContext -Name 'mycontext' # Get an Azure context object $vmadmin = Get-Credential $job = Start-Job { New-AzVM -Name MyVm -AzContext $Using:context -Credential $Using:vmadmin }Wenn die Kontextpersistenz deaktiviert ist, ist der AzContext-Parameter erforderlich.
Verwenden Sie den Von einigen Azure PowerShell-Cmdlets bereitgestellten AsJob-Parameter . Dieser Switch startet das Cmdlet automatisch als PowerShell-Auftrag unter Verwendung des aktiven Azure-Kontexts:
$vmadmin = Get-Credential $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJobWenn Sie sehen möchten, ob ein Cmdlet AsJob unterstützt, überprüfen Sie die Referenzdokumentation. Der AsJob-Parameter erfordert keine Aktivierung des kontextautonen Speicherns.
Sie können den Status eines ausgeführten Auftrags mit dem Cmdlet "Get-Job " überprüfen. Verwenden Sie das Cmdlet "Receive-Job ", um die Ausgabe aus einem Auftrag abzurufen.
Um den Fortschritt eines Vorgangs remote in Azure zu überprüfen, verwenden Sie die Get Cmdlets, die dem Typ der Ressource zugeordnet sind, die vom Auftrag geändert wird:
$vmadmin = Get-Credential
$context = Get-AzContext -Name 'mycontext'
$vmName = 'MyVm'
$job = Start-Job {
New-AzVM -Name $Using:vmName -AzContext $Using:context -Credential $Using:vmadmin
}
Get-Job -Id $job.Id
Get-AzVM -Name $vmName