我使用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;
}
}
注意:WriteTrace函数只执行Write-Host。
我用它:
$ok = TryDisableClientForCredSSP;
WriteTrace "[TryDisableClientForCredSSP]. $ok"
if ($ok -eq $true)
{
WriteTrace "[TryDisableClientForCredSSP]. OK true"
}
else
{
WriteTrace "[TryDisableClientForCredSSP]. KO false"
}
我得到了这个输出:
[TryDisableClientForCredSSP]. Auth Basic = true Digest = true Kerberos = true Negotiate = true Certificate = true CredSSP = false True
[TryDisableClientForCredSSP]. OK true
我希望此行输出“[TryDisableClientForCredSSP]。True”
WriteTrace "[TryDisableClientForCredSSP]. $ok"
有什么建议吗?
答案 0 :(得分: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;