我正在尝试将Invoke-AzVMRunCommand用作作业。当我在下面的脚本中执行该作业时,就可以成功创建并执行该作业,但是我无法编写输出,例如哪个作业结果属于哪个虚拟机。
答案 0 :(得分:0)
Invoke-AzVMRunCommand用于在特定VM上调用命令。您应该事先拥有此信息。
以下是有关-AsJob
参数的一些信息
答案 1 :(得分:0)
如AmanGarg-MSFT所建议,您应该事先掌握该信息。您可以使用哈希表$ Jobs存储服务器名称和Invoke-AzVMRunCommand输出,然后使用$ Jobs.GetEnumerator()进行迭代。
$Jobs = @{}
$Servers = "Server01","Server02"
[System.String]$ScriptBlock = {Get-Process}
$FileName = "RunScript.ps1"
Out-File -FilePath $FileName -InputObject $ScriptBlock -NoNewline
$Servers | ForEach-Object {
$vm = Get-AzVM -Name $_
$Jobs.Add($_,(Invoke-AzVMRunCommand -ResourceGroupName $vm.ResourceGroupName -Name $_ -CommandId 'RunPowerShellScript' -ScriptPath $FileName -AsJob))
}