使用PowerShell管理Windows防火墙 – PowerShell 中文博客

您所在的位置:网站首页 win7开启防火墙命令 使用PowerShell管理Windows防火墙 – PowerShell 中文博客

使用PowerShell管理Windows防火墙 – PowerShell 中文博客

2024-07-16 23:37| 来源: 网络整理| 查看: 265

本文目录

随着Windows Server 2012 和 Windows 8 的发布,当你使用NETSH 来管理防火墙时,会看到微软发布的警告消息:

In future versions of Windows, Microsoft might remove the Netsh functionality for Windows Firewall with Advanced Security(在未来的windows版本中,微软可能会移除Netsh功能,转而使用高级安全的Windows防火墙).

这听起来是我们学习使用PowerShell管理防火墙的一个很好的理由。幸运的是微软已经在PowerShell 3.0 中的防火墙管理中加入了欢迎提示。

NetSh welcome message

准备条件 Windows 2012 或者windows 8 + 访问机器的管理员权限 PowerShell必须运行在管理员权限下 相关命令

PowerShell 提供了下面的命令用来管理防火墙:

PS> Get-Command -Noun "*Firewall*" | Select -ExpandProperty Name Copy-NetFirewallRule Disable-NetFirewallRule Enable-NetFirewallRule Get-NetFirewallAddressFilter Get-NetFirewallApplicationFilter Get-NetFirewallInterfaceFilter Get-NetFirewallInterfaceTypeFilter Get-NetFirewallPortFilter Get-NetFirewallProfile Get-NetFirewallRule Get-NetFirewallSecurityFilter Get-NetFirewallServiceFilter Get-NetFirewallSetting New-NetFirewallRule Remove-NetFirewallRule Rename-NetFirewallRule Set-NetFirewallAddressFilter Set-NetFirewallApplicationFilter Set-NetFirewallInterfaceFilter Set-NetFirewallInterfaceTypeFilter Set-NetFirewallPortFilter Set-NetFirewallProfile Set-NetFirewallRule Set-NetFirewallSecurityFilter Set-NetFirewallServiceFilter Set-NetFirewallSetting Show-NetFirewallRule

像往常一样,输入get-help ,在后面跟上以上命令的名称,可以看到更多的帮助信息。

常见的例子

下面列出一些你可能希望PowerShell来做的常见的例子:

在域环境中启用防火墙 Set-NetFirewallProfile -Profile Domain -Enabled True

注意,-Enable参数不接受传统的$true,只接受True,显然还有另外一个选项False。其它可用的配置环境还有“Public”和“Private”

启用预制的组规则

一个Group是用于特定用途的规则集合,下面是Windows系统上附带的几个常用的组规则:

Set-NetFirewallRule -DisplayGroup "Remote Event Log Management" -Enabled True Set-NetFirewallRule -DisplayGroup "Windows Firewall Remote Management" -Enabled True Set-NetFirewallRule -DisplayGroup "Windows Management Instrumentation(WMI)" -Enabled True Set-NetFirewallRule -DisplayGroup "Remote Desktop" -Enabled True Set-NetFirewallRule -DisplayGroup "Windows Remote Management" -Enabled True Set-NetFirewallRule -DisplayGroup "Remote Administration" -Enabled True

查看所有的group,可以看下面的例子。

列出当前所有的Groups Get-NetFirewallRule |Select-Object DisplayGroup -Unique 添加一条规则 New-NetFirewallRule -DisplayName "Allow Inbound OpenVPN Client Requests" -Direction Inbound -LocalPort 1194 -Protocol UDP -Action Allow New-NetFirewallRule -DisplayName "Block Outbound itunes.exe" -Direction Outbound -Program "C:\Program Files\apple\itunes\itunes.exe" -Action Block 启用或者禁用存在的某条规则 Set-NetfirewallRule -DisplayName "Allow Inbound OpenVPN Client Requests" -Enabled True Set-NetfirewallRule -DisplayName "Allow Inbound OpenVPN Client Requests" -Enabled False 删除一条规则

这会永久的删除一条规则,如果你只是禁用一条规则,可以参考前面使用set-netfirewallrule的的例子。

Remove-NetfirewallRule -DisplayName "Allow Inbound OpenVPN Client Requests" 获取防火墙环境配置信息 Get-NetFirewallProfile -name Domain 远程管理规则

任意的命令都可以通过New-CimSession命令远程使用。假设你的防火墙已经启用了我们上面列出过的组规则“Windows Firewall Remote Management“(必要的)。

$TargetComputer=New-CIMSession -Computername MYCOMPUTER Set-NetFirewallRule -DisplayGroup "Remote Event Log Management" -Enabled True -CimSession $TargetComputer Windows Server 和 Windows 7怎么办?

不幸的是,上面命令只有在Windows Server 2012和Windows 8和更高版本中支持,即使你在其它旧版本的操作系统中安装了PowerShell 3.0,也不支持。如果你想在旧版本的操作系统上管理防火墙,不得不使用NETSH.

小提示

所以使用PowerShell 管理防火墙,这只是万里长征的第一步。本篇文章主要聚焦每次去管理一台机器的规则,你可能会想去研究通过组策略来控制规则。Windows Server 2012针对此类情况也介绍了一些非常实用的工具。(Open-NetGPO!)更多信息可以通过下面的链接回复互动。

深入阅读

Technet: Windows Firewall with Advanced Security Administration with Windows Powershell Let IT Know Blog: Manage Windows Firewall With Powershell 3 Microsoft etworking Blog: Deployment: Windows Firewall and Group Policy

原文作者:Toby Meyer

原文链接:Manage the Windows Firewall with Powershell

翻译:荔非苔

本文链接: https://www.pstips.net/manage-firewall-using-powershell.html请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

相关文章推荐: Set-WSManQuickConfig 错误:无法检查防火墙的状态 添加PowerShell远程防火墙规则


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3