繁体   English   中英

抑制来自 ForEach-Object -Parallel -AsJob 的加载模块“”消息

[英]Suppress Loaded Module '' message from ForEach-Object -Parallel -AsJob

我正在尝试对多个 azure VM 运行命令。 我正在使用下面的代码。

[System.String]$ScriptBlock = {Get-Process}
$Context = Get-AzContext
$ForEachJobs += Get-AzVM | Where-Object {$_.Name -match 'alc2sgscli'} | 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 从作业中接收 output 时。 我低于 output。 有没有办法抑制Loaded Module ''消息。

Subscription ServerName Output
------------ ---------- ------
   ******      ****      Microsoft.Azure.Commands.Compute.Automation.Models.PSRunCommandResult
Loaded Module 'Az.Accounts'
Loaded Module 'Az.Compute'

我们已经在我们的本地环境中测试了上述共享的 Powershell 脚本,该脚本使用 Powershell 内核(v7.2)运行。

运行上述脚本后,我们将获得 output 字段Subscription、ServerName、Output仅如下所示:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM