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

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

问题描述:

我想使用任务计划程序运行powershell脚本,并弹出powershell cmd窗口。有没有办法在运行脚本时禁用它?我在PowerShell v5.0如何在静默/隐藏模式下使用任务计划程序运行powershell脚本?

我试过了-WindowStyle隐藏但仍弹出PowerShell cmd窗口。

欢迎任何指导。

谢谢。

因为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); 

如果此脚本C:\Scripts\My Launcher.js,你就可以执行以下命令行:

wscript "C:\Scripts\My Launcher.js" 

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

+0

感谢您的解释@Bill_Stewart –