【发布时间】:2021-07-20 03:38:47
【问题描述】:
下面的命令行会成功执行一个不可见的powershell命令;将输出保存到文本文件:
C:\Windows\System32\wscript.exe C:\temp\invisible.vbs C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -WindowStyle Hidden -command ( (Get-StartApps -Name 'RDP (Tools)').AppID > c:\Temp\AppB.txt )
invisible.vbs:
CreateObject("Wscript.Shell").Run "" & WScript.Arguments(0) & "", 0, False
但是,如果我创建一个 Windows 调度程序任务,其中 Action 是:EXE = C:\Windows\System32\wscript.exe 和...
参数 = C:\temp\invisible.vbs C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -WindowStyle Hidden -command ( (Get-StartApps -Name 'RDP (Tools)').AppID > c:\Temp\AppB.txt )
...运行调度程序任务时没有创建文本文件;即使它说操作已成功完成 (0x0)。
如何创建与命令行执行相同操作的 Windows 调度程序任务?
提示:当我运行计划任务时,任务计划程序会生成一个 powershell.exe 进程。但是,它似乎没有做任何事情。某些原因导致 PowerShell 进程无法按预期运行。不幸的是,我不知道发生了什么。
HINT2:当我彻底消除了VBScript;其中任务计划仅执行 PowerShell;并且,相应的命令,它工作正常。不幸的是,我对 vbscript 的了解不够深入,无法知道为什么这不起作用。
【问题讨论】:
-
能否将命令移动到 ps1 文件中并改用 -File 参数?
-
谢谢。但是,我已经必须创建一个
invisible.vbs文件依赖项;我真的不想这样做。我不想为此任务创建另一个文件依赖项。理想情况下,我想在没有任何文件依赖的情况下完成这一切。 -
PS:我刚刚尝试将 PowerShell 代码移动到 ps1 文件并使用 -File 参数。但是,我得到了相同的行为。看来我做错了什么。
-
我相信你的 vbs 只是抓住了第一个参数。停在 powershell.exe。尝试用引号包围整个论点
C:\temp\invisible.vbs "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -WindowStyle Hidden -command ( (Get-StartApps -Name 'RDP (Tools)').AppID > c:\Temp\AppB.txt )" -
丹,你就是那个男人!谢谢!这就是我所缺少的!
标签: powershell vbscript scheduled-tasks