我正在尝试使用任务计划程序运行 PowerShell 脚本,它会弹出一个 PowerShell 命令控制台窗口。
有没有办法在运行脚本时禁用它并隐藏窗口?
我试过 -WindowStyle Hidden
但 PowerShell 命令控制台窗口仍然弹出。
最佳答案
由于 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
)。
关于windows - 在任务计划程序中运行 .ps1 脚本时如何隐藏 PowerShell 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46808635/