如果未启用服务器远程处理,请退出 PS1 脚本(Test-WsMan [计算机 IP])



客户端中的此 cmdlet 允许我检查服务器上是否启用了 Powershell 远程处理。在下面的示例中,结果显示它是:

PS C:WINDOWSsystem32> 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中获得真/假。在我的自动化脚本中,我想检查是否启用了远程处理,如果没有,请停止脚本并退出。

我希望我

的问题有意义,我希望有人比我聪明得多。

来自MSDN

如果测试的计算机正在运行该服务,则该 cmdlet 将显示 WS 管理标识架构、协议版本、产品供应商和测试服务的产品版本。

MSDN 没有明确说明它在不运行服务时会做什么,但我相信你可以把它当作一个真实的虚假。如果未返回任何内容,则无法正常工作。PowerShell非常擅长将表达式评估为布尔值。

if(test-wsman $computer -ErrorAction SilentlyContinue){
    # Remoting is enabled
} else {
    # Something is wrong. 
}

-ErrorAction SilentlyContinue将涵盖任何失败的原因,例如名称错误或无法联系。如果远程处理"不起作用",将由您决定该怎么做。

最新更新