PowerShell [switch]参数在一台主机上无法正常工作

时间:2018-01-19 14:20:38

标签: powershell

我实现了一个切换类型参数$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
        }

1 个答案:

答案 0 :(得分:0)

感谢大家的建议,由于各种原因需要一段时间才能在客户主机上进行测试。无论如何使用$ noCommit.IsPresent而不是$ noCommit使其工作。