2014-12-31 175 views
0

一位同事寫了一個PowerShell腳本,使得重複AD任務更容易。然而(我不知道細節),他寫道,你必須打開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創建的窗口?

+0

我認爲你需要重新啓動。 –

+0

我不認爲這是可能的。該過程要麼隱藏,要麼不隱藏。它不能部分隱藏。 –

+0

我終於明白了。基本上,我可以使用powershell以我想要的方式啓動自己。我進行了一個額外的步驟,並使用該腳本來拉取用戶名並將其插入到路徑中。 '昏暗strUser的 昏暗usrPath strUser的=的CreateObject( 「WScript.Network」)。用戶名 usrPath = 「」 「\\ somePath \」 &strUser的& 「\ myscript.ps1」 「」' 這裏是部分啓動PS隱藏,但允許它的腳本被看到: 'strCommand =「powershell -WindowStyle hidden -command」&usrPath' &usrPath連接路徑。你可以只輸入路徑並跳過所有可變的垃圾。 – Ben

回答

0

我明白了,正如上面的評論。變量usrPath指的是我使用的存儲路徑的變量和&會連接到以下PowerShell命令:

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

這實現了我想要的東西,因爲PowerShell中允許有一個隱藏的控制檯,其中VBS和Windows腳本不。