我实现了一个切换类型参数$noCommit
,用于定义$debugmode
。
这一切都在我的计算机(带有PowerShell 5.0的Windows 8.1)和我测试的Azure VM(带有PowerShell 5.1的Windows Server 2016数据中心)上运行良好。
然而,当我部署到客户端的主机(我相信带有PowerShell 5.x的Windows Server 2012 R2)时,无论-noCommit
是否包含在内,它都无法正常工作且cmdlet保持调试模式
知道问题可能是什么? PowerShell只是没有正确解释参数,noCommit或debugMode是一些保留字也在别处定义覆盖我的定义或什么?我想我可以很容易地改变到不同的参数类型,但是切换应该可以工作。
function Get-UsersToCreateBySecurityGroup
{
[CmdletBinding()]
Param
(
[switch]$noCommit
)
Begin {
if ($noCommit){
$debugMode = $true
}
else{
$debugMode = $false
}
答案 0 :(得分:0)
感谢大家的建议,由于各种原因需要一段时间才能在客户主机上进行测试。无论如何使用$ noCommit.IsPresent而不是$ noCommit使其工作。