Start-Process
Elindít egy vagy több folyamatot a helyi számítógépen.
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
A Start-Process
parancsmag elindít egy vagy több folyamatot a helyi számítógépen. Alapértelmezés szerint létrehoz egy új folyamatot, Start-Process
amely örökli az aktuális folyamatban definiált összes környezeti változót.
A folyamatban futó program megadásához adjon meg egy végrehajtható fájlt vagy szkriptfájlt, vagy egy olyan fájlt, amely a számítógépen futó programmal nyitható meg. Ha nem végrehajtható fájlt ad meg, Start-Process
a parancsmaghoz Invoke-Item
hasonlóan elindítja a fájlhoz társított programot.
A paraméterrel Start-Process
megadhatja a beállításokat, például egy felhasználói profil betöltését, a folyamat új ablakban való elindítását vagy más hitelesítő adatok használatát.
Példák
1. példa: Alapértelmezett értékeket használó folyamat indítása
Ez a példa elindít egy folyamatot, amely az Sort.exe
aktuális mappában lévő fájlt használja. A parancs az összes alapértelmezett értéket használja, beleértve az alapértelmezett ablakstílust, a munkamappát és a hitelesítő adatokat.
Start-Process -FilePath "sort.exe"
2. példa: Szövegfájl nyomtatása
Ez a példa elindít egy folyamatot, amely kinyomtatja a C:\PS-Test\MyFile.txt
fájlt.
Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print
3. példa: Elemek új fájlba rendezésének folyamata
Ez a példa elindít egy folyamatot, amely rendezi a TestSort.txt
fájl elemeit, és visszaadja a Sorted.txt
fájlokban lévő rendezett elemeket. A rendszer minden hibát a SortError.txt
fájlba ír. A UseNewEnvironment paraméter azt határozza meg, hogy a folyamat a saját környezeti változóival fusson.
$processOptions = @{
FilePath = "sort.exe"
RedirectStandardInput = "TestSort.txt"
RedirectStandardOutput = "Sorted.txt"
RedirectStandardError = "SortError.txt"
UseNewEnvironment = $true
}
Start-Process @processOptions
Ez a példa splatting használatával adja át a paramétereket a parancsmagnak. További információ: about_Splatting.
4. példa: Folyamat indítása teljes méretű ablakban
Ez a példa elindítja a Notepad.exe
folyamatot. Teljes méretűre állítja az ablakot, és megőrzi az ablakot, amíg a folyamat be nem fejeződik.
Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized
5. példa: A PowerShell indítása rendszergazdaként
Ez a példa a Futtatás rendszergazdaként beállítással indítja el a PowerShellt.
Start-Process -FilePath "powershell" -Verb RunAs
6. példa: Folyamat indítása különböző igék használatával
Ez a példa bemutatja, hogyan keresheti meg a folyamat indításakor használható parancsokat. Az elérhető parancsokat a folyamatban futó fájl fájlnévkiterjesztése határozza meg.
$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args powershell.exe
$startExe.verbs
open
runas
runasuser
A példában New-Object
egy System.Diagnostics.ProcessStartInfo objektumot hozunk létre a PowerShell-folyamatban futó fájlhoz powershell.exe
. A ProcessStartInfo objektum Verbs tulajdonsága azt mutatja, hogy használhatja a Megnyitás és RunAs
az igék parancsot a paranccsal powershell.exe
vagy bármely olyan folyamattal, amely egy .exe
fájlt futtat.
7. példa: A folyamat argumentumainak megadása
Mindkét parancs elindítja a Windows parancsértelmezőt, és kiad egy dir
parancsot a Program Files
mappában. Mivel ez a mappanév szóközt tartalmaz, az értéket idézőjelek veszik körül.
Vegye figyelembe, hogy az első parancs argumentumlistaként határoz meg egy sztringet. A második parancs egy sztringtömb.
Start-Process -FilePath "$env:comspec" -ArgumentList "/c dir `"%SystemDrive%\Program Files`""
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%SystemDrive%\Program Files`""
8. példa: Parancs futtatása rendszergazdaként alternatív hitelesítő adatokkal
Windows rendszeren futtathatja a parancsot Start-Process -Verb RunAs
egy emelt szintű engedélyekkel rendelkező folyamat elindításához.
Ez emeli az aktuális felhasználó környezetét. A Hitelesítő adatok paraméter lehetővé teszi egy másik felhasználónév és jelszó megadását, amely lehetővé teszi egy folyamat elindítását egy másik felhasználói tartalomban.
A hitelesítő adatok és az ige paraméterek azonban nem használhatók együtt.
Ha emelt szintű jogosultságokkal szeretne elindítani egy folyamatot, alternatív hitelesítő adatokkal, először el kell indítania a PowerShellt a másodlagos hitelesítő adatokkal, majd a használatával Start-Process
emelt szintű jogosultságokkal kell elindítania a folyamatot.
$cred = Get-Credential
$args = '-noprofile -command "Start-Process cmd.exe -Verb RunAs -args /k"'
Start-Process pwsh.exe -Credential $cred -WindowStyle Hidden -ArgumentList $args
A példa egy másodlagos hitelesítő adatokkal futó PowerShell-munkamenet emelt szintű engedélyeivel kezdődik cmd.exe
.
9. példa: Leválasztott folyamat létrehozása Linuxon
Windows rendszeren egy független folyamatot hoz létre, Start-Process
amely az indítási rendszerhéjtól függetlenül fut. A nem Windows-platformokon az újonnan elindított folyamat az elindított rendszerhéjhoz van csatolva. Ha az indítási rendszerhéj le van zárva, a gyermekfolyamat leáll.
A gyermekfolyamat Unix-szerű platformokon való leállításának elkerülése érdekében kombinálhatja Start-Process
a következővel nohup
: . Az alábbi példa elindítja a Linuxon futó PowerShell háttérpéldányát, amely még az indítási munkamenet bezárása után is életben marad. A nohup
parancs fájlban nohup.out
gyűjti a kimenetet az aktuális könyvtárban.
# Runs for 2 minutes and appends output to ./nohup.out
Start-Process nohup 'pwsh -noprofile -c "1..120 | % { Write-Host . -NoNewline; sleep 1 }"'
Ebben a példában Start-Process
a Linux-parancsot nohup
futtatjuk, amely leválasztott folyamatként indul el pwsh
. További információt a Wikipédián található nohup című cikkben talál.
Paraméterek
-ArgumentList
Paramétereket vagy paraméterértékeket ad meg, amikor ez a parancsmag elindítja a folyamatot. Az argumentumok egyetlen sztringként fogadhatók el szóközökkel elválasztott argumentumokkal, vagy vesszővel elválasztott karakterláncok tömbjeként. A parancsmag egyetlen sztringbe illeszti a tömböt, és a tömb minden elemét egyetlen szóköz választja el egymástól.
A PowerShell-sztringek külső idézőjelei nem jelennek meg, amikor az ArgumentumLista értékek átkerülnek az új folyamatba. Ha a paraméterek vagy paraméterértékek szóközt vagy idézőjelet tartalmaznak, akkor azokat feloldott dupla idézőjelekkel kell körülvenni. További információ: about_Quoting_Rules.
A legjobb eredmény érdekében használjon egyetlen ArgumentList értéket, amely tartalmazza az összes argumentumot és a szükséges idézőjeleket.
Type: | String[] |
Aliases: | Args |
Position: | 1 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Jóváhagyást kér a parancsmag futtatása előtt.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Olyan felhasználói fiókot ad meg, amely jogosult a művelet végrehajtására. Alapértelmezés szerint a parancsmag az aktuális felhasználó hitelesítő adatait használja.
Írjon be egy felhasználónevet (például User01 vagy Domain01\User01), vagy adjon meg egy, a Get-Credential
parancsmag által létrehozott PSCredential objektumot. Ha beír egy felhasználónevet, a rendszer kéri a jelszó megadását.
A hitelesítő adatokat egy PSCredential objektum tárolja, a jelszót pedig SecureStringként tárolja a rendszer.
Megjegyzés
További információ a SecureString adatvédelméről: How secure is SecureString?.
Type: | PSCredential |
Aliases: | RunAs |
Position: | Named |
Default value: | Current user |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Megadja a folyamatban futó program opcionális elérési útját és fájlnevét. Adja meg a számítógépen lévő programhoz társított végrehajtható fájl vagy dokumentum ( például egy .txt
vagy .doc
fájl) nevét. Ez a paraméter kötelező.
Ha csak olyan fájlnevet ad meg, amely nem felel meg egy rendszerparancsnak, a WorkingDirectory paraméterrel adja meg az elérési utat.
Type: | String |
Aliases: | PSPath, Path |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LoadUserProfile
Azt jelzi, hogy ez a parancsmag betölti az aktuális felhasználó beállításkulcsában HKEY_USERS
tárolt Windows-felhasználói profilt. A paraméter nem vonatkozik a nem Windows rendszerű rendszerekre.
Ez a paraméter nem befolyásolja a PowerShell-profilokat. További információ: about_Profiles.
Type: | SwitchParameter |
Aliases: | Lup |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoNewWindow
Indítsa el az új folyamatot az aktuális konzolablakban. Windows rendszeren alapértelmezés szerint a PowerShell új ablakot nyit meg. A nem Windows rendszerű rendszereken soha nem kap új ablakot.
Ugyanabban a parancsban nem használhatja a NoNewWindow és a WindowStyle paramétereket.
A paraméter nem vonatkozik a nem Windows rendszerű rendszerekre.
Type: | SwitchParameter |
Aliases: | nnw |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Egy folyamatobjektumot ad vissza minden olyan folyamathoz, amelyet a parancsmag elindított. Alapértelmezés szerint ez a parancsmag nem hoz létre kimenetet.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardError
Megadja a fájlt. Ez a parancsmag elküldi a folyamat által generált hibákat egy ön által megadott fájlnak. Adja meg az elérési utat és a fájlnevet. Alapértelmezés szerint a hibák megjelennek a konzolon.
Type: | String |
Aliases: | RSE |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardInput
Megadja a fájlt. Ez a parancsmag beolvassa a megadott fájl bemenetét. Adja meg a bemeneti fájl elérési útját és fájlnevét. Alapértelmezés szerint a folyamat a billentyűzetről szerzi be a bemenetet.
Type: | String |
Aliases: | RSI |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RedirectStandardOutput
Megadja a fájlt. Ez a parancsmag elküldi a folyamat által létrehozott kimenetet egy ön által megadott fájlnak. Adja meg az elérési utat és a fájlnevet. Alapértelmezés szerint a kimenet megjelenik a konzolon.
Type: | String |
Aliases: | RSO |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseNewEnvironment
Azt jelzi, hogy ez a parancsmag a folyamathoz megadott új környezeti változókat használja. Alapértelmezés szerint az elindított folyamat a szülőfolyamattól örökölt környezeti változókkal fut.
Windows rendszeren a UseNewEnvironment használatakor az új folyamat csak a gép hatóköréhez definiált alapértelmezett környezeti változókat tartalmazza. Ennek a mellékhatása a $env:USERNAME
SYSTEM értékre van állítva. A felhasználói hatókör egyik változója sem szerepel a hatókörben.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Verb
Megadja, hogy a parancsmag mikor indítja el a folyamatot. A rendelkezésre álló műveleteket a folyamatban futó fájl fájlnévkiterjesztése határozza meg.
Az alábbi táblázat néhány gyakori folyamatfájltípus parancsait mutatja be.
Fájltípus | Parancsok |
---|---|
.cmd | Edit , Open , Print , RunAs , RunAsUser |
.exe | Open , RunAs , RunAsUser |
.txt | Open , Print , PrintTo |
.Wav | Open , Play |
A folyamatban futó fájllal használható parancsok megkereséséhez a New-Object
parancsmaggal hozzon létre egy System.Diagnostics.ProcessStartInfo objektumot a fájlhoz. Az elérhető parancsok a ProcessStartInfo objektum Verbs tulajdonságában találhatók. Részletekért tekintse meg a példákat.
A paraméter nem vonatkozik a nem Windows rendszerű rendszerekre.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Wait
Azt jelzi, hogy ez a parancsmag megvárja, amíg a megadott folyamat és annak leszármazottai befejeződnek, mielőtt további bemenetet fogad. Ez a paraméter letiltja a parancssort, vagy megőrzi az ablakot, amíg a folyamatok be nem fejeződnek.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.
Ez a paraméter a PowerShell 6.0-ban lett bevezetve.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WindowStyle
Az új folyamathoz használt ablak állapotát adja meg. Az alapértelmezett érték Normal
.
A paraméter elfogadható értékei a következők:
Normal
Hidden
Minimized
Maximized
Ugyanabban a parancsban nem használhatja a WindowStyle és a NoNewWindow paramétereket.
A paraméter nem vonatkozik a nem Windows rendszerű rendszerekre. Ha nem Windows rendszerű rendszereken használja, soha nem kap új ablakot.
Type: | ProcessWindowStyle |
Accepted values: | Normal, Hidden, Minimized, Maximized |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WorkingDirectory
Megadja, hogy az új folyamat mely helyen induljon el.
Ha nincs megadva, a parancsmag alapértelmezés szerint a FilePath paraméterben megadott teljes helyre van beállítva. Ha a FilePath paraméter értéke nem teljes, akkor alapértelmezés szerint a hívási folyamat aktuális munkakönyvtárába kerül.
A helyettesítő karakterek nem támogatottak. Az elérési út nem tartalmazhat helyettesítő karakterként értelmezett karaktereket.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Bevitelek
None
Ehhez a parancsmaghoz nem lehet objektumokat átirányítani.
Kimenetek
None
Alapértelmezés szerint ez a parancsmag nem ad vissza kimenetet.
A PassThru paraméter használatakor ez a parancsmag egy Folyamat objektumot ad vissza.
Jegyzetek
A PowerShell a következő aliasokat tartalmazza:Start-Process
- Minden platform
saps
- Windows
start
A natív parancsok az operációs rendszerben telepített végrehajtható fájlok. Ezek a végrehajtható fájlok bármilyen parancssori felületről futtathatók, például a PowerShellből. A parancsot általában pontosan ugyanúgy futtatja, mint a vagy cmd.exe
a-benbash
. A Start-Process
parancsmag bármely natív parancs futtatására használható, de csak akkor használható, ha szabályoznia kell a parancs végrehajtásának módját.
Start-Process
A grafikus felhasználói felületi programok nem Windows-platformokon való futtatásához hasznos. Például futtassa a parancsot Start-Proces gedit
a DYNAMICS Desktop-környezetek közös grafikus szövegszerkesztőjének elindításához.
Alapértelmezés szerint Start-Process
aszinkron módon indít el egy folyamatot. A vezérlés azonnal visszakerül a PowerShellbe, még akkor is, ha az új folyamat még fut.
- A helyi rendszeren az elindított folyamat független a hívási folyamattól.
- Távoli rendszeren az új folyamat a távoli munkamenet befejezésekor, közvetlenül a
Start-Process
parancsot követően leáll. Ezért nem használhatóStart-Process
olyan távoli munkamenetben, amely arra számít, hogy az elindított folyamat túllépi a munkamenetet.
Ha távoli munkamenetben kell használnia Start-Process
, hívja meg a Wait paraméterrel. Vagy más módszerekkel is létrehozhat egy új folyamatot a távoli rendszeren.
A Wait paraméter használatakor megvárja, Start-Process
amíg a folyamatfa (a folyamat és annak összes leszármazottja) kilép, mielőtt visszatér az irányításhoz. Ez eltér a Wait-Process
parancsmag viselkedésétől, amely csak a megadott folyamatok kilépésére vár.
Windows rendszeren a leggyakoribb használati eset Start-Process
az, ha a Wait paraméter használatával blokkolja az előrehaladást, amíg az új folyamat ki nem lép. Nem Windows rendszeren erre ritkán van szükség, mivel a parancssori alkalmazások alapértelmezett viselkedése egyenértékű a következőel Start-Process -Wait
: .
Ez a parancsmag a System.Diagnostics.Process osztály Start metódusával van implementálva. A metódussal kapcsolatos további információkért lásd: Process.Start Metódus.
Kapcsolódó hivatkozások
Visszajelzés
Visszajelzés küldése és megtekintése a következőhöz: