![PowerShell 防火墙管理](https://linux22.com/image/636316/PowerShell%20%E9%98%B2%E7%81%AB%E5%A2%99%E7%AE%A1%E7%90%86.png)
我有一堆机器需要启用远程计划任务管理(RPC)、远程计划任务管理(RPC-EPMAP)和 Windows 管理规范(WMI-in)以进行 GPO 更新。
我想运行 PowerShell 脚本,这样就不必手动执行此操作。但是,我对 powershell 还不熟悉。
当我在机器上手动添加规则时,有没有办法可以获取 powershell 命令?
编辑:
这是我发现的一种方法:
netsh advfirewall firewall set rule group="Remote Administration" new enable=yes
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes
netsh advfirewall firewall set rule group="Remote Service Management" new enable=yes
netsh advfirewall firewall set rule group="Performance Logs and Alerts" new enable=yes
Netsh advfirewall firewall set rule group="Remote Event Log Management" new enable=yes
Netsh advfirewall firewall set rule group="Remote Scheduled Tasks Management" new enable=yes
netsh advfirewall firewall set rule group="Remote Volume Management" new enable=yes
netsh advfirewall firewall set rule group="Remote Desktop" new enable=yes
netsh advfirewall firewall set rule group="Windows Firewall Remote Management" new enable =yes
netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable =yes
但是我必须在每台机器上执行它。
由于某种原因,这个不起作用:
Enable-NetFirewallRule -DisplayGroup “Windows Remote Management”
答案1
在 Windows Server 2012 R2 Core 上工作,这对我有用:
Set-NetFirewallRule -DisplayGroup "File And Printer Sharing" -Enabled True
以下是检查是否成功的方法
Get-NetFirewallRule -DisplayGroup "File And Printer Sharing"
并找到“Enabled”中的值,它应该设置为TRUE。
您可以在这里找到更多信息和论据:
答案2
根据 Technet 上的这篇文章,仅适用于 Server 2012 或 Windows 8:http://technet.microsoft.com/en-us/library/hh831755.aspx
即使使用 Powershell 4.0,Windows 7 和 Server 2008 也需要 Netsh。