You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何将变量作为函数参数传入?

PowerShell动态参数名传入解决方案

你遇到的“找不到接受参数的位置参数”错误,根源是PowerShell无法直接识别-$CustomAtt这种动态拼接的参数名写法。要实现动态传递参数名,必须用**参数展开(Splatting)**机制。

修正步骤

  1. 先构建包含动态参数的哈希表,将参数名(变量拼接结果)作为键,参数值作为对应的值
  2. 使用@符号展开哈希表,作为Set-Mailbox的参数

修正后的代码

$Var = Read-host "enter Attribute number"
$CustomAtt = "CustomAttribute$Var"

# 构建动态参数哈希表
$setMailboxParams = @{
    $CustomAtt = "TestTest"
}

Get-Mailbox -Identity $Email | Set-Mailbox @setMailboxParams

补充说明

如果需要同时传递其他固定参数,也可以直接添加到哈希表中,比如:

$setMailboxParams = @{
    Identity = $Email
    $CustomAtt = "TestTest"
}
# 此时无需管道,直接执行
Set-Mailbox @setMailboxParams

内容的提问来源于stack exchange,提问作者Kaby26

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 23:48:15