Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure PowerShell depende de conectarse a una nube de Azure y esperar respuestas, por lo que la mayoría de estos cmdlets bloquean la sesión de PowerShell hasta que obtienen una respuesta de la nube. Los trabajos de PowerShell le permiten ejecutar cmdlets en segundo plano o realizar varias tareas en Azure a la vez, desde dentro de una única sesión de PowerShell.
Este artículo es una breve introducción a cómo ejecutar Azure PowerShell cmdlets como trabajos de PowerShell y comprobar la finalización. La ejecución de comandos en Azure PowerShell requiere el uso de contextos de Azure PowerShell, que se tratan en detalle en Azure contextos e credenciales de inicio de sesión. Para más información sobre los trabajos de PowerShell, consulte Acerca de los trabajos de PowerShell.
Contextos de Azure en trabajos de PowerShell
Los trabajos de PowerShell se ejecutan como procesos independientes sin una sesión de PowerShell asociada, por lo que las credenciales de Azure deben compartirse con ellos. Las credenciales se pasan como Azure objetos de contexto mediante uno de estos métodos:
Persistencia automática del contexto. La persistencia del contexto está habilitada de forma predeterminada y conserva la información de inicio de sesión en varias sesiones. Con la persistencia de contexto habilitada, el contexto de Azure actual se pasa al nuevo proceso:
Enable-AzContextAutosave # Enables context autosave if not already on $vmadmin = Get-Credential Start-Job { New-AzVM -Name MyVm -Credential $Using:vmadmin }Proporcione un objeto de contexto Azure con cualquier cmdlet de Azure PowerShell que tenga un parámetro 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 }Si la persistencia del contexto está deshabilitada, se requiere el parámetro AzContext .
Use el parámetro AsJob proporcionado por algunos cmdlets de Azure PowerShell. Este modificador inicia automáticamente el cmdlet como una tarea de PowerShell utilizando el contexto activo de Azure:
$vmadmin = Get-Credential $job = New-AzVM -Name MyVm -Credential $vmadmin -AsJobPara ver si un cmdlet admite AsJob, consulte su documentación de referencia. El parámetro AsJob no requiere que se habilite el autoguardado de contexto.
Puede comprobar el estado de un trabajo en ejecución con el cmdlet Get-Job . Para obtener la salida de un trabajo hasta el momento, use el cmdlet Receive-Job.
Para comprobar el progreso de una operación de forma remota en Azure, use los cmdlets de Get asociados con el tipo de recurso que el trabajo está modificando.
$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