Start-Process
Avvia uno o più processi nel computer locale.
Sintassi
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>]
Descrizione
Il Start-Process
cmdlet avvia uno o più processi nel computer locale. Per specificare il programma che viene eseguito nel processo, immettere un file eseguibile o un file script oppure un file che può essere aperto usando un programma nel computer. Se si specifica un file non eseguibile, Start-Process
avvia il programma associato al file, simile al Invoke-Item
cmdlet .
È possibile usare i parametri di Start-Process
per specificare opzioni, ad esempio il caricamento di un profilo utente, l'avvio del processo in una nuova finestra o l'uso di credenziali alternative.
Esempio
Esempio 1: Avviare un processo che usa valori predefiniti
In questo esempio viene avviato un processo che usa il file Sort.exe nella cartella corrente. Il comando usa tutti i valori predefiniti, inclusi lo stile di finestra predefinito, la cartella di lavoro e le credenziali.
Start-Process -FilePath "sort.exe"
Esempio 2: Stampare un file di testo
In questo esempio viene avviato un processo che stampa il file C:\PS-Test\MyFile.txt.
Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print
Esempio 3: Avviare un processo per ordinare gli elementi in un nuovo file
In questo esempio viene avviato un processo che ordina gli elementi nel file Testsort.txt e restituisce gli elementi ordinati nei file Sorted.txt. Eventuali errori vengono scritti nel file SortError.txt.
Start-Process -FilePath "Sort.exe" -RedirectStandardInput "Testsort.txt" -RedirectStandardOutput "Sorted.txt" -RedirectStandardError "SortError.txt" -UseNewEnvironment
Il parametro UseNewEnvironment specifica che il processo viene eseguito con le proprie variabili di ambiente.
Esempio 4: Avviare un processo in una finestra ingrandita
In questo esempio viene avviato il processo diNotepad.exe . Ingrandisce la finestra e la mantiene fino al termine del processo.
Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized
Esempio 5: Avviare PowerShell come amministratore
Questo esempio avvia PowerShell usando l'opzione "Esegui come amministratore".
Start-Process -FilePath "powershell" -Verb RunAs
Esempio 6: Uso di verbi diversi per avviare un processo
In questo esempio viene illustrato come trovare i verbi che possono essere usati all'avvio di un processo. I verbi disponibili sono determinati dall'estensione del nome file del file eseguito nel processo.
$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args PowerShell.exe
$startExe.verbs
open
runas
Nell'esempio viene New-Object
usato per creare un oggetto System.Diagnostics.ProcessStartInfo per PowerShell.exe, il file eseguito nel processo di PowerShell. La proprietà Verbs dell'oggetto ProcessStartInfo mostra che è possibile utilizzare i verbi Open e RunAs con PowerShell.exeo con qualsiasi processo che esegue un file .exe.
Esempio 7: Specifica di argomenti per il processo
Entrambi i comandi avviano l'interprete dei comandi di Windows, eseguendo un comando dir nella cartella 'Programmi'. Poiché questo nome cartella contiene uno spazio, il valore deve essere racchiuso tra virgolette precedute da escape. Si noti che il primo comando specifica una stringa come ArgumentList. Secondo comando di una matrice di stringhe.
Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%systemdrive%\program files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""
Parametri
-ArgumentList
Specifica i parametri o i valori dei parametri da usare quando questo cmdlet avvia il processo. Se i parametri o i valori dei parametri contengono uno spazio, è necessario racchiuderli tra virgolette doppie precedute da caratteri di escape.
Type: | String[] |
Aliases: | Args |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Specifica un account utente che dispone delle autorizzazioni per eseguire questa azione. Digitare un nome utente, ad esempio User01 o Domain01\User01, oppure immettere un oggetto PSCredential , ad esempio uno dal Get-Credential
cmdlet. Per impostazione predefinita, il cmdlet usa le credenziali dell'utente corrente.
Type: | PSCredential |
Aliases: | RunAs |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Specifica il percorso facoltativo e il nome file del programma eseguito nel processo. Immettere il nome di un file eseguibile o di un documento, ad esempio un file con estensione txt o doc, associato a un programma nel computer. Questo parametro è obbligatorio.
Se si specifica solo un nome file, usare il parametro WorkingDirectory per specificare il percorso.
Type: | String |
Aliases: | PSPath |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LoadUserProfile
Indica che questo cmdlet carica il profilo utente di Windows archiviato nella chiave del Registro di sistema HKEY_USERS per l'utente corrente.
Questo parametro non influisce sui profili di PowerShell. Per altre informazioni, vedere about_Profiles.
Type: | SwitchParameter |
Aliases: | Lup |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoNewWindow
Avvia il nuovo processo nella finestra della console corrente. Per impostazione predefinita, PowerShell apre una nuova finestra.
Non è possibile usare i parametri NoNewWindow e WindowStyle nello stesso comando.
Type: | SwitchParameter |
Aliases: | nnw |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Restituisce un oggetto processo per ogni processo avviato dal cmdlet. Per impostazione predefinita, il cmdlet non genera alcun output.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardError
Specifica un file. Questo cmdlet invia eventuali errori generati dal processo a un file specificato. Immettere il percorso e il nome file. Per impostazione predefinita, gli errori vengono visualizzati nella console.
Type: | String |
Aliases: | RSE |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardInput
Specifica un file. Questo cmdlet legge l'input dal file specificato. Immettere il percorso e il nome file del file di input. Per impostazione predefinita, il processo ottiene l'input dalla tastiera.
Type: | String |
Aliases: | RSI |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardOutput
Specifica un file. Questo cmdlet invia l'output generato dal processo a un file specificato. Immettere il percorso e il nome file. Per impostazione predefinita, l'output viene visualizzato nella console.
Type: | String |
Aliases: | RSO |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseNewEnvironment
Indica che questo cmdlet usa nuove variabili di ambiente specificate per il processo. Per impostazione predefinita, il processo avviato viene eseguito con le variabili di ambiente specificate per il computer e l'utente.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Verb
Specifica un verbo da utilizzare all'avvio del processo da parte di questo cmdlet. I verbi disponibili sono determinati dall'estensione del nome file del file eseguito nel processo.
La tabella seguente illustra i verbi per alcuni tipi di file di processo comuni.
Tipo file | Verbi |
---|---|
.cmd | Modifica, Apri, Stampa, RunAs, RunAsUser |
EXE | Aprire, RunAs, RunAsUser |
.txt | Apri, Stampa, PrintTo |
.wav | Apri, Riproduci |
Per trovare i verbi che è possibile usare con il file eseguito in un processo, usare il New-Object
cmdlet per creare un oggetto System.Diagnostics.ProcessStartInfo per il file. I verbi disponibili si trovano nella proprietà Verbs dell'oggetto ProcessStartInfo . Per informazioni dettagliate, vedere gli esempi.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Wait
Indica che questo cmdlet attende il completamento del processo specificato e dei relativi discendenti prima di accettare più input. Questo parametro elimina il prompt dei comandi o mantiene la finestra fino al termine dei processi.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WindowStyle
Specifica lo stato della finestra usata per il nuovo processo. I valori accettabili per questo parametro sono : Normal, Hidden, Minimized e Maximized. Il valore predefinito è Normal.
Non è possibile usare i parametri WindowStyle e NoNewWindow nello stesso comando.
Type: | ProcessWindowStyle |
Accepted values: | Normal, Hidden, Minimized, Maximized |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WorkingDirectory
Specifica il percorso del file eseguibile o del documento che viene eseguito nel processo. Il valore predefinito è la cartella per il nuovo processo.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
None
Non è possibile inviare input tramite pipe a questo cmdlet.
Output
None, System.Diagnostics.Process
Questo cmdlet genera un oggetto System.Diagnostics.Process , se si specifica il parametro PassThru . In caso contrario, questo cmdlet non restituisce alcun output.
Note
- Questo cmdlet viene implementato usando il metodo Start della classe System.Diagnostics.Process . Per altre informazioni su questo metodo, vedere Metodo Process.Start.