返回
轻松启用 Windows Defender 高级网络访问设置,提升应用程序安全性
windows
2024-03-17 11:34:12
使用 PowerShell 轻松启用 Windows Defender 中的高级网络访问设置
在网络安全的世界里,管理应用程序对不同网络的访问至关重要。Windows Defender 提供了高级设置,允许你自定义应用程序在公共和专用网络上的通信方式。然而,手动配置这些设置可能会很繁琐。使用 PowerShell,你可以自动化此过程,为你节省时间和精力。
准备工作
在开始之前,你需要确保:
- 具有管理员权限。
- 安装了最新版本的 Windows Defender。
- 导入必要的 PowerShell 模块:
Import-Module NetSecurity
获取应用程序列表
首先,使用 Get-AppxPackage
命令获取已安装应用程序的列表:
$apps = Get-AppxPackage | Where-Object {$_.PublisherId -ne "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"}
此命令将返回一个应用程序对象的数组,其中排除 Microsoft 应用程序。
创建防火墙规则
接下来,为每个应用程序创建入站和出站防火墙规则,允许其在公共和专用网络上进行通信:
foreach ($app in $apps) {
$ruleName = "$($app.Name) Inbound"
New-NetFirewallRule -Name $ruleName -DisplayName "$($app.Name) Inbound Rule" -Direction Inbound -Profile Any -Action Allow -Program "$($app.InstallLocation)\$($app.MainApplication)"
$ruleName = "$($app.Name) Outbound"
New-NetFirewallRule -Name $ruleName -DisplayName "$($app.Name) Outbound Rule" -Direction Outbound -Profile Any -Action Allow -Program "$($app.InstallLocation)\$($app.MainApplication)"
}
验证规则
使用 Get-NetFirewallRule
命令验证是否创建了防火墙规则:
Get-NetFirewallRule -Name * | Where-Object {$_.Program -match ".*$($app.MainApplication)"}
启用高级设置
最后,启用应用程序的“公共”和“专用”网络访问高级设置:
foreach ($app in $apps) {
Set-NetFirewallProfile -Name "Public" -Enabled True -DisplayName "$($app.Name) Public Network Access" -AllowInbound "$($app.Name) Inbound" -AllowOutbound "$($app.Name) Outbound"
Set-NetFirewallProfile -Name "Private" -Enabled True -DisplayName "$($app.Name) Private Network Access" -AllowInbound "$($app.Name) Inbound" -AllowOutbound "$($app.Name) Outbound"
}
验证设置
转到“Windows 设置”>“更新和安全”>“Windows 安全中心”>“防火墙和网络保护”,查看每个应用程序的“公共”和“专用”网络访问设置是否已启用。
常见问题解答
- 问:我可以选择性启用应用程序的网络访问吗?
- 答: 是的,你可以使用
-Enabled False
参数来禁用特定应用程序的设置。
- 答: 是的,你可以使用
- 问:如果应用程序的安装位置或主应用程序名称发生更改怎么办?
- 答: 你需要手动更新相应的防火墙规则。
- 问:此脚本是否会覆盖现有防火墙规则?
- 答: 不会,它只会创建新的规则。
- 问:我可以在不同类型的网络上设置不同的访问设置吗?
- 答: 是的,你可以使用
-Profile
参数指定特定的网络配置文件。
- 答: 是的,你可以使用
- 问:是否存在一种方法可以批量启用或禁用所有应用程序的设置?
- 答: 是的,你可以使用
Get-NetFirewallProfile
和Set-NetFirewallProfile
命令来批量管理设置。
- 答: 是的,你可以使用
结论
使用 PowerShell 启用高级网络访问设置是一种高效且方便的方式,可以增强应用程序的安全性,同时确保它们能够在不同网络环境中正常运行。通过遵循这些步骤,你可以轻松自动化此过程,节省大量时间和精力。