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)
有什么建议 ?
函数返回每个命令吐出到输出流的任何内容.尝试消除这样的输出:
[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)