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.exevagy 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:USERNAMESYSTEM é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.

Process

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.exea-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-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. 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.