隐藏的控制台窗口,但允许弹出窗口?

时间:2014-12-31 16:01:31

标签: powershell vbscript

一位同事编写了一个PowerShell脚本,使重复的​​AD任务更容易 。然而(我不知道细节),他写道,你必须打开powershell.exe并点击" Run"执行脚本。我们已经在我们的机器上打开了一百万个窗口,还有一个窗口太多了。

所以,我尝试编写运行隐藏控制台的.vbs,但允许.ps1文件打开一个窗口。目前,它只是闪烁一瞬间消失。

代码:

Const HIDDEN_WINDOW = 0
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = HIDDEN_WINDOW
Set objProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
objProcess.Create "powershell.exe -command myscript.ps1", null, objConfig, intProcessID

如果我将HIDDEN_WINDOW设置为0,则会隐藏所有内容。有没有办法隐藏初始控制台,但显示由.ps1创建的窗口?

1 个答案:

答案 0 :(得分:0)

我想通了,如上所述。变量usrPath指的是我用来存储该路径的变量,&将它连接到以下PowerShell命令:

strCommand = "powershell -WindowStyle hidden -command " & usrPath

这实现了我想要的,因为PowerShell允许有一个隐藏的控制台,而VBS和Windows Scripting则没有。