函数在PowerShell中返回布尔值

Kiq*_*net 3 powershell boolean function return-value

我使用PS Remoting,Powershell 2.0.

我需要调用返回布尔值的函数($ true或$ false).

我的功能:

Function TryDisableClientForCredSSP()
{
    try 
    {
        WriteTrace "[TryDisableClientForCredSSP]. Disable-WSManCredSSP -Role Client "
        $script=Convert-StringToScriptBlock("Disable-WSManCredSSP -Role Client ")
        Caller($script)

        WriteTrace "[TryDisableClientForCredSSP]. winrm get winrm/config/client/auth [($env:COMPUTERNAME)]"
        $script=Convert-StringToScriptBlock("winrm get winrm/config/client/auth")
        Caller($script);

        return $true;
    }
    catch 
    {
        Write-Verbose "[TryDisableClientForCredSSP] Error "
        Write-Verbose $_
        Write-Host $_.Exception.Message`r`n
        return $false;
    }   
}
Run Code Online (Sandbox Code Playgroud)

注意:WriteTrace函数只做Write-Host.

我用它:

    $ok = TryDisableClientForCredSSP;
    WriteTrace   "[TryDisableClientForCredSSP]. $ok"
    if ($ok -eq $true)
    {
        WriteTrace "[TryDisableClientForCredSSP]. OK true"
    }
    else
    {
        WriteTrace "[TryDisableClientForCredSSP]. KO false"
    }
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

[TryDisableClientForCredSSP]. Auth     Basic = true     Digest = true     Kerberos = true     Negotiate = true     Certificate = true     CredSSP = false  True
[TryDisableClientForCredSSP]. OK true
Run Code Online (Sandbox Code Playgroud)

我希望这行输出"[TryDisableClientForCredSSP].True"

 WriteTrace   "[TryDisableClientForCredSSP]. $ok"
Run Code Online (Sandbox Code Playgroud)

有什么建议 ?

Kei*_*ill 7

函数返回每个命令吐出到输出流的任何内容.尝试消除这样的输出:

    [void]WriteTrace "[TryDisableClientForCredSSP]. Disable-WSManCredSSP -Role Client "
    $script=Convert-StringToScriptBlock("Disable-WSManCredSSP -Role Client ")
    [void]Caller($script)

    [void]WriteTrace "[TryDisableClientForCredSSP]. winrm get winrm/config/client/auth [($env:COMPUTERNAME)]"
    $script=Convert-StringToScriptBlock("winrm get winrm/config/client/auth")
    [void]Caller($script);

    return $true;
Run Code Online (Sandbox Code Playgroud)

  • 有三种方式:[void] ...,... | Out-Null和...> $ null.而已. (3认同)