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

如何将防火墙脚本右键菜单添加至Windows 11现代上下文菜单?

将PowerShell脚本添加到Windows 11现代上下文菜单

问题概述

已有一个自动阻止文件夹内EXE文件通过Windows防火墙的PowerShell脚本,已通过注册表添加到旧版右键菜单,现需将其加入Windows 11的新版现代上下文菜单,无需封装脚本为程序。

修正后的脚本(原脚本存在路径指向错误,已调整):

$currentdir = Get-Location
cd $currentdir

function FirewallBlock { 
    param ($exes)
    
    $exes | ForEach-Object { 
        New-NetFirewallRule -DisplayName "$($_.Name) inbound" -Direction Inbound -Action Block -Profile Any -Program $_.FullName
        New-NetFirewallRule -DisplayName "$($_.Name) outbound" -Direction Outbound -Action Block -Profile Any -Program $_.FullName
    }
}

$programs = Get-ChildItem -Recurse -Filter *.exe
FirewallBlock $programs

解决方案:通过注册表添加到现代菜单

Windows 11允许通过注册表将自定义命令直接添加到现代上下文菜单,无需开发UWP应用,步骤如下:

1. 配置文件夹空白处右键菜单

打开注册表编辑器(运行regedit),导航到:

HKEY_CLASSES_ROOT\Directory\Background\shell\Firewall
  • 设置该键的默认值为Firewall Block Programs(菜单显示名称)
  • 新建以下字符串值:
    • Icon(可选):设置菜单图标,例如%SystemRoot%\system32\FirewallControlPanel.exe
    • CommandStateHandler:值为Windows.CommandStateHandler
    • CommandStateSync:值为true
    • PackageFamilyName:值为Microsoft.Windows.FileExplorer_8wekyb3d8bbwe(文件资源管理器官方包名,用于关联现代菜单)

2. 设置执行命令

在Firewall键下创建command子键:

HKEY_CLASSES_ROOT\Directory\Background\shell\Firewall\command

设置该键的默认值为你的脚本启动命令(替换UserName为实际用户名):

powershell -command "Start-Process pwsh.exe -ArgumentList '-file C:\Users\UserName\OneDrive\Desktop\Firewall.ps1' -Verb runAs"

3. 可选:添加到文件夹本身右键菜单

若需要右键点击文件夹时也显示该选项,重复上述步骤,将注册表路径改为:

HKEY_CLASSES_ROOT\Directory\shell\Firewall

并配置对应的command子键。

生效方式

修改注册表后无需重启,右键点击文件夹空白处或文件夹,即可在现代上下文菜单中看到Firewall Block Programs选项(若未立即显示,可刷新资源管理器或重启explorer进程)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:40:29