about_Pwsh

Rövid leírás

A parancs-line felületének pwsh használatát ismerteti. Megjeleníti a parancs-line paramétereit, és leírja a szintaxist.

Hosszú leírás

Szintaxis

Usage: pwsh[.exe]
    [-Login]
    [[-File] <filePath> [args]]
    [-Command { - | <script-block> [-args <arg-array>]
                  | <string> [<CommandParameters>] } ]
    [-ConfigurationFile <filePath>]
    [-ConfigurationName <string>]
    [-CustomPipeName <string>]
    [-EncodedCommand <Base64EncodedCommand>]
    [-ExecutionPolicy <ExecutionPolicy>]
    [-InputFormat {Text | XML}]
    [-Interactive]
    [-MTA]
    [-NoExit]
    [-NoLogo]
    [-NonInteractive]
    [-NoProfile]
    [-NoProfileLoadTime]
    [-OutputFormat {Text | XML}]
    [-SettingsFile <filePath>]
    [-SSHServerMode]
    [-STA]
    [-Version]
    [-WindowStyle <style>]
    [-WorkingDirectory <directoryPath>]

pwsh[.exe] -h | -Help | -? | /?

Paraméterek

Minden paraméter megkülönbözteti a kis- és-inagybetűket.

-File | -f

Ha a értéke File , -a parancs szövege a standard bemenetből lesz beolvasva. Az átirányított standard bemenet nélkül történő futtatás pwsh -File - normál munkamenetet indít. Ez megegyezik azzal, hogy egyáltalán nem adja meg a File paramétert.

Ez az alapértelmezett paraméter, ha nincsenek paraméterek, de az értékek megtalálhatók a parancssorban. A megadott szkript a helyi hatókörben (dot-sourced) fut, így a szkript által létrehozott függvények és változók elérhetők az aktuális munkamenetben. Adja meg a szkriptfájlt és az esetleges paramétereket. A fájlnak kell lennie a parancs utolsó paraméterének, mert a Fájl paraméter neve után beírt összes karaktert a szkriptfájl-útvonalként, majd a szkriptparaméterekként értelmezi a rendszer.

A szkriptek kapcsolóparamétereit általában a rendszer tartalmazza vagy kihagyja. A következő parancs például a Get-Script.ps1 szkriptfájl All paraméterét használja: -File .\Get-Script.ps1 -All

Ritka esetekben előfordulhat, hogy logikai értéket kell megadnia egy kapcsolóparaméterhez. Ha logikai értéket szeretne megadni egy kapcsolóparaméterhez a Fájl paraméter értékében, használja a paramétert, amelyet általában közvetlenül kettőspont és logikai érték követ, például a következő: -File .\Get-Script.ps1 -All:$False.

A szkriptnek átadott paramétereket a rendszer literális sztringekként adja át, miután az aktuális rendszerhéj értelmezte. Ha például egy cmd.exe környezeti változó értékét szeretné megadni, használja a szintaxist cmd.exe : pwsh -File .\test.ps1 -TestParam %windir%

Ezzel szemben az eredmények futtatása pwsh -File .\test.ps1 -TestParam $env:windir a szkriptben cmd.exe a literális sztringet $env:windir kapja, mert nincs különleges jelentése az aktuális cmd.exe rendszerhéjnak. A $env:windir környezeti változó hivatkozási stílusa a Command paraméterben használható, mivel powerShell-kódként van értelmezve.

Hasonlóképpen, ha ugyanazt a parancsot egy Batch-szkriptből szeretné végrehajtani, akkor az aktuális végrehajtási könyvtár helyett .\ vagy $PSScriptRoot helyett a következőt kell használnia%~dp0: pwsh -File %~dp0test.ps1 -TestParam %windir%. Ha ehelyett a parancsot használja .\test.ps1, a PowerShell hibát jelez, mert nem találja a literális elérési utat .\test.ps1

Megjegyzés

A Fájl paraméter nem támogatja a szkripteket olyan paraméter használatával, amely argumentumértékek tömbjére számít. Ez sajnos azt korlátozza, hogy a natív parancsok hogyan kapják meg az argumentumértékeket. Ha natív végrehajtható fájlt (például powershell vagy pwsh) hív meg, az nem tudja, hogy mi a teendő egy tömbbel, ezért sztringként lesz átadva.

