我对 Windows 10 显示其防火墙状态的方式感到有点不舒服。我正在尝试审核我的 Windows 10 和 Server 2016 设备以获取以下信息:
- Windows 防火墙是否已启用?[不起作用]
- 3 个配置文件都已启用吗?[正在运行]
- 是否启用了第三方防火墙?[正在运行]
从这个屏幕看来,好像一切都已启用并且运行正常: 健康的 FW 概况
然而,当我上升一级时,我看到的是这样的讯息(点击“开启”没有任何反应): 由于 BitDefender 而禁用 WF
如果我检查此处三个配置文件的注册表项,我可以看到它们都已启用:"HKLM:\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy"
但它们实际上并未“启用”,因为 Windows 防火墙已被禁用。
此小片段检测设备上的第三方防火墙:
$firewalls= @(Get-WmiObject -Namespace $securityCenterNS -class FirewallProduct -ErrorAction Stop)
if($firewalls.Count -eq 0){
Write-Output "No third party firewall installed."
}else{
$firewalls | Foreach-Object {
[int]$productState=$_.ProductState
$hexString=[System.Convert]::toString($productState,16).padleft(6,'0')
$provider=$hexString.substring(0,2)
$realTimeProtec=$hexString.substring(2,2)
$definition=$hexString.substring(4,2)
"Product Name : {0}." -f $_.displayName
"Service Type : {0}." -f $SecurityProvider[[String]$provider]
"State : {0}.`n`n" -f $RealTimeBehavior[[String]$realTimeProtec]
}
}
<# OUTPUT:
Product Name : Bitdefender Firewall
Service Type : AntiVirus
State : ON
#>
问题: 我如何知道 Windows 防火墙(不仅仅是其配置文件)是真正启用还是禁用的?我需要在注册表中找到特定值吗?下面是否有一个命令行可以快速告诉我防火墙是否真正启用?
答案1
这Windows 防火墙作为服务安装到操作系统上。要知道它是全局启用还是禁用,您需要确认其状态是“正在运行”还是“已停止”。
电源外壳
$FWService = (Get-Service | ?{$_.Name -eq "mpssvc"});
$FWService | %{
If($_.Status -eq "Running"){
Write-Host "The $($_.DisplayName) service is running." -Foregroundcolor Green
}Else{
Write-Host "The $($_.DisplayName) service is stopped." -Foregroundcolor Red
}
};
此外,根据Windows 防火墙配置文件据称…
Windows 防火墙提供三种防火墙配置文件:域、私有和公共。域配置文件适用于主机系统可以向域控制器进行身份验证的网络。私有配置文件是用户分配的配置文件,用于指定私有或家庭网络。最后,默认配置文件是公共配置文件,用于指定公共网络,例如咖啡店、机场和其他地点的 Wi-Fi 热点。
因此,这意味着 Windows 防火墙也可以在这三个配置文件级别禁用或启用,因此要确认它在这里是启用还是禁用,您需要检查这些配置文件的状态。
电源外壳
$FWProfiles = (Get-NetFirewallProfile);
Write-Host "Windows Firewall Profile Statuses" -Foregroundcolor Yellow;
$FWProfiles | %{
If($_.Enabled -eq 1){
Write-Host "The Windows Firewall $($_.Name) profile is enabled" -Foregroundcolor Green
}Else{
Write-Host "The Windows Firewall $($_.Name) profile is disabled" -Foregroundcolor Red
}
};