我有许多运行 PowerShell 脚本的计划任务,这些脚本需要访问 Qnap NAS 服务器上的文件。我前段时间了解到,如果我在定义计划任务时设置“无论用户是否登录都运行”,我就无法使用映射驱动器号访问 NAS 上的文件。我必须使用 UNC 路径来访问文件。
我最近编写了另一个脚本,该脚本也需要访问联网 PC 上的文件。我只是假设如果我使用 UNC 路径,我将能够像访问 NAS 文件一样访问这些文件。然而,事实并非如此。我收到一条错误消息,提示该文件夹不可用。但是,如果我关闭“无论用户是否登录都运行”,脚本就会按预期运行。
我设法通过在 UNC 路径上执行测试路径来解决这个问题,如果找不到,我会在脚本中映射驱动器。然后我可以使用 UNC 路径访问文件。虽然不是完全可取的,但它确实有效。但是,我想知道为什么我能够访问 NAS 网络共享而无需任何特殊处理,但我无法对 Windows PC 网络共享执行相同操作。
答案1
原来是存储凭据问题。我使用 Windows 凭据管理器进行检查,发现 Windows 已存储 NAS 共享的凭据,但未存储 Windows PC 共享的凭据。我使用文件资源管理器映射共享驱动器并记住我的凭据。之后,PowerShell 能够使用 UNC 路径访问文件。