我正在尝试使用任务计划程序运行 PowerShell 脚本,它会弹出一个 PowerShell 命令控制台窗口。
有没有办法在运行脚本并隐藏窗口时禁用它?
我已经尝试过-WindowStyle Hidden
,但仍会弹出 PowerShell 命令控制台窗口。
我正在尝试使用任务计划程序运行 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
)。