「為什麼要禁用或關閉Windows防火牆?」
有很多理由可以禁用Windows防火牆。當然,並非每個理由都是合理的,但也有合法的理由。
在本文中,您將學習到多種禁用Windows防火牆的方法。無論您是在單機環境、家庭網絡還是企業環境中,本文都適用於您。
您將學習如何以各種方式關閉Windows的軟體防火牆!
- 使用Windows防火牆管理控制台
- 命令行(cmd.exe)
- PowerShell
- 群組策略
- 即使您在Azure虛擬機上,也可以使用Azure自定義腳本擴展
讓我們開始吧!
前提條件
由於本文是一個實作指南,您需要遵循一些要求來跟隨說明。一些示例涉及域和非域環境。
非域環境
- 一台或多台運行Windows 10的計算機。您可以在一台計算機上進行這裡的示例,但某些操作是特定於遠程操作的。
- 並且您必須對這些Windows 10計算機擁有管理員權限。
域環境
- A Windows 2019 server that is also a domain controller. A Windows 2016 server should also work.
- 一個或多個在同一網絡上並加入域的Windows 10計算機。
使用圖形用戶界面(GUI)
可能是最快的方法是使用Windows中提供的GUI工具来禁用防火墙。对于家庭用户来说,使用GUI可能是关闭Windows防火墙最简单的方法。
使用Windows安全应用
第一个GUI工具是Windows安全应用。Windows安全应用适用于Windows 10版本1703及更高版本。
- 通过单击开始按钮并开始键入Windows安全来启动Windows安全应用。搜索结果将显示Windows安全应用,点击打开。

2.在Windows安全应用主页上,您将看到不同的菜单项。查找防火墙和网络保护并点击打开。

3.在防火墙和网络保护页面上,您应该看到列出的不同网络配置文件。这些网络配置文件包括域网络、私有网络和公共网络。您可以单独为每个网络连接位置关闭防火墙。在本示例中,您需要选择私有网络配置文件。

4.在本示例中,选择了私有网络配置文件。进入私有网络设置后,点击开关以关闭Windows Defender防火墙。

如果需要,可以为其他网络配置文件重复相同的步骤。
使用Windows Defender防火墙控制面板禁用Windows防火墙
另一个GUI工具是Windows Defender防火墙控制面板。与具有Windows 10应用程序现代界面的Windows Security应用程序相反,Windows Defender防火墙控制面板采用了经典控制面板项目的外观。
以下是启动Windows Defender防火墙控制面板
的几种方法。方法1:转到“控制面板 -> 系统和安全 -> Windows Defender防火墙”。

方法2:打开开始菜单,键入windows defender firewall。单击Windows Defender防火墙链接。

方法3:打开运行对话框,键入命令control firewall.cpl
,然后单击确定

。Windows Defender防火墙控制面板中,您应该看到熟悉的网络配置文件列表;域网络、私有网络和访客或公共网络。在左侧,单击打开或关闭Windows Defender链接。

在“自定义设置”页面上,您可以选择为每个网络配置文件禁用Windows防火墙。在下面的示例中,Windows防火墙在所有网络配置文件上都已关闭。

使用命令行
正如您可能已经了解的那样,Windows中的大多数GUI操作都有对应的命令行操作。使用命令行有时比使用GUI选项在不同的窗口位置之间切换更快。
此外,命令行选项使用户能够编写脚本或自动化任务。
使用NETSH命令关闭Windows防火墙
一种旧但有用的实用程序称为netsh
,可用于管理计算机上的网络配置,或者在这种情况下,禁用Windows防火墙。
使用netsh advfirewall set
c,您可以在每个位置或所有网络配置文件上分别禁用Windows防火墙。
netsh advfirewall set currentprofile state off
– 此命令将禁用当前活动或连接的网络配置文件的防火墙。例如,假设当前活动的网络配置文件是域网络,则此命令将禁用该网络配置文件的防火墙。netsh advfirewall set domainprofile state off
– 仅在域网络配置文件上禁用。netsh advfirewall set privateprofile state off
– 仅在私有网络配置文件上禁用。netsh advfirewall set publicprofile state off
– 此命令将仅在公共网络配置文件上禁用。netsh advfirewall set allprofiles state off
– 此命令将同时禁用所有网络配置文件。
以下演示显示了上述每个命令的操作。

