Uruchamianie poleceń cmdlet programu Azure PowerShell w zadaniach programu PowerShell
Program Azure PowerShell zależy od nawiązywania połączenia z chmurą platformy Azure i oczekiwania na odpowiedzi, więc większość tych poleceń cmdlet blokuje sesję programu PowerShell do momentu uzyskania odpowiedzi z chmury. Zadania programu PowerShell umożliwiają uruchamianie poleceń cmdlet w tle lub wykonywanie wielu zadań na platformie Azure jednocześnie w ramach jednej sesji programu PowerShell.
Ten artykuł zawiera krótkie omówienie sposobu uruchamiania poleceń cmdlet programu Azure PowerShell jako zadań programu PowerShell i sprawdzania ukończenia. Uruchamianie poleceń w programie Azure PowerShell wymaga użycia kontekstów programu Azure PowerShell, które zostały szczegółowo omówione w kontekstach platformy Azure i poświadczeniach logowania. Aby dowiedzieć się więcej o zadaniach programu PowerShell, zobacz Informacje o zadaniach programu PowerShell.
Konteksty platformy Azure z zadaniami programu PowerShell
Zadania programu PowerShell są uruchamiane jako oddzielne procesy bez dołączonej sesji programu PowerShell, więc poświadczenia platformy Azure muszą być im udostępniane. Poświadczenia są przekazywane jako obiekty kontekstu platformy Azure przy użyciu jednej z następujących metod:
Automatyczna trwałość kontekstu. Domyślnie włączona jest funkcja zachowywania kontekstu, co umożliwia przechowywanie informacji logowania w wielu sesjach. Po włączeniu trwałości kontekstu bieżący kontekst platformy Azure jest przekazywany do nowego procesu:
Enable-AzContextAutosave # Enables context autosave if not already on $vmadmin = Get-Credential Start-Job { New-AzVM -Name MyVm -Credential $Using:vmadmin }
Podaj obiekt kontekstu platformy Azure za pomocą dowolnego polecenia cmdlet programu Azure PowerShell z parametrem AzContext:
$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 }
Jeśli trwałość kontekstu jest wyłączona, wymagany jest parametr AzContext.
Użyj parametru AsJob dostarczonego przez niektóre polecenia cmdlet programu Azure PowerShell. Ten przełącznik automatycznie uruchamia polecenie cmdlet jako zadanie programu PowerShell przy użyciu aktywnego kontekstu platformy Azure:
$vmadmin = Get-Credential $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJob
Aby sprawdzić, czy polecenie cmdlet obsługuje AsJob, zapoznaj się z dokumentacją referencyjną. Parametr AsJob nie wymaga włączenia automatycznego zapisywania kontekstu.
Stan uruchomionego zadania można sprawdzić za pomocą polecenia cmdlet Get-Job. Aby uzyskać dane wyjściowe z zadania do tej pory, użyj polecenia cmdlet Receive-Job.
Aby sprawdzić postęp operacji zdalnie na platformie Azure, użyj poleceń cmdlet Get
skojarzonych z typem zasobu modyfikowanego przez zadanie:
$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