SQL Server Agent无法运行含克罗地亚语字符的SSIS作业求助
解决SSIS执行进程任务(EPT)访问含克罗地亚语特殊字符共享路径失败的问题
针对你遇到的SQL Server Agent作业运行SSIS包时,执行进程任务通过cmd.exe执行NET USE命令访问含Ž、Č、Š字符的共享路径失败的问题,以下是几种无需重命名文件夹的解决方案:
1. 完善执行进程任务的编码与区域配置
仅设置LocaleId为克罗地亚语不够,需补充匹配的代码页设置:
- 打开执行进程任务编辑器,切换到进程选项卡
- 在代码页字段输入
1250(对应Windows-1250编码,克罗地亚语系统默认编码) - 确保
LocaleId设置为1050(克罗地亚语对应的Locale ID)
2. 用Unicode编码的批处理文件传递命令
直接在EPT参数中输入带特殊字符的路径易出现编码丢失,建议将命令封装为Unicode格式的批处理文件:
- 创建
.bat文件,写入命令:NET USE W: "\\fs.i.local\kom\Komb\Službenici\korisničke maštarije" /user:--REDACTED-- --REDACTED-- - 保存时选择编码:Unicode(Windows系统默认的UTF-16 LE格式)
- 在EPT中配置:
- 可执行文件:
cmd.exe - 参数:
/c "C:\脚本存放路径\映射共享盘.bat"
- 可执行文件:
3. 调整SQL Server Agent执行环境的编码设置
SQL Server Agent作业的运行账户区域设置会影响命令的编码解析:
- 打开SQL Server Agent作业步骤属性,切换到高级选项卡
- 取消勾选“使用默认编码”,指定代码页为
1250 - 检查SQL Server服务启动账户的系统区域设置,将其改为克罗地亚语(控制面板→区域→管理→更改系统区域设置)
4. 改用PowerShell替代cmd执行映射操作
PowerShell对Unicode字符支持更完善,可替换EPT的命令为PowerShell脚本:
- 在EPT中配置:
- 可执行文件:
powershell.exe - 参数:
-Command "New-PSDrive -Name W -PSProvider FileSystem -Root '\\fs.i.local\kom\Komb\Službenici\korisničke maštarije' -Credential (New-Object System.Management.Automation.PSCredential('--REDACTED--', (ConvertTo-SecureString '--REDACTED--' -AsPlainText -Force)))"
- 可执行文件:
- 注意:明文密码存在安全风险,建议使用SQL Server代理凭据或Windows凭据存储管理认证信息
验证步骤
先通过runas /user:SQLAgent运行账户 cmd切换到对应环境,手动执行NET USE命令,确认是否能成功映射,以此排除权限问题,聚焦编码适配。
内容的提问来源于stack exchange,提问作者Sob_Iv
相关产品推荐
相关产品推荐

