【发布时间】:2022-01-01 06:24:54
【问题描述】:
我正在尝试针对多个 azure VM 运行命令。我正在使用下面的代码。
[System.String]$ScriptBlock = {Get-Process}
$Context = Get-AzContext
$ForEachJobs += Get-AzVM | Where-Object {$_.Name -match 'servername'} | ForEach-Object -Parallel {
$FileName = "RunScript_" + (Get-Random) + ".ps1"
Out-File -FilePath $FileName -InputObject $using:ScriptBlock -NoNewline
$Output = Invoke-AzVMRunCommand -Name $_.Name -ResourceGroupName $_.ResourceGroupName -CommandId 'RunPowerShellScript' -ScriptPath $FileName -ErrorAction Stop
Remove-Item -Path $FileName -Force -ErrorAction SilentlyContinue
$PSCustomObject = [PSCustomObject]@{Subscription=$using:Context.Subscription.Name;ServerName=$_.Name;Output=$Output}
Write-Output $PSCustomObject
} -ThrottleLimit 100 -AsJob
当我尝试使用 Receive-Job -Id 从作业接收输出时。我得到低于输出。有没有办法抑制 Loaded Module '' 消息。
Subscription ServerName Output
------------ ---------- ------
****** **** Microsoft.Azure.Commands.Compute.Automation.Models.PSRunCommandResult
Loaded Module 'Az.Accounts'
Loaded Module 'Az.Compute'
【问题讨论】:
标签: azure powershell visual-studio-code