【问题标题】:Hidden console window, but allow popup window?隐藏控制台窗口,但允许弹出窗口?
【发布时间】:2015-01-03 07:30:55
【问题描述】:

一位同事编写了一个 PowerShell 脚本,使重复性广告任务更加变得更加容易。但是(我不知道细节),他写它的方式是你必须打开powershell.exe并点击“运行”来执行脚本。我们的机器上已经打开了一百万个窗口,再多一个窗口实在是太多了。

所以,我正在尝试编写一个运行隐藏控制台的 .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 创建的窗口?

【问题讨论】:

  • 我认为您需要重新启动。
  • 我认为这是不可能的。该过程要么隐藏要么不隐藏。不能部分隐藏。
  • 我最终想通了。基本上,我可以使用 powershell 以我想要的方式启动自己。我又走了一步,使用脚本提取用户名并将其插入到路径中。 Dim strUser Dim usrPath strUser = CreateObject("WScript.Network").UserName usrPath = """\\somePath\" & strUser & "\myscript.ps1""" 这是启动 PS hidden 的部分,但允许看到它的脚本:strCommand = "powershell -WindowStyle hidden -command " & usrPath & usrPath 连接路径。您可以只输入路径并跳过所有变量垃圾。

标签: powershell vbscript


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2012-10-14
    • 2015-08-25
    • 2011-04-03
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多