如何使用任务计划程序在静默/隐藏模式下运行Powershell脚本?

Zul*_*ala 3 windows powershell windows-10 powershell-5.0

我正在尝试使用任务计划程序运行powershell脚本,它会弹出powershell cmd窗口。有没有办法在运行脚本时禁用此功能?我在Powershell v5.0上

我尝试了-WindowStyle隐藏,但仍然弹出powershell cmd窗口。

欢迎任何指导。

谢谢。

Bil*_*art 5

由于这powershell.exe是一个控制台程序,因此您无法在没有出现其控制台窗口的情况下正常执行该程序(尽管您可以在开始使用后不久将其隐藏-WindowStyle Hidden,如前所述)。

诀窍是在隐藏状态下执行powershell.exe 自身。一种实现方法是使用WshShell对象的Run方法运行隐藏在WSH脚本中的PowerShell命令行,然后使用wscript.exe(不是控制台程序,因此不会显示控制台窗口)执行WSH脚本。示例脚本(JScript):

var wshShell = new ActiveXObject("WScript.Shell");
wshShell.Run('%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -ExecutionPolicy Bypass -File "C:\\Scripts\\My Script.ps1"', 0, false);
Run Code Online (Sandbox Code Playgroud)

如果此脚本为C:\Scripts\My Launcher.js,则现在可以运行以下命令行:

wscript "C:\Scripts\My Launcher.js"
Run Code Online (Sandbox Code Playgroud)

这将在没有控制台的情况下运行启动器脚本,然后在隐藏窗口中运行PowerShell命令(Run方法的第二个参数是0)。