Windows 11中可通过三种脚本方式实现文件夹AES加密:一、7-Zip批处理(AES-256+文件名加密);二、PowerShell调用EFS(需专业版/NTFS,含证书备份);三、Python+pyminizip(轻量ZIP加密,不加密文件名)。

如果您希望在Windows 11中通过脚本方式对文件夹执行AES加密,但系统原生不支持直接运行加密脚本操作,则需借助第三方命令行工具实现自动化。以下是基于7-Zip命令行版(支持AES-256)的批处理加密方案,无需图形界面干预,可一键压缩并加密指定文件夹。
一、使用7-Zip命令行+批处理实现AES加密
该方法利用7-Zip自带的7z.exe命令行工具,调用AES-256算法对目标文件夹打包加密,生成独立的、带密码保护的7z归档,适用于定时任务、批量处理或无人值守场景。脚本执行后原始文件夹保持不变,需手动清理以确保安全。
1、下载并安装7-Zip官方命令行版本(7z2409-x64.exe),安装时勾选“安装命令行版本”选项,确保7z.exe位于系统PATH路径(如C:\Program Files\7-Zip\)。
2、新建一个文本文件,重命名为encrypt_folder.bat,用记事本打开,粘贴以下内容:
@echo off setlocal enabledelayedexpansion if "%~1"=="" (echo 错误:请拖放文件夹到此脚本上,或在命令行中指定路径 & pause & exit /b) set "FOLDER=%~1" :set "ARCHIVE=%~dpn1.7z" :prompt set /p "PASS=请输入加密密码:" :echo 正在加密 "%FOLDER%" ... "C:\Program Files\7-Zip\7z.exe" a -t7z -p"%PASS%" -mhe=on -mx=9 "!ARCHIVE!" "!FOLDER!\*" >nul 2>&1 if errorlevel 1 (echo 加密失败,请检查路径或权限 & pause & exit /b) :echo 加密完成:%ARCHIVE% :pause
3、保存文件,确保编码为ANSI或UTF-8无BOM格式(推荐使用记事本另存为时选择“ANSI”)。
4、将需加密的文件夹直接拖拽至该批处理文件图标上,松开鼠标后脚本自动读取路径并提示输入密码。
5、输入至少8位含大小写字母、数字及符号的强密码,回车确认,脚本将启动7z执行压缩与AES-256加密,并启用-mhe=on参数加密文件名结构。
6、加密完成后,脚本显示归档路径;如需彻底保护,请手动删除原始文件夹并清空回收站。
二、PowerShell脚本调用7-Zip并自动备份证书(EFS增强版)
该方案结合EFS加密与证书导出逻辑,通过PowerShell脚本统一完成文件夹EFS加密、证书自动备份至指定U盘路径、并记录日志。适用于企业环境中需合规留存解密凭证的场景,要求当前系统为Win11专业版及以上且磁盘为NTFS格式。
1、以管理员身份运行PowerShell(右键开始菜单 → “Windows Terminal(管理员)”)。
2、执行以下命令启用执行策略(仅本次会话有效):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
3、新建文件EFS_Encrypt.ps1,粘贴如下内容:
$Folder = Read-Host "请输入要加密的完整文件夹路径(例如:C:\Sensitive)" if (!(Test-Path $Folder -PathType Container)) { Write-Error "路径不存在或非文件夹"; exit } icacls "$Folder" /grant:r "$env:USERNAME:(OI)(CI)F" /T /Q > $null cipher /e /i /q /h "$Folder" | Out-Null Write-Host "EFS加密已完成。正在备份证书..." -ForegroundColor Green $CertPath = "$env:USERPROFILE\Desktop\EFS_Cert_Backup.pfx" $Pass = Read-Host -AsSecureString "请输入证书导出密码" $PlainPass = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Pass)) certutil -exportPFX -user my "$env:USERNAME" "$CertPath" "$PlainPass" > $null 2>&1 if (Test-Path $CertPath) { Write-Host "证书已导出至:$CertPath" -ForegroundColor Green } else { Write-Warning "证书导出失败,请手动使用certmgr.msc导出" }
4、在PowerShell中执行:& ".\EFS_Encrypt.ps1",按提示输入目标路径与证书密码。
5、脚本将自动设置文件夹ACL权限、启用EFS加密,并尝试导出当前用户的EFS证书为受密码保护的.pfx文件至桌面。
6、导出的.pfx文件必须保存至离线介质(如U盘),重装系统后若丢失该文件,加密数据将永久不可恢复。
三、免安装轻量级Python脚本(需预置Python环境)
该方法使用Python标准库zipfile配合第三方pyminizip模块实现AES-256压缩加密,不依赖7-Zip安装,适合已部署Python 3.9+环境的自动化服务器或开发终端,生成的zip文件兼容主流解压工具(需支持AES)。
1、确保已安装Python 3.9或更高版本,在命令提示符中运行:python --version验证。
2、安装加密模块:pip install pyminizip。
3、新建文件encrypt_with_python.py,写入以下代码:
import pyminizip import os import sys if len(sys.argv) != 4: print("用法:python encrypt_with_python.py ") sys.exit(1) src_folder = sys.argv[1] output_zip = sys.argv[2] password = sys.argv[3] if not os.path.isdir(src_folder): print("错误:源路径不是有效文件夹") sys.exit(1) try: pyminizip.compress_multiple([src_folder], ["./"], output_zip, password, 5) print(f"✅ 加密完成:{output_zip}") except Exception as e: print(f"❌ 加密失败:{str(e)}")
4、在命令提示符中执行:python encrypt_with_python.py "C:\MyData" "C:\MyData.7z" "MySecret2026!"。
5、脚本将递归压缩整个文件夹,采用AES-256加密并嵌入密码,输出为单个加密ZIP文件。
6、注意:pyminizip生成的ZIP默认不加密文件名,如需隐藏目录结构,必须改用7z格式——此时应切换回方案一。