了解更多关于Netsh命令语法、上下文和格式设置
使用Set-NetFirewallProfile
PowerShell Cmdlet
NetSecurity PowerShell模組內建於Windows 10,以及Windows Server 2012及以上版本。這個NetSecurity PowerShell模組包含與網路和網路安全配置相關的cmdlets。其中一個cmdlet是Set-NetFirewallProfile
,可用於禁用Windows防火牆。
以下是Set-NetFirewallProfile
的語法。
下面的指令將關閉公用、私人和網域網路配置的防火牆。
以下示範顯示了如何使用上述指令Set-NetFirewallProfile
來禁用Windows防火牆。

如果不指定任何配置名稱,以下示例顯示了如何使用-All
參數開關在所有網路配置上禁用Windows防火牆。

使用PowerShell遠程關閉Windows防火牆
當您需要在多台計算機上禁用防火牆時,手動登錄每台計算機並運行指令將非常低效。特別是在網路環境中,您可以使用PowerShell遠程禁用防火牆。
注意:此程序要求目标计算机上已经启用了WinRM。在大多数情况下,域加入计算机已经设置好了WinRM以进行远程管理。
了解更多: 如何启用Windows远程Shell
如果您计划逐个禁用一个远程计算机上的Windows防火墙,您可以使用Enter-PsSession
cmdlet向远程计算机发出命令。
在下面的示例中,命令将从名为dc的服务器发出,远程计算机名称为desktop1。将使用的命令如下所示。
在PowerShell中运行上述代码将产生类似的输出,如下面的演示所示。

上述过程仅适用于少量远程计算机。但是,如果您需要禁用多个计算机上的防火墙,您将需要一种更适合脚本编写的方法。为此,您可以使用Invoke-Command
cmdlet。
从上面的代码中可以看出,远程计算机的名称存储在$computers
变量中作为一个数组。然后,PowerShell循环遍历每个远程计算机,运行Invoke-Command
cmdlet并发出Set-NetFirewallProfile -All -Enabled False
命令。请参考下面的演示以了解预期结果。

使用组策略
透過部署群組原則 (GPO),系統管理員可以關閉域中選定或所有電腦的 Windows 防火牆。一旦部署完成,禁用 Windows 防火牆將自動進行配置,通過原則對所有涵蓋範圍內的電腦進行強制執行。
創建 GPO
要創建 GPO,您需要在伺服器上啟動「群組原則管理」控制台。為此,在執行對話框中執行「gpmc.msc」命令。

gpmc.msc
command in the Run dialog在「群組原則管理」控制台中,展開森林,然後選擇要創建 GPO 的域。在下面的圖像中,GPO 是在「xyz.int」域中創建的。右鍵單擊域,然後點擊「在此域中創建 GPO 並連結」。

將彈出「新 GPO」對話框。在「名稱」框中輸入「關閉 Windows 防火牆」,然後點擊「確定」按鈕。

接下來,右鍵單擊新 GPO,然後點擊「編輯」。GPO 將在「群組原則管理編輯器」中打開。然後,展開這些文件夾「電腦配置 -> 原則 -> 管理範本 -> 網絡 -> 網絡連接 -> Windows Defender -> 防火牆 -> 域配置文件」。
在右窗格的設置清單中,雙擊「Windows Defender 防火牆:保護所有網絡連接」以打開其屬性。

一旦設置屬性打開,通過選擇「禁用」來更改值,然後點擊「確定」。

重複並將相同的選項應用於標準配置文件設定。然後,您現在可以退出群組策略管理編輯器窗口。
將GPO部署到所有域計算機
現在,您已經創建了GPO,現在需要將GPO部署到域計算機。
要應用GPO,在群組策略管理中,選擇禁用Windows防火牆 GPO。然後,在範圍選項卡中,在安全篩選部分下,點擊添加按鈕。

在選擇用戶、計算機或組對話框中,搜索域計算機並點擊確定。這樣可以確保GPO應用於屬於域計算機組的所有計算機。

就是這樣!下次客戶計算機收到策略更新時,防火牆將在這些計算機上關閉。
現在GPO已經創建並部署,您可以通過強制執行策略更新來測試GPO是否正常工作。在客戶計算機上運行gpupdate /force
以測試策略更新。

