batch-file - 任务计划程序 - 在运行未登录的任务时访问非本地驱动器

标签 batch-file scheduled-tasks scheduler drive

我在 win 调度程序中有一个任务,每分钟运行一次。该任务运行一个 .bat 文件,该文件 SVN 更新一系列文件夹,然后执行一个 perl 脚本(这反过来将运行其他几个)。 perl 脚本的输出/“日志”(按日期/时间标记)被发送到共享驱动器,而不是任务运行所在机器的本地。

整个任务完美无缺,直到将日志发送到共享驱动器。由于任务需要每分钟运行一次,我认为最好在任务计划程序中使用设置“无论用户是否登录都运行”。下面的框详细说明了“不要存储密码”。该任务将只能访问本地计算机资源。显然这对我不起作用,所以我没有选中它。

但是,即使登录,脚本仍然不会写入共享驱动器。有没有人对如何解决这个问题有任何建议?我还意识到我可以“仅在用户登录时运行”(这确实写入共享驱动器),但在这种情况下,我需要一种明确的方法来确保帐户永远不会注销,并且不能被其他人强制注销用户(计算机由多个用户共享,一次最多两个)。

想法?

最佳答案

phd443322已经给出了正确的答案。

根据 保存共享文件夹到驱动器号的映射。用户帐号 如果网络连接是使用默认设置进行的,则在 Windows 注册表中。因此,每个使用计算机的用户都可以拥有不同的网络驱动器。

有重新连接选项登录 将共享文件夹映射到默认选中的驱动器号。但在创建连接以将共享文件夹映射到仅用于当前用户 session 的驱动器号之前,可以取消选中此选项。
net use /?在命令提示符窗口中输入会输出此命令的帮助,该命令用于从命令行或批处理文件将共享文件夹映射到驱动器号。有选项/PERSISTENT:{YES | NO}其中默认值为 YES .例如

net use Z: \\computer\share /persistent:no

将共享文件夹连接为驱动器 Z:仅适用于当前用户 session 。

这解释了为什么 AMcNall在自动化任务中使用网络驱动器失败。

额外提示:

在使用连接到公司网络的办公室中使用的笔记本电脑,以及在私有(private)网络或没有网络的家中,最后还经常在其他网络中使用的笔记本电脑时,建议避免在登录后通过 Windows 自动连接网络驱动器我的观点。最好使用位于硬盘某处的批处理文件,该批处理文件的快捷方式存储在文件夹 中。启动 用户的 Windows 开始菜单的属性设置为以最小化窗口运行批处理文件。批处理文件包含例如:
@echo off
echo Checking availability of server/computer XXX
%SystemRoot%\system32\ping.exe -n 1 XXX >nul
if errorlevel 1 goto EndBatch
echo Map shared folder XXX\share to drive letter Z:
%SystemRoot%\system32\net.exe use Z: \\XXX\share /persistent:no
:EndBatch

关于batch-file - 任务计划程序 - 在运行未登录的任务时访问非本地驱动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24428597/

相关文章:

r - 删除临时目录后本地 Shiny 应用程序崩溃

ruby - Scheduler 插件每月在 Heroku 上占用多少小时?

python - Django 中的 Apscheduler Job 执行两次

windows - 使用批处理文件创建文件夹并将文件复制到其中到多台 PC

Spring 3.0 @Scheduled 注释未按预期工作

java - 每周运行一次计时器

heroku - 在 Golang 应用程序中使用 Heroku Scheduler 附加组件

windows - 开始命令更改的窗口标题

batch-file - 试图理解这段代码(批处理,CMD)

java - 该进程无法访问该文件,因为该文件正在被另一个进程使用