我正在尝试使用PowerShell执行远程进程,我的试验也导致使用任务计划程序。
我需要使用参数调用应用程序。仅供参考,该应用程序是QlikView Desktop,其可执行文件是Qv.exe
。我没有将应用程序的目录添加到主机的可执行文件路径中,因此我需要为应用程序指定完整的patth或更改为应用程序的目录。
首先,我尝试了以下命令:
Invoke-Command -ComputerName <hostname> -ScriptBlock {powershell.exe -command "&'C:\Program Files\QlikView\Qv.exe' C:\Qlik\DailyUpdate.qvw /r"}
结果是 - 根据主机上正在运行的进程列表 - QlikView应用程序启动但没有做任何事情(CPU为0%),直到进程被终止。这个失败让我感到很尴尬,可能与通过多跳传递的凭据有关,在我决定使用Task Scheduler运行上面的父PowerShell命令{{}中包含的嵌套PowerShell任务之前,我尝试了多种传递凭据的方法。 {1}}参数。
接下来,我创建了一个Task Scheduler作业,然后我尝试了以下命令:
ScriptBlock
结果是当我从开发框运行时,当我通过RDP登录到远程主机时,此命令有效,但是在没有桌面会话的情况下失败 - 类似于我的第一个结果,远程应用程序启动但保持空闲直到手动杀死。
我想弄清楚最初的问题并完全理解如何使用PowerShell正确传递凭据,如果它就是这样的话。否则,我阅读以下与Excel自动化相关的帖子,建议创建几个目录以非交互方式运行Excel:https://superuser.com/questions/579900/why-cant-excel-open-a-file-when-run-from-task-scheduler
我想知道如果与访问权限或凭据无关 - 也许我需要了解QlikView应用程序是否需要一个仅使用活动桌面会话创建的临时目录。
我是否处理凭据问题,即双/多跳?或者,是否有一些Windows使用我需要手动创建的桌面会话创建的目录?