在预定作业(脚本)中将networking空间映射到Windows驱动器?

我需要映射到一个networking空间的映射驱动器,如S:一些其他的工作。 我的方框是Windows Server 2008.在Windows Server 2008中,我可以使用bat作业创build计划任务,并且可以指定它在Windows重新引导时运行,或者在没有指定用户的情况下login。 它像一个本地系统的服务。 蝙蝠包含networkingcmd映射驱动器:

net use S: \\netdrive1\space1 pwd /user:oneUser 

然后我重新启动盒子。 看起来计划的工作确实运行了。 我可以从任务计划程序作业的历史logging中检查。 但是,S:驱动器不能被映射。 如果我只是从命令行运行蝙蝠。 它工作正常。 看来我必须login框来制作映射的驱动器。 不知道是否有可能让Windows作为本地系统运行作业,当它重新启动,使驱动器可用?

在我的情况下,networking驱动器在Unix机器上。

正如我上面提到的,我在Windows本地系统下有一些其他依赖项计划作业。 因此,我不得不在任何用户login的情况下使networking空间可用。

映射的驱动器仅适用于交互式会话。 作为服务运行时,您不能映射驱动器,您需要使用UNCpath。

我面临类似的问题。 当我试图安排一个任务,并作为行动浏览脚本,映射驱动器甚至没有被显示。 我在浏览文件系统中的文件时打开的窗口中重新映射了驱动器。 之后,它为我工作得很好。

我遵循的步骤是:

  1. 打开任务计划程序

  2. 创build一个新的任务,所有的细节,触发器等需要。

  3. 转到操作 – >从下拉列表中select操作 – >单击“浏览”

(这打开了浏览窗口)

  1. 右键单击计算机 – >映射networking驱动器 – >映射所需的驱动器

  2. 将文件附加到作业

完成

干杯!!

你陷入了一个尴尬的境地……调度器正在以“pipe理员模式”执行你的bat文件,这并不真正影响用户模式环境。 我知道这听起来很奇怪,但我自己的testing表明,它可能是2个独立的用户环境。 你可能想尝试在用户configuration文件的启动文件夹中运行一个快速肮脏的vbs脚本…看看是否你想要的。

 set WshShell = WScript.CreateObject("WScript.Shell") Set objNetwork = CreateObject("WScript.Network") do while true objNetwork.MapNetworkDrive "S:", "\\netdrive1\space1", false, "oneUser", "pwd" WScript.Sleep(12000) loop 

如果驱动器没有得到未映射…当它尝试重新映射驱动器时,这会在下一个循环中抛出一个错误…除非你发现错误…或者做一个快速&脏

 On Error Resume Next 

在循环之前。

你可以根据需要调整睡眠时间…或者做一些更高级的时间/date检查机制……但这应该给你的想法。

net use S: \\netdrive1\space1 pwd /user:oneUser /persistent:yes

这可能会消除计划任务的需要,但我不确定是否会保持连接没有用户login。

你的应用程序中的UNCpath比映射驱动器好得多,所以如果可能的话,你应该这样做。

http://technet.microsoft.com/en-us/library/bb490717.aspx

编辑

这不是很优雅,但它可能工作(完全未经testing)

 NET USE \\netdrive1\space1 /USER:oneUser pwd && PUSHD \\netdrive1\space1 COPY C:\path\to\files\*.dat Z:\ POPD && NET USE \\netdrive1\space1 /DELETE 

尝试作为你的batch file。 发生什么事是NET USE根据共享validation用户,PUSHD自动将驱动器挂载到一个驱动器盘符(以相反的顺序,所以假设没有其他驱动器被挂载,在这种情况下没有,这将是Z :)。 复制文件,然后杀死连接到共享。 我不知道这是否会在没有交互式login会话的情况下工作,但值得一试。

你有没有考虑使用UNCpath,而不是试图映射驱动器号? 98%的案例使用\\ server \ share \,无论您身在何处,都不会造成任何问题。

我能够以我想要的用户身份运行我的计划任务,并且只使用NET USE Q: \\192.168.7.1\space作为运行的批处理脚本的第一行。

不幸的是,由于第三方库处理UNCpath的方式,我没有直接使用UNCpath的选项。