在配置为 Windows XP 模式时,计划任务可以在映射驱动器上运行,但在 Windows 7 上则不行

在配置为 Windows XP 模式时,计划任务可以在映射驱动器上运行,但在 Windows 7 上则不行

有一台装有计划任务的 Windows 7 PC。它唯一要做的就是运行位于指向网络共享的映射驱动器上的 VBS 文件:

M:\Folder\Script.vbs

M:映射驱动器在哪里。

该任务设置为Run whether user is logged in or not,并且它已保存有权访问该文件夹的用户的凭据。

现在,如果我在下拉菜单中选择此项:

在此处输入图片描述

那么任务就成功了。但是如果我选择:

在此处输入图片描述

然后它就会失败并显示代码8007010B(据我理解,代码为“目录名称无效”)。无论是否有人登录,也无论触发任务的原因是什么(计划或Run手动执行任务的用户),它都会失败。如果我以任务应该运行的用户身份登录计算机并Run手动执行任务,它也会失败。

当我以运行任务的用户身份登录时,我可以访问映射驱动器,并且可以毫无问题地使用 Explorer 运行脚本。

显然,有一些兼容性垫片正在发挥作用,但是哪一个呢?当“配置为 Windows 7”时,我该怎么做才能使其工作,这应该是计算机的本机模式?

我会保持原样,但如果有人错误地将任务“升级”到 Windows 7 模式,则无法恢复:Windows XP 选项将从该任务的菜单中删除。要恢复它,需要将任务导出为 XML,删除它并重新导入。

答案1

当任务运行时,M:驱动器映射并不存在于运行任务的用户/会话的上下文中。

通过 UNC 引用网络位置,或者在执行其余工作之前修改任务的脚本以将 M:映射到路径。

答案2

@Ƭᴇcʜιᴇ007 是正确的。使用“无论用户是否登录都运行“使用系统会话并且看不到物理用户会话的驱动器。

另一个解决方案是创建另一个使用相同用户帐户并使用相同“无论用户是否登录都运行“选择。此任务将仅用于映射其他计划任务所依赖的所需驱动器。驱动器将保持在系统会话中的映射状态,并允许您的其他任务查看相同的映射驱动器。我触发此任务,每 5 分钟运行一个批处理文件来为系统用户映射驱动器。

Powershell 映射示例

if (-not (test-path E:)) {Log -Letter "E:"; Net Use E: \\server\share 'password' /user:user /persistent:yes /y}

简单批处理/Powershell 映射

Net Use E: \\server\share 'password' /user:user /persistent:yes /y

答案3

根据线程,您需要将相同的路径添加到“起始位置”框中。添加M:\Folder\到起始位置框中,它应该可以正常工作。

相关内容