從上面的結果可以看出,一旦策略應用在客戶計算機上,禁用Windows防火牆的配置就會應用。此外,還有一個信息框顯示設定由系統管理員管理。

注意:普通用户和计算机的组策略自动更新间隔为每90分钟。此外,当计算机启动或用户登录时,组策略也会更新。
使用自定义脚本扩展在Azure虚拟机上禁用Windows防火墙
如果您有一台Azure虚拟机,由于Windows防火墙阻止流量(包括RDP),您突然无法访问该虚拟机。也许您对Windows防火墙进行了更改,无意中将自己锁在外面!
如果您已经尝试过之前在本文中讨论的所有方式,但仍然没有运气,还是有希望的。您可以通过使用Azure自定义脚本扩展在Azure虚拟机的Guest OS中禁用Windows防火墙。
高级步骤包括:
- 创建一个包含禁用Windows防火墙命令的PowerShell脚本(*.PS1)。
- 使用Azure门户在Azure虚拟机上安装自定义脚本扩展。
- 将PowerShell脚本上传到Azure存储。
- 脚本将自动在Azure虚拟机的Guest OS上运行一次。
在這個例子中,測試虛擬機的名稱為devmachine1,並且Windows防火牆處於啟用狀態。
注意:在繼續之前,請確保您的帳戶具有適當的Azure RBAC角色。
創建Disable-Windows-Firewall.ps1
腳本
在前幾節中,您已經學會了如何禁用Windows防火牆的命令。在這個例子中,將使用netsh
工具。
使用您選擇的程式碼或文本編輯器,創建一個名為Disable-Windows-Firewall.ps1的新檔案。編輯腳本,並添加以下程式碼:netsh advfirewall set allprofiles state off
。完成後保存腳本。以下是在PowerShell中快速完成此操作的方法。
安裝自訂腳本擴展並上傳PowerShell腳本
現在,您的腳本已經準備就緒,下一步是安裝自訂腳本擴展並將腳本上傳到Azure Storage位置。一旦安裝了擴展,腳本將自動運行在Azure虛擬機上。
- 首先,登錄到Azure Portal,找到Azure虛擬機資源並打開它。在這個例子中,Azure虛擬機的名稱是devmachine1。然後,前往擴展選項卡並點擊新增按鈕。
- 在新資源頁面上,找到並點擊自訂指令擴展。然後,點擊建立。在安裝擴展頁面上,點擊瀏覽按鈕旁邊的指令檔案(必填)方塊。
- 從列表中選擇儲存體帳戶。在此示例中,儲存體帳戶名稱為storagexyz01。然後會顯示一個容器列表;點擊要上傳指令檔案的容器。在此示例中,容器名稱為cont1。
注意: 如果您還沒有 Azure 儲存體帳戶或容器,並且需要創建一個,請訪問創建 Azure 儲存體帳戶以了解如何創建。
- 選擇容器後,點擊上傳並瀏覽您在計算機上創建的disable-windows-firewall.ps1 檔案。選擇檔案後,點擊上傳按鈕。
- 您應該可以看到disable-windows-firewall.ps1檔案現在在容器內可用。從列表中點擊disable-windows-firewall.ps1,然後點擊選擇。您將返回到安裝擴展頁面,並且必須點擊確定以最終開始安裝擴展。
此時,您只需要等待擴展部署,它還會自動執行您上傳的指令檔案。請參考下面的示範,看整個過程的實際操作。

總結
在本文中,您學習了如何使用Windows內建的GUI工具來禁用Windows防火牆。您還學習了如何使用netsh
和PowerShell命令在本地或遠程禁用Windows防火牆。
此外,您還學習了如何創建和部署一個群組策略對象,以禁用域計算機上的Windows防火牆。最後,您還學習了如何使用Azure自定義腳本擴展在Azure虛擬機的客戶操作系統中禁用Windows防火牆。
當然,禁用Windows防火牆還有很多不同的方法。本文介紹了其中一些方法。然而,您仍然可以自行探索其他方法,例如使用PsExec遠程禁用它。
進一步閱讀
Source:
https://adamtheautomator.com/disable-windows-firewall/