Udostępnij przez


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 About PowerShell Jobs (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. Trwałość kontekstu jest domyślnie włączona i zachowuje informacje 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, które ma parametr 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 usługę 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 Get poleceń cmdlet 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

Zobacz też