如何在PowerShell哈希表中添加-Confirm:$false参数
解决方案
1. 哈希表加核心参数
PowerShell 用哈希表飞溅(Splatting)传递开关参数的布尔值时,直接在$arguments哈希表中添加Confirm键,对应值为$false即可,实际执行 cmdlet 时会自动识别为-Confirm:$false参数:
$arguments = @{ Identity = $identity DomainController = $domaincontroller Archive = "" Confirm = $false # 新增这一行即可 }
修改后执行& $cmdlet @arguments 2>&1时,实际生效的参数就已经包含-Confirm:$false,功能可正常运行。
2. (可选)修正$command_args拼接逻辑
你当前写的遍历拼接$command_args的代码,默认会把布尔值拼接成-Confirm False,和你期望的-Confirm:$false格式不一致,如果需要这个拼接出来的字符串和实际执行命令格式对齐,可以修改遍历逻辑:
$arguments.keys | ForEach-Object{ $value = $arguments[$_] if ($value -is [bool]) { $message = '-{0}:${1} ' -f $_, $value.ToString().ToLower() } else { $message = '-{0} {1} ' -f $_, $value } $command_args += $message }
修改后$command_args输出的内容就会和你期望的命令格式完全一致。
内容的提问来源于stack exchange,提问作者insane_IT
相关产品推荐
相关产品推荐

