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

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

PS: 似乎是个由来已久的问题?
4610 次点击
所在节点    PowerShell
7 条回复
gamexg
2015-11-18 17:45:16 +08:00
还未挂载就执行了?
尝试过指定账号吗?
SilentDepth
2015-11-18 17:59:58 +08:00
@gamexg 各种测试后感觉 NAS 实际上是在的,只是计划任务的执行环境中看不到那个驱动器,也自然没有盘符。 net use 的结果显示驱动器存在,但状态是「不可用」(也不知道怎么才能让它可用)。
「指定账号」是指什么?计划任务中指定了账号(但显然不是 NAS 的账号)。如果是说访问 NAS 时指定账号的话,也同时需要密码吧。因为是计划任务不能接受用户输入,况且我也不知道密码。
venster
2015-11-18 18:08:01 +08:00
一定要用映射驱动器么?直接用网络路径应该就可以了
SilentDepth
2015-11-18 18:15:36 +08:00
@venster 然而并不能。似乎计划任务访问网络资源的能力很有限。
```
Get-ChildItem \\12.34.56.78\data
```
如上代码的执行结果是「找不到路径……因为该路径不存在」。然而不通过计划任务是没问题的。
venster
2015-11-18 22:57:06 +08:00
@SilentDepth 可能 PS 对网络路径有特殊要求吧,我每天的定时备份脚本就是压缩后复制到网络共享里去的,没什么问题。
SilentDepth
2015-11-18 23:07:02 +08:00
@venster 能分享一下网络驱动器相关的部分脚本吗?
venster
2015-11-19 08:25:04 +08:00
@SilentDepth 用的 copy ,没什么特别的,就是 copy something \\path\something

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/237116

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX