Partilhar via


Start-Process

Inicia um ou mais processos no computador local.

Sintaxe

Start-Process
     [-FilePath] <String>
     [[-ArgumentList] <String[]>]
     [-Credential <PSCredential>]
     [-WorkingDirectory <String>]
     [-LoadUserProfile]
     [-NoNewWindow]
     [-PassThru]
     [-RedirectStandardError <String>]
     [-RedirectStandardInput <String>]
     [-RedirectStandardOutput <String>]
     [-WindowStyle <ProcessWindowStyle>]
     [-Wait]
     [-UseNewEnvironment]
     [<CommonParameters>]
Start-Process
     [-FilePath] <String>
     [[-ArgumentList] <String[]>]
     [-WorkingDirectory <String>]
     [-PassThru]
     [-Verb <String>]
     [-WindowStyle <ProcessWindowStyle>]
     [-Wait]
     [<CommonParameters>]

Description

O cmdlet Start-Process inicia um ou mais processos no computador local. Para especificar o programa que é executado no processo, insira um arquivo executável ou de script ou um arquivo que possa ser aberto usando um programa no computador. Se você especificar um arquivo não executável, Start-Process iniciará o programa associado ao arquivo, semelhante ao cmdlet Invoke-Item.

Você pode usar os parâmetros do Start-Process para especificar opções, como carregar um perfil de usuário, iniciar o processo em uma nova janela ou usar credenciais alternativas.

Exemplos

Exemplo 1: Iniciar um processo que usa valores padrão

Este exemplo inicia um processo que usa o arquivo Sort.exe na pasta atual. O comando usa todos os valores padrão, incluindo o estilo de janela padrão, a pasta de trabalho e as credenciais.

Start-Process -FilePath "sort.exe"

Exemplo 2: Imprimir um ficheiro de texto

Este exemplo inicia um processo que imprime o arquivo C:\PS-Test\MyFile.txt.

Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print

Exemplo 3: Iniciar um processo para classificar itens em um novo arquivo

Este exemplo inicia um processo que classifica os itens no arquivo Testsort.txt e retorna os itens classificados nos arquivos Sorted.txt. Quaisquer erros são gravados no arquivo SortError.txt.

Start-Process -FilePath "Sort.exe" -RedirectStandardInput "Testsort.txt" -RedirectStandardOutput "Sorted.txt" -RedirectStandardError "SortError.txt" -UseNewEnvironment

O parâmetro UseNewEnvironment especifica que o processo é executado com suas próprias variáveis de ambiente.

Exemplo 4: Iniciar um processo em uma janela maximizada

Este exemplo inicia o processo de Notepad.exe. Ele maximiza a janela e retém a janela até que o processo seja concluído.

Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized

Exemplo 5: Iniciar o PowerShell como administrador

Este exemplo inicia o PowerShell usando a opção "Executar como administrador".

Start-Process -FilePath "powershell" -Verb RunAs

Exemplo 6: Usando verbos diferentes para iniciar um processo

Este exemplo mostra como encontrar os verbos que podem ser usados ao iniciar um processo. Os verbos disponíveis são determinados pela extensão do nome do arquivo que é executado no processo.

$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args PowerShell.exe
$startExe.verbs

open
runas

O exemplo usa para criar um objeto System.Diagnostics.ProcessStartInfo para PowerShell.exe, o arquivo que é executado no processo do PowerShell. A propriedade Verbs do objeto ProcessStartInfo mostra que você pode usar os verbos Open e RunAs com PowerShell.exeou com qualquer processo que execute um arquivo .exe.

Exemplo 7: Especificando argumentos para o processo

Ambos os comandos iniciam o interpretador de comandos do Windows, emitindo um comando dir na pasta 'Arquivos de Programas'. Como esse nome de pasta contém um espaço, o valor precisa ser cercado por aspas com escape. Observe que o primeiro comando especifica uma cadeia de caracteres como ArgumentList. O segundo comando, uma matriz de cadeia de caracteres.

Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%systemdrive%\program files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""

Parâmetros

-ArgumentList

Especifica parâmetros ou valores de parâmetros a serem usados quando esse cmdlet inicia o processo. Se os parâmetros ou valores de parâmetros contiverem um espaço, eles precisarão ser cercados por aspas duplas com escape.

Tipo:String[]
Aliases:Args
Position:1
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Credential

