微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从WMIC检查ReturnValue

如何解决如何从WMIC检查ReturnValue

我正在设置一个简单的批处理文件,以在MS sql Express服务器上配置一些内容。配置项之一是启用TCP / IP协议。我已经将其与以下命令配合使用:

WMIC /NAMESPACE:\\root\Microsoft\sqlServer\ComputerManagement15 PATH ServerNetworkProtocol Where ProtocolName='Tcp' CALL SetEnable

现在我要检查它是否有效。如果可以,我得到输出

Executing (\\PCNAME\root\Microsoft\sqlServer\ComputerManagement15:ServerNetworkProtocol.InstanceName="sqlEXPRESS",ProtocolName="Tcp")->SetEnable()
Method execution successful.
Out Parameters:
instance of __ParaMETERS
{
        ReturnValue = 0;
};

为此,我必须以管理员身份运行批处理文件。如果没有,我将得到输出

Executing (\\PCNAME\root\Microsoft\sqlServer\ComputerManagement15:ServerNetworkProtocol.InstanceName="sqlEXPRESS",ProtocolName="Tcp")->SetEnable()
Method execution successful.
Out Parameters:
instance of __ParaMETERS
{
        ReturnValue = 2147942405;
};

唯一的区别是ReturnValue。如何检查返回值,例如根据返回值是否为0或其他值回显“成功”或“失败”?

我也愿意通过使用另一个wmic命令来检查是否启用了TCP / IP来解决该问题,但是我一直没有找到解决方法

解决方法

您可以尝试:

for /F "tokens=2 delims==; " %R in ('wmic /NameSpace:\\root\Microsoft\SqlServer\ComputerManagement15 path ServerNetworkProtocol where ProtocolName='Tcp' call SetEnable ^| findstr /RC:"\<ReturnValue ="') do @echo/%R

提取ReturnValue的值,或者,如果您只想将其与零进行比较:

wmic /NameSpace:\\root\Microsoft\SqlServer\ComputerManagement15 path ServerNetworkProtocol where ProtocolName='Tcp' call SetEnable | findstr /RC:"\<ReturnValue = 0;\>" && (echo zero) || (echo non-zero)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。