ICACLS无法识别波兰语Unicode文件夹名,权限配置异常求助
解决ICACLS在System权限下识别波兰语Unicode字符的方案
核心问题
System权限会话的CMD默认代码页不支持波兰语Unicode字符,导致输入的特殊字符被转码乱码,ICACLS无法定位目录。以下是几种可行的解决方法:
1. 启动带UTF-8编码的System权限CMD
默认System会话的CMD代码页可能不是UTF-8,需要强制切换后再执行命令:
- 用PsExec工具(需下载Sysinternals套件)启动交互式System权限CMD并设置UTF-8:
打开新CMD后,再输入ICACLS命令即可正确识别波兰语字符。psexec -s -i cmd /c chcp 65001 && cmd - 或者通过任务计划创建System身份的CMD:
- 创建任务,运行身份选择「SYSTEM」,操作设置为启动
cmd.exe,参数填写/k chcp 65001,运行任务打开CMD即可。
- 创建任务,运行身份选择「SYSTEM」,操作设置为启动
2. 改用PowerShell执行ICACLS命令
PowerShell对Unicode字符的原生支持远优于CMD,不管是用户还是System权限都能正确解析波兰语特殊字符:
- 启动System权限的PowerShell:用PsExec执行
psexec -s -i powershell,或者通过任务计划创建SYSTEM身份的PowerShell任务。 - 直接在PowerShell中执行ICACLS命令:
icacls "D:\FolderRedir\IT\Stanisław Smólski" /grant "Domain Admins":F
3. 批量处理文件夹权限(可选)
如果需要批量给带Unicode字符的文件夹设置权限,用PowerShell脚本效率更高:
# 遍历目标目录下所有子文件夹,批量授予Domain Admins完全控制权限 $targetPath = "D:\FolderRedir" $folders = Get-ChildItem $targetPath -Directory -Recurse foreach ($folder in $folders) { icacls $folder.FullName /grant "Domain Admins":F /T /C }
将脚本保存为.ps1文件,在System权限的PowerShell中运行即可。
注意事项
- 确认CMD字体支持Unicode(如Consolas、Lucida Console),但核心解决还是编码页和运行环境的问题。
- 若使用任务计划,需勾选「不管用户是否登录都要运行」并选择最高权限。
内容的提问来源于stack exchange,提问作者Stanisław Smólski
相关产品推荐
相关产品推荐