Amikor a szkriptfájl egy exit paranccsal leáll, a folyamat kilépési kódja a paranccsal exit használt numerikus argumentumra van állítva. Normál leállítás esetén a kilépési kód mindig 0.

További információ: $LASTEXITCODEabout_Automatic_Variables.

A parancsprogram-megszakítási hiba esetén a kilépési kód a következőhöz -Command1hasonlóan van beállítva: . A művelettel -Commandellentétben azonban, ha a végrehajtás a Ctrl+C billentyűvel megszakad, a kilépési kód a következő 0: .

Megjegyzés

A PowerShell 7.2-ről a Fájl paraméter csak Windows rendszeren fogad .ps1 fájlokat. Ha egy másik fájltípust ad meg, hibaüzenet jelenik meg. Ez a viselkedés Windows-specifikus. Más platformokon a PowerShell más fájltípusokat próbál futtatni.

-Command | -c

A megadott parancsokat (és paramétereket) úgy hajtja végre, mintha be lettek volna adva a PowerShell parancssorában, majd kilép, kivéve, ha a NoExit paraméter meg van adva.

A Command értéke lehet -, szkriptblokk vagy sztring. Ha a Command értéke , -a parancs szövege a standard bemenetből lesz olvasható.

A Parancs paraméter csak akkor fogad el szkriptblokkot a végrehajtáshoz, ha felismeri a Parancsnak átadott értéket ScriptBlock-típusként . Ez csak akkor lehetséges, ha egy másik PowerShell-gazdagépről fut pwsh . A ScriptBlock típusa szerepelhet egy meglévő változóban, amelyet egy kifejezésből ad vissza, vagy a PowerShell-gazdagép a kapcsos zárójelek{} közé () foglalt literális szkriptblokkként elemez, mielőtt átkerül a következőnek pwsh: .

pwsh -Command {Get-WinEvent -LogName security}

A fájlban cmd.exenincs olyan, hogy szkriptblokk (vagy ScriptBlock típus), így a Parancsnak átadott érték mindig egy sztring. Írhat szkriptblokkot a sztringen belül, de a végrehajtás helyett pontosan úgy viselkedik, mintha egy tipikus PowerShell-parancssorban írta volna be, és a szkriptblokk tartalmát visszanyomtathatja Önnek.

A parancsnak átadott sztring továbbra is PowerShell-kódként fut, ezért a parancsprogram blokkkapcsos zárójelei gyakran nem szükségesek először a parancsból cmd.exevaló futtatáskor. Egy sztringben definiált beágyazott szkriptblokk végrehajtásához a hívási operátor& használható:

pwsh -Command "& {Get-WinEvent -LogName security}"

Ha a Command értéke egy sztring, a parancsnak a pwsh utolsó paraméterének kell lennie, mert az azt követő összes argumentumot a parancs végrehajtása során értelmezi a rendszer.

Ha egy meglévő PowerShell-munkamenetből hívja meg a rendszer, az eredményeket a rendszer deszerializált XML-objektumként, nem élő objektumként adja vissza a szülőhéjnak. Más rendszerhéjak esetén a rendszer sztringként adja vissza az eredményeket.

Ha a Command értéke , -a parancs szövege a standard bemenetből lesz olvasható. A standard bemenetet a Command paraméter standard bemenettel való használatakor kell átirányítania. Például:

@'
"in"

"hi" |
  % { "$_ there" }

"out"
'@ | powershell -NoProfile -Command -

Ez a példa a következő kimenetet hozza létre:

in
hi there
out

A folyamat kilépési kódját a szkriptblokk utolsó (végrehajtott) parancsának állapota határozza meg. A kilépési kód az, 0 amikor $? van $true vagy 1 mikor $? van $false. Ha az utolsó parancs egy külső program vagy egy Olyan PowerShell-szkript, amely explicit módon beállít egy kilépési kódot a vagy 1kivételével0, akkor a kilépési kód a folyamat kilépési kódjára 1 lesz konvertálva. Az adott kilépési kód megőrzéséhez adja hozzá exit $LASTEXITCODE a parancssztringet vagy a szkriptblokkot.

