有一个映射的网络驱动器(比如 Z:),我需要在脚本访问上面的文件(比如 Z:\data.txt )。在用户登录时直接运行脚本没有问题,但放到计划任务中就不行了,经过测试发现计划任务执行的脚本根本就没有检测到 Z:(至少 Get-PSDrive 中没有)。 Google 了半天只找到一个利用 WScript 的方法,但一来会暴露账号密码,二来我根本就不知道密码……求解这事怎么办
PS: 似乎是个由来已久的问题?
PS: 似乎是个由来已久的问题?
1
gamexg Nov 18, 2015
还未挂载就执行了?
尝试过指定账号吗? |
2
SilentDepth OP @gamexg 各种测试后感觉 NAS 实际上是在的,只是计划任务的执行环境中看不到那个驱动器,也自然没有盘符。 net use 的结果显示驱动器存在,但状态是「不可用」(也不知道怎么才能让它可用)。
「指定账号」是指什么?计划任务中指定了账号(但显然不是 NAS 的账号)。如果是说访问 NAS 时指定账号的话,也同时需要密码吧。因为是计划任务不能接受用户输入,况且我也不知道密码。 |
3
venster Nov 18, 2015
一定要用映射驱动器么?直接用网络路径应该就可以了
|
4
SilentDepth OP @venster 然而并不能。似乎计划任务访问网络资源的能力很有限。
``` Get-ChildItem \\12.34.56.78\data ``` 如上代码的执行结果是「找不到路径……因为该路径不存在」。然而不通过计划任务是没问题的。 |
5
venster Nov 18, 2015
@SilentDepth 可能 PS 对网络路径有特殊要求吧,我每天的定时备份脚本就是压缩后复制到网络共享里去的,没什么问题。
|
6
SilentDepth OP @venster 能分享一下网络驱动器相关的部分脚本吗?
|
7
venster Nov 19, 2015
@SilentDepth 用的 copy ,没什么特别的,就是 copy something \\path\something
|