【问题标题】:Suppress Loaded Module '' message from ForEach-Object -Parallel -AsJob抑制来自 ForEach-Object -Parallel -AsJob 的加载模块“”消息
【发布时间】: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


    【解决方案1】:

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

    运行上述脚本后,我们得到的输出只有 Subscription、ServerName、Output 字段,如下所示:

    【讨论】:

    • 这很奇怪。它只发生在 VS Code 内的 PowerShell 集成控制台
    猜你喜欢
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 2017-01-04
    • 2017-07-06
    • 2018-01-28
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    相关资源
    最近更新 更多