További információ: $LASTEXITCODEabout_Automatic_Variables.

Hasonlóképpen, az 1 értéket akkor adja vissza a rendszer, ha egy szkriptvégzési (runspace-terminating) hiba ( például a throw vagy -ErrorAction Stop) lép fel, vagy ha a végrehajtás megszakad a Ctrl+C billentyűkombinációval.

-ConfigurationName | -config

Megadja azt a konfigurációs végpontot, amelyen a PowerShell fut. Ez lehet bármely, a helyi gépen regisztrált végpont, beleértve az alapértelmezett PowerShell-remoting végpontokat vagy egy adott felhasználói szerepkör-képességekkel rendelkező egyéni végpontot.

Például: pwsh -ConfigurationName AdminRoles

-ConfigurationFile

Megadja a munkamenet-konfiguráció (.pssc) fájl elérési útját. A konfigurációs fájlban található konfiguráció a PowerShell-munkamenetre lesz alkalmazva.

Például: pwsh -ConfigurationFile "C:\ProgramData\PowerShell\MyConfig.pssc"

-CustomPipeName

Megadja a hibakereséshez és más folyamatközi kommunikációhoz használt további IPC-kiszolgáló (névvel ellátott cső) nevét. Ez kiszámítható mechanizmust kínál a más PowerShell-példányokhoz való csatlakozáshoz. Általában a CustomPipeName paraméterrel használják a következőn: Enter-PSHostProcess.

Ezt a paramétert a PowerShell 6.2-ben vezettük be.

Például:

# PowerShell instance 1
pwsh -CustomPipeName mydebugpipe
# PowerShell instance 2
Enter-PSHostProcess -CustomPipeName mydebugpipe

-EncodedCommand | -e | -ec

Egy parancs Base64-encoded sztringverzióját fogadja el. Ezzel a paramétersel olyan parancsokat küldhet a PowerShellbe, amelyek összetett, beágyazott idézőjegyzést igényelnek. A Base64-reprezentációnak UTF-16LE kódolású sztringnek kell lennie.

Például:

$command = 'dir "c:\program files" '
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
pwsh -encodedcommand $encodedCommand

-ExecutionPolicy | -ex | -ep

Beállítja az aktuális munkamenet alapértelmezett végrehajtási szabályzatát, és menti azt a $env:PSExecutionPolicyPreference környezeti változóba. Ez a paraméter nem módosítja az állandó módon konfigurált végrehajtási szabályzatokat.

Ez a paraméter csak Windows rendszerű számítógépekre vonatkozik. A $env:PSExecutionPolicyPreference környezeti változó nem létezik nem Windows-platformokon.

-InputFormat | -inp | -if

A PowerShellbe küldött adatok formátumát ismerteti. Az érvényes értékek a "Text" (szöveges sztringek) vagy az "XML" (szerializált CLIXML-formátum).

-Interactive | -i

Interaktív üzenet megjelenítése a felhasználónak. Inverz neminteraktív paraméter esetén.

-Login | -l

Linux és macOS rendszeren a PowerShellt bejelentkezési rendszerhéjként indítja el, és a /bin/sh használatával hajtja végre az olyan bejelentkezési profilokat, mint az /etc/profile és a ~/.profile. Windows rendszeren ez a kapcsoló semmit sem tesz.

Fontos

Ennek a paraméternek először a PowerShell bejelentkezési felületként való elindításához kell érkeznie. Ha ezt a paramétert egy másik pozícióban adja át, a rendszer figyelmen kívül hagyja.

