我如何确定远程计算机的“网络发现”状态((启用|禁用)

时间:2019-06-09 14:19:40

标签: windows batch-file cmd windows-firewall

我知道我可以这样启用它:

netsh advfirewall防火墙设置规则组=“ Network Discovery” new enable =是

或这样禁用它:

netsh advfirewall firewall set rule group="Network Discovery" new enable=No

但是在我的情况下,这是重要的部分,我不想仅启用或禁用它,我只需要检查其状态(打开或关闭)即可。

我试图像这样在show rule中使用netsh

netsh advdirewall firewall show rule="all" | find "Network Discovery"

这向我显示了50包含名称Network Discovery的不同规则,例如Network Discovery (Pub WSD-Out)Network Discovery (WSD Evebts-Out)。使用上述set rule group="Network Discovery"时,所有这些都将更改。因此,我不知道这些50规则中的哪一个是当前正在使用的规则,因此无法看到如何使用show rule来检查其当前状态。

如果我可以找到一种检查当前使用的规则名称的方法,则可以使用netsh show rule

有没有办法找到那个?或一些更好的方法来检查Network DiscoveryFile and Printer Sharing是打开还是关闭。

1 个答案:

答案 0 :(得分:0)

一个简单的选择是直接通过PowerShell-或通过从CMD调用的PowerShell,您可以运行:

Get-NetFirewallRule -DisplayGroup "File and Printer Sharing"

Get-NetFirewallRule -DisplayGroup "Network Discovery"

然后,您可以使用PowerShell cmdlet和输出过滤来搜索您要查找的内容。例如:

Get-NetFirewallRule -DisplayGroup "Network Discovery" -Enabled True -Action Allow -Direction Inbound

要从CMD运行命令,您可以执行以下操作:

powershell -command "Get-NetFirewallRule -DisplayGroup 'Network Discovery' -Enabled True -Action Allow -Direction Inbound"

此外,也可以在serverfault.com

上询问类似的服务器管理问题,以供将来参考。