如果您使用 Powershell 模块NetSecurity使用 eg 命令对 GPO Windows 防火墙规则进行任何修改New-NetFirewallRule
,或者Set-NetFirewallRule
更改不会立即应用。我只能通过随后在 MMC GUI 中进行任何更改(这似乎是重新加载它)或重新启动计算机来做到这一点。
也许可以使用 Windows 防火墙 API FwPolicy2或旧版 cmdline 工具,netsh
但如果可能的话,我更愿意使用 NetSecurity 模块来完成?
重新加载 GPO 防火墙规则的一种方法是(当然)进行简单的 GPO 更新:
从 Windows 控制台:
Powershell:
一直在查看 win32 [高级安全 Windows 防火墙][1] API,我找不到有关如何定位 GPO 防火墙的任何信息,所以我猜它只能用于标准 Windows 防火墙。
但是,如果您从 MMC 控制台对 GPO 防火墙进行任何更改,更改将立即生效。我想知道是否有 Win32 调用来执行此操作,或者 MMC 控制台是否真的在后台
gpupdate
,这让我很惊讶。powershell 命令
Invoke-GPUpdate
位于GroupPolicy
远程服务器管理工具 (RSAT) 中包含的模块中。但是在我的测试电脑上运行此语句时出现错误
The security ID structure is invalid.
,但它没有加入域,也许这就是原因。