-2

我正在尝试使用 Invoke-AzVMRunCommand 作为工作。当我在脚本下面执行时,作业已成功创建并执行,但我无法编写输出,例如哪个作业结果属于哪个 vm。

4

2 回答 2

0

Invoke-AzVMRunCommand 用于在特定 VM 上调用命令。您应该事先获得此信息。

这是有关-AsJob参数的一些信息

https://docs.microsoft.com/en-us/powershell/module/az.compute/invoke-azvmrunco​​mmand?view=azps-2.6.0#parameters

于 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 回答