V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SilentDepth
V2EX  ›  PowerShell

如何在 Windows 计划任务中让脚本可以访问网络驱动器?

  •  
  •   SilentDepth · 2015-11-18 17:15:05 +08:00 · 4611 次点击
    这是一个创建于 3325 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有一个映射的网络驱动器(比如 Z:),我需要在脚本访问上面的文件(比如 Z:\data.txt )。在用户登录时直接运行脚本没有问题,但放到计划任务中就不行了,经过测试发现计划任务执行的脚本根本就没有检测到 Z:(至少 Get-PSDrive 中没有)。 Google 了半天只找到一个利用 WScript 的方法,但一来会暴露账号密码,二来我根本就不知道密码……求解这事怎么办

    PS: 似乎是个由来已久的问题?
    第 1 条附言  ·  2015-11-18 18:00:25 +08:00
    各种测试后感觉 NAS 实际上是在的,只是计划任务的执行环境中看不到那个驱动器,也自然没有盘符。 net use 的结果显示驱动器存在,但状态是「不可用」(也不知道怎么才能让它可用)。
    7 条回复    2015-11-19 08:25:04 +08:00
    gamexg
        1
    gamexg  
       2015-11-18 17:45:16 +08:00
    还未挂载就执行了?
    尝试过指定账号吗?
    SilentDepth
        2
    SilentDepth  
    OP
       2015-11-18 17:59:58 +08:00
    @gamexg 各种测试后感觉 NAS 实际上是在的,只是计划任务的执行环境中看不到那个驱动器,也自然没有盘符。 net use 的结果显示驱动器存在,但状态是「不可用」(也不知道怎么才能让它可用)。
    「指定账号」是指什么?计划任务中指定了账号(但显然不是 NAS 的账号)。如果是说访问 NAS 时指定账号的话,也同时需要密码吧。因为是计划任务不能接受用户输入,况且我也不知道密码。
    venster
        3
    venster  
       2015-11-18 18:08:01 +08:00
    一定要用映射驱动器么?直接用网络路径应该就可以了
    SilentDepth
        4
    SilentDepth  
    OP
       2015-11-18 18:15:36 +08:00
    @venster 然而并不能。似乎计划任务访问网络资源的能力很有限。
    ```
    Get-ChildItem \\12.34.56.78\data
    ```
    如上代码的执行结果是「找不到路径……因为该路径不存在」。然而不通过计划任务是没问题的。
    venster
        5
    venster  
       2015-11-18 22:57:06 +08:00
    @SilentDepth 可能 PS 对网络路径有特殊要求吧,我每天的定时备份脚本就是压缩后复制到网络共享里去的,没什么问题。
    SilentDepth
        6
    SilentDepth  
    OP
       2015-11-18 23:07:02 +08:00
    @venster 能分享一下网络驱动器相关的部分脚本吗?
    venster
        7
    venster  
       2015-11-19 08:25:04 +08:00
    @SilentDepth 用的 copy ,没什么特别的,就是 copy something \\path\something
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1188 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:19 · PVG 02:19 · LAX 10:19 · JFK 13:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.