从 Windows 2016 任务计划程序运行时,PowerShell 脚本不会使用 UNC 路径或映射驱动器运行程序

从 Windows 2016 任务计划程序运行时,PowerShell 脚本不会使用 UNC 路径或映射驱动器运行程序

我正在运行 Windows 2016 任务计划程序中的 powershell 脚本,该脚本使用 UNC 路径或脚本中映射的驱动器执行程序。

两种变体在 powershell 中运行良好,但在从任务中运行时不起作用。

根据映射驱动器变体中的消息,我知道脚本正在执行。

我使用任务中使用的相同用户帐户在服务器上运行 powershell。

该应用程序需要位于脚本中显示的 ..\runtime 文件夹中的 DLL。

UNC 脚本为:

$Env:Path+=";\\myserver\apps\runtime

\\我的服务器\应用程序\myapp.exe

这只会默默地失败。

映射驱动器脚本是:

如果(!(测试路径 X:))

{

  New-PSDrive -Name X -PSProvider FileSystem –Root "\\myserver\apps"

}

$Env:Path+=“;X:\runtime”

执行文件

此版本在 powershell 事件日志中生成警告“提供商健康:找不到驱动器‘X:\’。驱动器可能尚未准备好或可能未映射。”对于引用 X: 驱动器位置的两行

答案1

好吧,这原来是用户犯的一个重大错误。在任务“常规”选项卡下的“无论用户是否登录都运行”下,选中了“不存储密码”选项。这明确表示,如果选中此选项,则任务将只能访问本地资源。当我取消选中此选项并将任务设置为运行 \myserver\apps\myapp.exe 并从 \myserver\apps\runtime\ 启动时,它按预期工作。

相关内容