如何在静默/隐藏模式下使用任务计划程序运行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
)。
感谢您的解释@Bill_Stewart –