Bejelentkezési felületként való beállítás pwsh UNIX-like operációs rendszereken:

  • Ellenőrizze, hogy a teljes abszolút elérési út pwsh szerepel-e a listában /etc/shells

    • Ez az elérési út általában hasonló /usr/bin/pwsh Linux /usr/local/bin/pwsh vagy macOS rendszeren
    • Bizonyos telepítési módszerekkel ezt a bejegyzést a rendszer automatikusan hozzáadja a telepítéskor
    • Ha pwsh nincs megadva a fájlban /etc/shells, használjon szerkesztőt az elérési út utolsó sorhoz való hozzáfűzéséhez pwsh . Ehhez emelt szintű jogosultságokra van szükség a szerkesztéshez.
  • A chsh segédprogrammal állítsa az aktuális felhasználó rendszerhéját a következőre pwsh:

    chsh -s /usr/bin/pwsh
    

Figyelmeztetés

A bejelentkezési felületként való beállítás pwsh jelenleg nem támogatott a Linuxos Windows-alrendszer (WSL) esetén, és ha megkísérli beállítani pwsh a bejelentkezési felületként, előfordulhat, hogy nem tudja interaktívan elindítani a WSL-t.

-MTA

Indítsa el a PowerShellt egy többszálú apartman használatával. Ez a kapcsoló csak Windows rendszeren érhető el.

-NoExit | -noe

Indítási parancsok futtatása után nem lép ki.

Például: pwsh -NoExit -Command Get-Date

-NoLogo | -nol

Elrejti a szalagcímet az interaktív munkamenetek indításakor.

-NonInteractive | -noni

Ezzel a kapcsolóval olyan munkameneteket hozhat létre, amelyekhez nincs szükség felhasználói bevitelre. Ez ütemezett tevékenységekben vagy CI/CD-folyamatokban futó szkriptek esetében hasznos. Az interaktív funkciók , például Read-Host a megerősítési kérések vagy hasonlók használatára tett kísérletek a lelógás helyett az utasítások leállítását eredményezik.

-NoProfile | -nop

Nem tölti be a PowerShell-profilokat.

-NoProfileLoadTime

Elrejti a PowerShell-profil indításkor megjelenő betöltési idejét, ha a betöltési idő meghaladja az 500 ezredmásodpercet.

-OutputFormat | -o | -of

Meghatározza, hogy a PowerShell kimenete hogyan legyen formázva. Az érvényes értékek a következők: "Szöveg" (szöveges sztringek) vagy "XML" (szerializált CLIXML-formátum).

Például: pwsh -o XML -c Get-Date

Amikor egy PowerShell-munkamenetben meghívja, a deszerializált objektumokat kimenetként, meglehetősen egyszerű sztringekként kapja meg. Ha más rendszerhéjakból hív meg, a kimenet a CLIXML-szövegként formázott sztringadatokból áll.

-SettingsFile | -settings

Felülbírálja a munkamenet rendszer-wide-beállításfájlját powershell.config.json . Alapértelmezés szerint a rendszer-wide beállításai a powershell.config.json könyvtárban vannak beolvasva $PSHOME .

Vegye figyelembe, hogy ezeket a beállításokat az argumentum által -ConfigurationName megadott végpont nem használja.

Például: pwsh -SettingsFile c:\myproject\powershell.config.json

-SSHServerMode | -sshs

A PowerShell SSH-alrendszerként való futtatásához sshd_config használatos. Más használatra nem szánták vagy nem támogatják.

-STA

Indítsa el a PowerShellt egy egyszálas apartman használatával. Ez az alapértelmezett beállítás. Ez a kapcsoló csak a Windows platformon érhető el.

-Version | -v

Megjeleníti a PowerShell verzióját. A rendszer figyelmen kívül hagyja a további paramétereket.

-WindowStyle | -w

Beállítja a munkamenet ablakstílusát. Az érvényes értékek a Következők: Normál, Kis méretű, Teljes és Rejtett.

-WorkingDirectory | -wd

Beállítja a kezdeti munkakönyvtárat az indításkor történő végrehajtással. Bármely érvényes PowerShell-fájl elérési útja támogatott.

A PowerShell kezdőkönyvtárban való elindításához használja a következőt: pwsh -WorkingDirectory ~

-Help, -?, /?

A súgójának megjelenítése a következőhöz: pwsh. Ha pwsh-parancsot ír be a PowerShellben, a parancsparamétereket ne perjellel/ (), hanem kötőjellel (-) írja elő.