我正在尝试使用 Invoke-AzVMRunCommand 作为工作。当我在脚本下面执行时,作业已成功创建并执行,但我无法编写输出,例如哪个作业结果属于哪个 vm。
2 回答
0
Invoke-AzVMRunCommand 用于在特定 VM 上调用命令。您应该事先获得此信息。
这是有关-AsJob参数的一些信息
于 2019-09-16T13:13:20.813 回答
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))
}
于 2020-10-09T06:49:53.607 回答