6

我正在尝试使用任务计划程序运行 PowerShell 脚本,它会弹出一个 PowerShell 命令控制台窗口。

有没有办法在运行脚本并隐藏窗口时禁用它?

我已经尝试过-WindowStyle Hidden,但仍会弹出 PowerShell 命令控制台窗口。

4

1 回答 1

8

由于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)。

于 2017-10-18T16:22:54.573 回答