SQL Server计划作业执行XCOPY时出现“无效驱动器指定”错误求助
解决SQL Server计划作业中XCOPY报“Invalid drive specification”的问题
核心原因
手动执行命令时用的是当前登录用户的会话,映射的Z盘属于该用户专属;而SQL Server代理服务默认以Local System等系统账号运行,这个账号无法识别你手动映射的Z盘,且大概率没有访问目标服务器共享目录的权限,导致XCOPY找不到指定盘符。
可行解决方案
方案1:直接使用UNC路径(推荐)
放弃映射盘符,直接用目标服务器的UNC共享路径执行XCOPY,绕开用户会话隔离问题,命令修改为:
xcopy F:\BackupTest\*.bak \\SQL02\H$\BackupTest\ /s /d
方案2:在作业内完成盘符映射(需权限配置)
如果必须使用盘符映射,需在作业步骤内完整执行映射、复制、清理流程,同时确保权限合规:
- 将SQL Server代理服务的运行账号改为有目标共享访问权限的域账号,并给该账号分配本地F盘的读取权限、目标服务器
\\SQL02\H$共享的写入权限。 - 作业的CMD步骤中执行完整脚本:
# 映射盘符(若需指定账号密码,替换为实际域账号信息) net use Z: \\SQL02\H$ /user:你的域\你的账号 你的密码 # 执行复制 xcopy F:\BackupTest\*.bak Z:\BackupTest\ /s /d # 复制完成后删除映射,避免残留 net use Z: /delete
注意:不要硬编码密码在脚本中,建议通过SQL Server凭据存储账号密码,再在作业中调用。
方案3:排查权限与运行上下文
- 用SQL Server代理服务的运行账号登录服务器,手动执行脚本,验证是否能正常复制,以此排查权限或路径问题。
- 确保本地F盘对服务账号开放读取权限,目标共享目录对服务账号开放写入权限。
内容的提问来源于stack exchange,提问作者curious1
相关产品推荐
相关产品推荐

