来自客户端的此cmdlet允许我检查是否在服务器上启用了使用Powershell进行远程处理。在下面的示例中,结果表明它是:
PS C:\WINDOWS\system32> Test-WsMan xxx.104.50.xxx
wsmid : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor : Microsoft Corporation
ProductVersion : OS: 0.0.0 SP: 0.0 Stack: 3.0
但是,我不知道如何通过运行Test-WsMan获得真/假。 在我的自动化脚本中,我想检查是否启用了远程处理,如果没有,则停止脚本并退出。
我希望我的问题有道理,我希望有人比我更聪明。
答案 0 :(得分:2)
来自MSDN
如果测试的计算机正在运行该服务,则cmdlet将显示WS-Management标识架构,协议版本,产品供应商以及测试服务的产品版本。
MSDN没有明确说明它在没有运行服务时的作用,但我相信你可以把它视为一个真正的虚假。如果没有返回任何内容则无效。 PowerShell非常擅长将表达式评估为布尔值。
if(test-wsman $computer -ErrorAction SilentlyContinue){
# Remoting is enabled
} else {
# Something is wrong.
}
-ErrorAction SilentlyContinue
将涵盖任何失败的原因,例如名称错误或无法联系。如果远程处理“无法正常工作”,您可以自行决定如何处理。