Start-Process
Startar en eller flera processer på den lokala datorn.
Syntax
Start-Process
[-FilePath] <String>
[[-ArgumentList] <String[]>]
[-Credential <PSCredential>]
[-WorkingDirectory <String>]
[-LoadUserProfile]
[-NoNewWindow]
[-PassThru]
[-RedirectStandardError <String>]
[-RedirectStandardInput <String>]
[-RedirectStandardOutput <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-UseNewEnvironment]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Start-Process
[-FilePath] <String>
[[-ArgumentList] <String[]>]
[-WorkingDirectory <String>]
[-PassThru]
[-Verb <String>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdleten Start-Process
startar en eller flera processer på den lokala datorn. Som standard Start-Process
skapar en ny process som ärver alla miljövariabler som definieras i den aktuella processen.
Ange det program som körs i processen genom att ange en körbar fil eller skriptfil eller en fil som kan öppnas med hjälp av ett program på datorn. Om du anger en fil som inte kan köras Start-Process
startar programmet som är associerat med filen, ungefär som cmdleten Invoke-Item
.
Du kan använda parametrarna Start-Process
för för att ange alternativ, till exempel läsa in en användarprofil, starta processen i ett nytt fönster eller använda alternativa autentiseringsuppgifter.
Exempel
Exempel 1: Starta en process som använder standardvärden
Det här exemplet startar en process som använder Sort.exe
filen i den aktuella mappen. Kommandot använder alla standardvärden, inklusive standardfönsterformatet, arbetsmappen och autentiseringsuppgifterna.
Start-Process -FilePath "sort.exe"
Exempel 2: Skriv ut en textfil
Det här exemplet startar en process som skriver ut C:\PS-Test\MyFile.txt
filen.
Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print
Exempel 3: Starta en process för att sortera objekt till en ny fil
Det här exemplet startar en process som sorterar objekt i Testsort.txt
filen och returnerar de sorterade objekten Sorted.txt
i filerna. Eventuella fel skrivs till SortError.txt
filen.
Start-Process -FilePath "Sort.exe" -RedirectStandardInput "Testsort.txt" -RedirectStandardOutput "Sorted.txt" -RedirectStandardError "SortError.txt" -UseNewEnvironment
Parametern UseNewEnvironment anger att processen körs med egna miljövariabler.
Exempel 4: Starta en process i ett maximerat fönster
Det här exemplet startar Notepad.exe
processen. Det maximerar fönstret och behåller fönstret tills processen har slutförts.
Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized
Exempel 5: Starta PowerShell som administratör
Det här exemplet startar PowerShell med alternativet Kör som administratör .
Start-Process -FilePath "powershell" -Verb RunAs
Exempel 6: Använda olika verb för att starta en process
Det här exemplet visar hur du hittar de verb som kan användas när du startar en process. De tillgängliga verben bestäms av filnamnstillägget för filen som körs i processen.
$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args PowerShell.exe
$startExe.verbs
open
runas
runasuser
Exemplet använder New-Object
för att skapa ett System.Diagnostics.ProcessStartInfo-objekt för PowerShell.exe, filen som körs i PowerShell-processen. Verbegenskapen för objektet ProcessStartInfo visar att du kan använda verben Öppna och Kör som med PowerShell.exe
eller med alla processer som kör en .exe
fil.
Exempel 7: Ange argument i processen
Båda kommandona startar Windows-kommandotolken och utfärdar ett dir
kommando i Program Files
mappen . Eftersom det här mappnamnet innehåller ett blanksteg måste värdet omges av undantagna citattecken.
Observera att det första kommandot anger en sträng som ArgumentList. Det andra kommandot är en strängmatris.
Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%systemdrive%\program files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""
Exempel 8: Skapa en frånkopplad process i Linux
I Windows Start-Process
skapar en oberoende process som körs oberoende av startgränssnittet. På andra plattformar än Windows-plattformar är den nyligen startade processen kopplad till gränssnittet som startades. Om startgränssnittet stängs avslutas den underordnade processen.
För att undvika att avsluta den underordnade processen på Unix-liknande plattformar kan du kombinera Start-Process
med nohup
. I följande exempel startas en bakgrundsinstans av PowerShell på Linux som förblir aktiv även efter att du har stängt startsessionen. Kommandot nohup
samlar in utdata i filen nohup.out
i den aktuella katalogen.
# Runs for 2 minutes and appends output to ./nohup.out
Start-Process nohup 'pwsh -noprofile -c "1..120 | % { Write-Host . -NoNewline; sleep 1 }"'
I det här exemplet Start-Process
körs Linux-kommandot nohup
, som startas pwsh
som en frånkopplad process. Mer information finns på man-sidan för nohup.
Parametrar
-ArgumentList
Anger parametrar eller parametervärden som ska användas när den här cmdleten startar processen. Argument kan accepteras som en enda sträng med argumenten avgränsade med blanksteg eller som en matris med strängar avgränsade med kommatecken.
Om parametrar eller parametervärden innehåller ett blanksteg måste de omges av undantagna dubbla citattecken. Mer information finns i about_Quoting_Rules.
Type: | String[] |
Aliases: | Args |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Anger ett användarkonto som har behörighet att utföra den här åtgärden. Som standard använder cmdleten den aktuella användarens autentiseringsuppgifter.
Ange ett användarnamn, till exempel User01 eller Domain01\User01, eller ange ett PSCredential-objekt som genereras av cmdleten Get-Credential
. Om du skriver ett användarnamn uppmanas du att ange lösenordet.
Autentiseringsuppgifter lagras i ett PSCredential-objekt och lösenordet lagras som en SecureString.
Anteckning
Mer information om SecureString-dataskydd finns i Hur säkert är SecureString?.
Type: | PSCredential |
Aliases: | RunAs |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Anger den valfria sökvägen och filnamnet för det program som körs i processen. Ange namnet på en körbar fil eller ett dokument, till exempel en .txt
eller .doc
en fil, som är associerad med ett program på datorn. Den här parametern krävs.
Om du bara anger ett filnamn använder du parametern WorkingDirectory för att ange sökvägen.
Type: | String |
Aliases: | PSPath, Path |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LoadUserProfile
Anger att den här cmdleten läser in Windows-användarprofilen som lagras i registernyckeln HKEY_USERS
för den aktuella användaren. Parametern gäller inte för icke-Windows-system.
Den här parametern påverkar inte PowerShell-profilerna. Mer information finns i about_Profiles.
Type: | SwitchParameter |
Aliases: | Lup |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoNewWindow
Starta den nya processen i det aktuella konsolfönstret. Som standard i Windows öppnar PowerShell ett nytt fönster. På icke-Windows-system får du aldrig ett nytt terminalfönster.
Du kan inte använda parametrarna NoNewWindow och WindowStyle i samma kommando.
Parametern gäller inte för icke-Windows-system.
Type: | SwitchParameter |
Aliases: | nnw |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Returnerar ett processobjekt för varje process som cmdleten startade. Som standard genererar denna cmdlet inga utdata.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardError
Anger en fil. Den här cmdleten skickar eventuella fel som genereras av processen till en fil som du anger. Ange sökvägen och filnamnet. Som standard visas felen i konsolen.
Type: | String |
Aliases: | RSE |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardInput
Anger en fil. Den här cmdleten läser indata från den angivna filen. Ange sökvägen och filnamnet för indatafilen. Som standard hämtar processen indata från tangentbordet.
Type: | String |
Aliases: | RSI |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardOutput
Anger en fil. Den här cmdleten skickar utdata som genereras av processen till en fil som du anger. Ange sökvägen och filnamnet. Som standard visas utdata i konsolen.
Type: | String |
Aliases: | RSO |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseNewEnvironment
Anger att denna cmdlet använder nya miljövariabler som angetts för processen. Som standard körs den startade processen med de miljövariabler som ärvts från den överordnade processen.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Verb
Anger ett verb som ska användas när den här cmdleten startar processen. De verb som är tillgängliga bestäms av filnamnstillägget för filen som körs i processen.
I följande tabell visas verben för några vanliga processfiltyper.
Filtyp | Verb |
---|---|
.cmd | Redigera, Öppna, Skriv ut, RunAs, RunAsUser |
.exe | Open, RunAs, RunAsUser |
.txt | Öppna, Skriv ut, Skriv utTill |
.wav | Öppna, Spela upp |
Om du vill hitta de verb som kan användas med filen som körs i en process använder du cmdleten New-Object
för att skapa ett System.Diagnostics.ProcessStartInfo-objekt för filen. De tillgängliga verben finns i verbegenskapen för objektet ProcessStartInfo . Mer information finns i exemplen.
Parametern gäller inte för icke-Windows-system.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Wait
Anger att denna cmdlet väntar på att den angivna processen och dess underordnade ska slutföras innan fler indata accepteras. Den här parametern undertrycker kommandotolken eller behåller fönstret tills processerna har slutförts.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Den här parametern introducerades i PowerShell 6.0.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WindowStyle
Anger tillståndet för fönstret som används för den nya processen. De godtagbara värdena för den här parametern är: Normal, Dold, Minimerad och Maximerad. Standardvärdet är Normal.
Du kan inte använda parametrarna WindowStyle och NoNewWindow i samma kommando.
Parametern gäller inte för icke-Windows-system.
Type: | ProcessWindowStyle |
Accepted values: | Normal, Hidden, Minimized, Maximized |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WorkingDirectory
Anger den plats som den nya processen ska starta på. Standardinställningen är platsen för den körbara fil eller det dokument som startas. Jokertecken stöds inte. Sökvägen får inte innehålla tecken som tolkas som jokertecken.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
None
Du kan inte skicka indata till denna cmdlet.
Utdata
None, System.Diagnostics.Process
Den här cmdleten genererar ett System.Diagnostics.Process-objekt om du anger parametern PassThru . Annars returnerar denna cmdlet inga utdata.
Kommentarer
Den här cmdleten implementeras med hjälp av startmetoden i klassen System.Diagnostics.Process . Mer information om den här metoden finns i Process.Start-metoden.
När du använder UseNewEnvironment i Windows börjar den nya processen bara innehålla de standardmiljövariabler som definierats för datoromfånget . Detta har sidoeffekten att är inställd på
$env:USERNAME
SYSTEM. Ingen av variablerna från användaromfånget ingår.I Windows är det vanligaste användningsfallet för att använda parametern Vänta för
Start-Process
att blockera förloppet tills den nya processen avslutas. I icke-Windows-system behövs detta sällan eftersom standardbeteendet för kommandoradsprogram motsvararStart-Process -Wait
.När du använder
Start-Process
på icke-Windows-system får du aldrig ett nytt terminalfönster.