小编Gil*_*tes的帖子

Powershell:如何将结果添加到数组(ForEach-Object -Parallel)

我知道,通过参数,$using:foo我可以在 Powershell 7 及更高版本中运行时使用来自不同运行空间的变量ForEach-Object -Parallel

但是如何将结果添加回变量呢?通用参数+=$using:不会起作用。

例如:

$AllSubs = Get-AzSubscription
$Date = (Get-Date).AddDays(-2).ToString("yyyy-MM-dd")
$Costs = @()

$AllSubs | Sort-Object -Property Name | ForEach-Object -Parallel {
    Set-AzContext $_.Name | Out-Null
    Write-Output "Fetching Costs from '$($_.Name)' ..."
    $using:Costs += Get-AzConsumptionUsageDetail -StartDate $using:Date -EndDate $using:Date -IncludeAdditionalProperties -IncludeMeterDetails -ErrorAction SilentlyContinue
}
Run Code Online (Sandbox Code Playgroud)

输出:

The assignment expression is not valid. The input to an assignment operator must be an object that is
     | able to accept assignments, such …
Run Code Online (Sandbox Code Playgroud)

powershell

8
推荐指数
1
解决办法
4804
查看次数

Powershell:如何将布尔值传递给函数参数?

我在 Powershell 中创建了一个函数,并希望将参数-Foo作为布尔值传递。

我已经简化了我的可视化用例:

function Get-Foobar {

    [CmdletBinding()]
    param (
        [bool]$Foo
    )

    if ($Foo) {
        Write-Host "Foo!"
    }
    else {
        Write-Host "Bar!"
    }
}
Run Code Online (Sandbox Code Playgroud)

当我调用函数时,该函数按预期工作Get-Foobar -Foo $true。但这不是我想要的。只是Get-Foobar -Foo应该足够了。

参考文档,在调用函数时指定参数应该已经返回true。但显然这行不通。

powershell

2
推荐指数
1
解决办法
164
查看次数

Powershell:为该命令多次定义了具有该名称的参数

知道如何让 Switch 使用 Powershell 运行吗?

myscript.ps1 -Debug
Run Code Online (Sandbox Code Playgroud)

为该命令多次定义了名为“Debug”的参数。

我的脚本

    [CmdletBinding()]
    Param (
        [switch]$Debug
    )
    
    if ($Debug) {
     Start-Transcript -Path "Debug.log" -Append -Force
}
Run Code Online (Sandbox Code Playgroud)

powershell

1
推荐指数
1
解决办法
2430
查看次数

Powershell:如何捕获“*不存在用户”?

我正在使用 Powershell 和命令query user来获取当前连接的用户:

$Users = query user

if ($Users) {
    return $true }
else {
    return $false}
Run Code Online (Sandbox Code Playgroud)

这将工作正常,因为登录用户当前已连接:

在此输入图像描述

但如果没有用户连接,我会收到预期的False+意外的错误:No User exists for *

在此输入图像描述

我怎样才能抑制错误?

$ErrorActionPreference= 'SilentlyContinue'$Users = query user -ErrorAction SilentlyContinue将不起作用,因为 query.exe 不接受 powershell 参数。

powershell

0
推荐指数
1
解决办法
4519
查看次数

标签 统计

powershell ×4