Especifica uma conta de usuário que tem permissão para executar essa ação. Digite um nome de usuário, como User01 ou Domain01\User01, ou insira um objeto PSCredential, como um do cmdlet Get-Credential. Por padrão, o cmdlet usa as credenciais do usuário atual.

Tipo:PSCredential
Aliases:RunAs
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-FilePath

Especifica o caminho opcional e o nome do arquivo do programa que é executado no processo. Digite o nome de um arquivo executável ou de um documento, como um arquivo .txt ou .doc, associado a um programa no computador. Este parâmetro é obrigatório.

Se você especificar apenas um nome de arquivo, use o parâmetro WorkingDirectory para especificar o caminho.

Tipo:String
Aliases:PSPath
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-LoadUserProfile

Indica que esse cmdlet carrega o perfil de usuário do Windows armazenado na chave do Registro HKEY_USERS para o usuário atual.

Esse parâmetro não afeta os perfis do PowerShell. Para obter mais informações, consulte about_Profiles.

Tipo:SwitchParameter
Aliases:Lup
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-NoNewWindow

Inicie o novo processo na janela do console atual. Por padrão, o PowerShell abre uma nova janela.

Não é possível usar os parâmetros NoNewWindow e WindowStyle no mesmo comando.

Tipo:SwitchParameter
Aliases:nnw
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-PassThru

Retorna um objeto de processo para cada processo iniciado pelo cmdlet. Por padrão, esse cmdlet não gera nenhuma saída.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-RedirectStandardError

Especifica um arquivo. Este cmdlet envia todos os erros gerados pelo processo para um arquivo que você especificar. Insira o caminho e o nome do arquivo. Por padrão, os erros são exibidos no console.

Tipo:String
Aliases:RSE
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-RedirectStandardInput

Especifica um arquivo. Este cmdlet lê a entrada do arquivo especificado. Insira o caminho e o nome do arquivo de entrada. Por padrão, o processo recebe sua entrada do teclado.

Tipo:String
Aliases:RSI
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-RedirectStandardOutput

Especifica um arquivo. Este cmdlet envia a saída gerada pelo processo para um arquivo que você especificar. Insira o caminho e o nome do arquivo. Por padrão, a saída é exibida no console.

Tipo:String
Aliases:RSO
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-UseNewEnvironment

Indica que esse cmdlet usa novas variáveis de ambiente especificadas para o processo. Por padrão, o processo iniciado é executado com as variáveis de ambiente especificadas para o computador e o usuário.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Verb

Especifica um verbo a ser usado quando esse cmdlet iniciar o processo. Os verbos disponíveis são determinados pela extensão do nome do arquivo que é executado no processo.

A tabela a seguir mostra os verbos para alguns tipos de arquivo de processo comuns.

Tipo de ficheiro Verbos
.cmd Editar, Abrir, Imprimir, RunAs, RunAsUser
.exe Abrir, RunAs, RunAsUser
.txt Abrir, Imprimir, ImprimirPara
.wav Abrir, Jogar

Para localizar os verbos que podem ser usados com o arquivo que é executado em um processo, use o cmdlet para criar um objeto System.Diagnostics.ProcessStartInfo para o arquivo. Os verbos disponíveis estão na propriedade Verbs do objeto ProcessStartInfo. Para mais detalhes, consulte os exemplos.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Wait

Indica que esse cmdlet aguarda a conclusão do processo especificado e de seus descendentes antes de aceitar mais entradas. Este parâmetro suprime o prompt de comando ou retém a janela até que os processos sejam concluídos.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-WindowStyle

Especifica o estado da janela que é usada para o novo processo. Os valores aceitáveis para este parâmetro são: Normal, oculto, minimizado e maximizado. O valor padrão é Normal.

Não é possível usar o WindowStyle e parâmetros NoNewWindow no mesmo comando.

Tipo:ProcessWindowStyle
Valores aceites:Normal, Hidden, Minimized, Maximized
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-WorkingDirectory

Especifica o local do arquivo executável ou documento que é executado no processo. O padrão é a pasta para o novo processo.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

Entradas

None

Não é possível canalizar a entrada para este cmdlet.

Saídas

None, System.Diagnostics.Process

Este cmdlet gera um objeto System.Diagnostics.Process , se você especificar o parâmetro PassThru. Caso contrário, esse cmdlet não retornará nenhuma saída.

Notas

  • Este cmdlet é implementado usando o método Start da classe System.Diagnostics.Process do . Para obter mais informações sobre esse método, consulte Método Process.Start.