Como posso executar uma janela de comando oculta ou minimizada?

2

Eu escrevi um script powershell que gera um tipo de popup "EULA" com o qual o usuário tem que concordar.

Ele faz isso no logon executando como uma tarefa agendada para uma conta de usuário (não administrador). Ele precisa ser elevado, por isso estou usando o seguinte script para executá-lo:

$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)

(Eu vou criptografar a senha para torná-la um pouco mais segura, mas isso não é relevante para essa pergunta.)

Enfim - meu problema é que quando o script é chamado, ele exibe a janela do prompt de comando atrás do meu pop-up EULA "bonito".

Existe uma maneira de esconder / minimizar a janela de comando?

Obrigado,

Ben

    
por Ben 27.06.2010 / 22:21

3 respostas

2

Isso deve ser o que você precisa:

$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()
    
por 28.06.2010 / 02:36
1

Você pode usar o cmdlet Start-Process (PowerShell 2.0):

Iniciar o processo cmd.exe -Credential $ credential -WindowStyle Hidden -WorkingDirectory ... -ArgumentList ...

    
por 28.06.2010 / 08:39
1

Você não pode usar os parâmetros -Credential e -WindowStyle junto com o PowerShell v2, você precisa do PowerShell v3 ou usar os parâmetros -NoNewWindow e -Credential juntos

Você pode usar o código abaixo para o PowerShell v2:

$user = "{user}"
$pass = ConvertTo-SecureString -String "{password}" -AsPlainText -Force
$cred = new-object -typename System.Management.Automation.PSCredential '
     -argumentlist $user, $pass

start-process -Credential $cred -NoNewWindow powershell "-command & '{path and script}'"
    
por 02.12.2013 / 14:57