【问题标题】:Net use works in batch file, fails in script网络使用在批处理文件中工作,在脚本中失败
【发布时间】:2013-03-16 22:19:55
【问题描述】:

我们是一个小型办公室,在桌面上安装了 Linux 设备服务器 (SAMBA) 和 Win7HP。我们有一台机器充当“备份服务器”并每晚备份服务器。

将本应快速而肮脏的内容添加到将像这样循环的备份脚本中:

a. net use * /d /y
b. net use u: \\ourserver\userNN /u:userNN password
c. run sync util to sync u: to this user's storage space on backup server
d. repeat

如果我在批处理文件中手动创建上述内容,一切正常。 (但是,由于许多原因,该过程必须自动化并绑定到我们现有的备份脚本中。)

如果脚本创建了相同的批处理文件并运行它,第一个用户会登录并同步,但所有后续的net use 尝试都会失败。

同样,如果脚本尝试通过代码映射驱动器,则会收到此消息:

Unrecognised network error #183

上述错误表明网络驱动器/路径不可用 -- 但是使用相同参数在命令行键入的 net use 命令是成功的。

“备份服务器”是一个禁用了 UAC 的 Win7HP 机器。当启动 cmd 提示符时,所有窗口前面都有单词:Administrator: -- 但是,当脚本启动一个命令窗口以使用驱动器时,cmd 标题栏缺少该前缀。

有什么想法/想法吗?

【问题讨论】:

  • “程序必须自动化”。您是否曾经研究过计划流程? See Here。或Control Panel->System and Security->Administrative Tools->Task Scheduler
  • 对我来说听起来像是权限。当脚本创建并运行此批处理文件时,它以不同于 运行它时的用户身份运行,并且您可能在网络上拥有比它更多的权限。
  • 如果您使用任务调度程序运行,您必须确保任务在具有网络权限的帐户下运行,例如你。在默认本地系统计算机帐户下运行的任务将被锁定。

标签: windows-7 scripting batch-file


【解决方案1】:

为了让用户正确执行此代码,他们需要拥有正确的凭据才能执行此操作。同样要自动执行此任务,只需使用任务计划程序,它应该可以正常工作。

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多