Command-Line-Interface

如何執行隱藏或最小化的命令視窗?

  • December 2, 2013

我編寫了一個 powershell 腳本,它會生成一個使用者必須同意的“EULA”類型的彈出視窗。

它在登錄時通過作為使用者(非管理員)帳戶的計劃任務執行來執行此操作。它需要提昇執行,所以我使用以下腳本來提昇執行它:

$pw= convertto-securestring "myPassw0rd" -asplaintext –force
$credential = new-object -typename system.management.automation.pscredential -argumentlist "-default-",$pw
$localArgs = "/c Powershell c:\scripts\myScript.ps1" 

[System.Diagnostics.Process]::Start("cmd.exe", $localArgs, "Administrator", $credential.Password, $computer)

(我將加密密碼以使其更安全,但這與這個問題無關。)

無論如何-我的問題是,當呼叫腳本時,它會在我的“漂亮” EULA 彈出視窗後面顯示命令提示符視窗。

有沒有辦法隱藏/最小化命令視窗?

謝謝,

Ben

這應該是您需要的:

$Process = new-Object System.Diagnostics.Process
$Process.StartInfo.UserName="Administrator"
$Process.StartInfo.Password=$Credential.Password
$Process.StartInfo.Domain="$Computer"
$Process.StartInfo.WindowStyle="Hidden"
$Process.StartInfo.FileName="cmd.exe"
$Process.StartInfo.Arguments="$localArgs"
$Process.Start()

您可以使用 Start-Process cmdlet (PowerShell 2.0):

Start-Process cmd.exe -Credential $credential -WindowStyle Hidden -WorkingDirectory … -ArgumentList…

引用自:https://serverfault.com/questions/155312