我在任务计划程序中有一个任务,运行驻留在本地硬盘上的批处理文件。
批处理文件只是运行 XCopy 将文件从映射驱动器复制到本地驱动器上的文件夹。
当从命令行运行批处理文件时,它运行完美。
从任务计划程序运行时,XCopy 命令显示错误:
Invalid drive specification
如果重要的话,该驱动器就是 NAS,并且使用来自 NAS 的本地凭据映射到计算机(网络中没有活动目录)。
答案1
我以前尝试备份到映射的 NAS 时就见过这种情况。我不知道为什么,但它需要“提醒”才能记住 X: 驱动器已映射到 \myserver\myfolder。
手动地,可以通过访问目标文件夹来解决这个问题。一旦你“触摸”X:,Windows 就会“记住”它在那里。以编程方式(即从批处理中),你可以尝试访问映射文件夹,或者甚至可以net
在 XCopy 命令之前在批处理中重新映射它(使用命令)。
答案2
这个答案来得很晚,但我找到了另一种方法来解决这个问题。这似乎是由从计划任务(即使Run with highest privileges
已选择)运行时的不同上下文引起的,而不是从提升的提示符运行时的不同上下文引起的。
配置
EnableLinkedConnections
注册表值。此值允许Windows Vista and Windows 7
在管理员组成员的筛选访问令牌和完整管理员访问令牌之间共享网络连接。配置此注册表值后,如果网络资源映射到访问令牌,LSA 将检查是否有另一个与当前用户会话关联的访问令牌。如果 LSA 确定存在链接的访问令牌,它会将网络共享添加到链接的位置。
- 开始注册表编辑器
- 找到并右键单击注册表子项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System。
- 指向“新建”,然后单击“DWORD 值”。
- 类型启用链接连接,然后按 ENTER。
- 右键点击启用链接连接,然后单击“修改”。
- 在数值数据框中,键入 1,然后单击确定。
- 退出注册表编辑器,然后重新启动计算机。
参考是这里。