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 parancsfá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éterekkel Start-Process megadhatja a beállításokat, például betölthet egy felhasználói profilt, elindíthatja a folyamatot egy új ablakban, vagy használhat alternatív hitelesítő adatokat.

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: Új fájlba rendezési folyamat indítása

Ez a példa elindít egy folyamatot, amely rendezi a TestSort.txt fájl elemeit, és visszaadja a Sorted.txt fájlok rendezett elemeit. A rendszer minden hibát a SortError.txt fájlba ír. A UseNewEnvironment paraméter azt adja meg, hogy a folyamat a saját környezeti változóival fut.

$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 PowerShellt a Futtatás rendszergazdaként beállítással indítja el.

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 folyamatok indításakor használható műveleteket. Az elérhető műveleteket 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élda egy New-ObjectSystem.Diagnostics.ProcessStartInfo objektumot hoz létre a PowerShell-folyamatban futó fájlhoz powershell.exe. A ProcessStartInfo objektum Verbs tulajdonsága azt mutatja, hogy a Megnyitás és RunAs az igék parancsot használhatja fájlokat futtató .exe folyamatokkal powershell.exevagy folyamatokkal.

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 futtatva Start-Process -Verb RunAs elindíthat egy folyamatot emelt szintű engedélyekkel. Ez emeli az aktuális felhasználó környezetét. A hitelesítőadat-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 Ig 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 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 felülettől függetlenül fut. 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 PowerShell egy háttérpéldányát Linux rendszeren, amely még az indítási munkamenet bezárása után is életben marad. A nohup parancs fájlban gyűjti a nohup.out 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 nohup férfi oldalán talál.

Paraméterek

-ArgumentList

Paramétereket vagy paraméterértékeket ad meg, amelyeket a parancsmag a folyamat indításakor használ. Az argumentumok fogadhatók el egyetlen sztringként, 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, azokat idézőjelek között kell megadni. További információ: about_Quoting_Rules.

A legjobb eredmény érdekében egyetlen Argumentumlista értéket használjon, amely az összes argumentumot és a szükséges idézőjelkarakterek mindegyikét tartalmazza.

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 rendelkezik a művelet végrehajtásához szükséges engedéllyel. 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ó pedig SecureStringként van tárolva.

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 választható 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 nevét (például egy .txt vagy .doc egy fájlt). Ez a paraméter kötelező.

Ha csak egy fájlnevet ad meg, 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 nincs hatással a PowerShell-profilra. 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. 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

Fájl megadása. 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

Fájl megadása. Ez a parancsmag beolvassa a bemenetet a megadott fájlból. 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

Fájl megadása. 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 az a mellékhatása, hogy a $env:USERNAMErendszer a SYSTEM értékre van állítva. A felhasználói hatókör egyik változója sem szerepel benne.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Verb

Megadja a parancsmag folyamatának indításakor használandó parancsot. 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ájl-típushoz tartozó műveleteket mutatja be.

Fájltípus Parancsok
.cmd Edit, Open, Print, RunAs, RunAsUser
.exe Open, RunAsUser, RunAsUser
.txt Megnyitás, Nyomtatás, Nyomtatás
.wav Megnyitás, Lejátszás

A folyamatban futó fájllal használható műveletek megkereséséhez a New-Object parancsmaggal hozzon létre egy System.Diagnostics.ProcessStartInfo objektumot a fájlhoz. Az elérhető műveletek 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 a megadott folyamatot és annak leszármazottait, mielőtt további bemenetet fogad. Ez a paraméter letiltja a parancssort, vagy megőrzi az ablakot, amíg a folyamatok befejező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.

Ezt a paramétert a PowerShell 6.0-ban vezettük be.

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

Itt adhatja meg, hogy az új folyamat mely helyen induljon el. Az alapértelmezett beállítás az elindítandó végrehajtható fájl vagy dokumentum helye. A helyettesítő karakterek nem támogatottak. Az elérési út nem tartalmazhat helyettesítő karakterekként értelmezett karaktereket.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

None

Ehhez a parancsmaghoz nem adhatja át a bemenetet.

Kimenetek

None, System.Diagnostics.Process

Ez a parancsmag létrehoz egy System.Diagnostics.Process objektumot, ha megadja a PassThru paramétert. Ellenkező esetben ez a parancsmag nem ad vissza kimenetet.

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 következőben bash : vagy cmd.exe. A Start-Process parancsmag bármilyen 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. Futtassa Start-Proces gedit például a GNOME Desktop-környezetek közös grafikus szövegszerkesztőjének elindításához.

Alapértelmezés szerint Start-Processaszinkron 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. Másik lehetőségként 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 visszavennénk az irányítást. 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 a Várakozás paraméter használata a folyamat előrehaladásának blokkolására az új folyamat bezárásáig. Nem Windows rendszeren erre ritkán van szükség, mivel a parancssori alkalmazások alapértelmezett viselkedése egyenértékű.Start-Process -Wait

Ez a parancsmag a System.Diagnostics.Process osztály Start metódusával van implementálva. További információ erről a metódusról: Process.Start Metódus.