You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell调用本地组策略阻断TCP端口445、139?

错误原因说明
  • Open-NetGPO 是专门用于操作域内存储在活动目录中的组策略对象的cmdlet,不支持直接访问本地组策略存储,传入计算机名、本地策略路径都会触发参数错误
  • Open-NetGPOGroup 不属于Windows官方NetSecurity模块的合法cmdlet,属于无效命令
  • 本地组策略中的防火墙规则有专用的存储路径,无需调用NetGPO相关接口即可操作
可行解决方案

方案1:单台设备配置本地组策略防火墙规则

直接指定本地组策略的防火墙存储路径localhost\GP即可写入规则,无需创建GPO会话,需以管理员权限运行PowerShell:

New-NetFirewallRule -PolicyStore localhost\GP `
  -DisplayName "阻断出站TCP 445、139端口" `
  -Direction Outbound `
  -Protocol TCP `
  -LocalPort 445,139 `
  -Action Block `
  -Profile Domain,Private,Public `
  -Enabled True

执行完成后运行gpupdate /force刷新组策略即可生效,可手动打开本地组策略编辑器确认规则是否存在。

方案2:域内批量部署(域控侧操作)

如果需要给多台域内设备统一配置,可直接在域控上操作目标域GPO,无需逐台设备操作,需以域管理员权限在域控上运行:

# 替换尖括号内容为实际的域名、目标GPO名称
$gpoSession = Open-NetGPO -PolicyStore "<你的域名>\<目标GPO名称>"
New-NetFirewallRule -GPOSession $gpoSession `
  -DisplayName "阻断出站TCP 445、139端口" `
  -Direction Outbound `
  -Protocol TCP `
  -LocalPort 445,139 `
  -Action Block `
  -Profile Domain,Private,Public `
  -Enabled True
# 保存GPO修改
Save-NetGPO -GPOSession $gpoSession

将该GPO关联到对应的OU后,域内设备刷新组策略即可自动应用规则。

配置验证

执行以下命令可检查本地组策略中的规则是否配置正确:

Get-NetFirewallRule -PolicyStore localhost\GP -DisplayName "阻断出站TCP 445、139端口" | Select-Object DisplayName,Direction,Action,Enabled

内容的提问来源于stack exchange,提问作者Tanya H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:45:02