about_Pwsh

Rövid leírás

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

Hosszú leírás

A PowerShell 5.1-Windows parancsával-line beállításaival kapcsolatos információkért lásd: about_PowerShell_exe.

Szemantika

Usage: pwsh[.exe]
    [-Login]
    [[-File] <filePath> [args]]
    [-Command { - | <script-block> [-args <arg-array>]
                  | <string> [<CommandParameters>] } ]
    [[-CommandWithArgs <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 kis- és nagybetűket-inem érzékeny.

-File | -f

A Fájl értéke lehet - vagy egy fájlútvonal és választható paraméterek. Ha a Fájl értéke -, akkor a parancsok a standard bemenetből lesznek beolvasva.

Ez az alapértelmezett paraméter, ha nincsenek paraméterek, de az értékek a parancssorban találhatók. A megadott szkript az új munkamenet helyi hatókörében (dot-sourced) fut, hogy a szkript által létrehozott függvények és változók elérhetők legyenek az új munkamenetben. Adja meg a szkriptfájlt és a paramétereket. A parancsban a fájlnak kell lennie az utolsó paraméternek, mert a Fájl paraméter neve után beírt összes karaktert a szkriptfájlként értelmezi a rendszer, amelyet a szkriptparaméterek követnek.

A szkript paraméterei általában [switch] belefoglalásra vagy kihagyásra kerülnek. A következő parancs például a szkriptfájl Get-Script.ps1 paraméterét használja: -File .\Get-Script.ps1 -All

Ritkán előfordulhat, hogy logikai értéket kell megadnia egy [switch] paraméterhez. Ha logikai értéket szeretne megadni egy [switch] paraméterhez a Fájl paraméter értékében, használja a normálisan követett paramétert egy kettősponttal és a logikai értékkel, például a következővel: -File .\Get-Script.ps1 -All:$false

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

Ezzel szemben a pwsh -File .\test.ps1 -TestParam $Env:windircmd.exe futtatása azt eredményezi, hogy a szkript a literális sztringet $Env:windir kapja, mert nincs különleges jelentése az aktuális cmd.exe rendszerhéjnak. A környezeti változók $Env:windir stílusa használható egy Command paraméterben, mivel a rendszer PowerShell-kódként értelmezi.

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

Jegyzet

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 hív meg (például powershell vagy pwsh), az nem tudja, mit kell tennie egy tömbhöz, ezért sztringként lesz átadva.

Ha a Fájl értéke -, akkor a parancsok a standard bemenetből lesznek beolvasva. A pwsh -File - átirányítás nélküli standard bemenet nélkül történő futtatása rendszeres munkamenetet indít el. Ez megegyezik azzal, hogy egyáltalán nem adja meg a File paramétert. A standard bemenetről való olvasáskor a bemeneti utasítások egyszerre egy utasítást hajtanak végre, mintha a PowerShell parancssorában lettek volna begépelve. Ha egy utasítás nem értelmezi megfelelően az utasítást, a rendszer nem hajtja végre az utasítást. A folyamat kilépési kódját a bemeneten belüli utolsó (végrehajtott) parancs állapota határozza meg. Normál leállítás esetén a kilépési kód mindig 0. Amikor a szkriptfájl egy exit paranccsal leáll, a folyamat kilépési kódja a exit paranccsal használt numerikus argumentumra van állítva.

A -Command-hez hasonlóan, amikor szkript-végződési hiba történik, a kilépési kód 1van beállítva. A -Commandellentétben azonban a végrehajtás Ctrl+C a kilépési kód 0. További információ: $LASTEXITCODE a about_Automatic_Variables.

Jegyzet

A PowerShell 7.2-ben a File paraméter csak .ps1 fájlokat fogad el Windows. 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 Parancs értéke lehet -szkriptblokk vagy sztring. Ha parancs é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 lehetséges, ha egy másik PowerShell-gazdagépről futtat pwsh. A ScriptBlock típusa szerepelhet egy meglévő változóban, amelyet egy kifejezésből ad vissza, vagy a PowerShell-gazdagép literális szkriptblokkként értelmezi, amely kapcsos zárójelekben ({}) van megadva, mielőtt a rendszer átadta őket.pwsh

pwsh -Command {Get-WinEvent -LogName Security}

Ebben cmd.exeaz esetben nincs olyan, hogy szkriptblokk (vagy ScriptBlock-típus ), ezért a Parancsnak átadott érték mindig egy sztring. A szkriptblokkot a sztringen belül is megírhatja, de a végrehajtás helyett ugyanúgy viselkedik, mintha egy tipikus PowerShell-parancssorba írta volna, és a szkriptblokk tartalmát visszanyomtathatja Önnek.

A parancsnak átadott sztring továbbra is PowerShell-kódként fut, így a szkriptblokk kapcsos zárójelei általában nem szükségesek az első helyen a futtatáskor cmd.exe. 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 parancs értéke sztring, akkor parancs kell lennie a pwsh utolsó paraméterének, mivel az azt követő összes argumentumot a parancs végrehajtásának részeként értelmezi a rendszer.

Ha egy meglévő PowerShell-munkamenetből hívjuk meg, 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 sztringekként adja vissza az eredményeket.

Ha parancs értéke -, a parancsok a standard bemenetből lesznek beolvasva. A standard bemenetet a command paraméter standard bemenettel való használatakor kell átirányítania. Például:

@'
"in"

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

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

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

in
hi there
out

A standard bemenetről való olvasáskor a bemenetet a rendszer egyszerre egy utasítással elemzi és hajtja végre, mintha a PowerShell parancssorában gépelték volna be őket. Ha a bemeneti kód nem elemez megfelelően, a rendszer nem hajtja végre az utasítást. Ha nem használja a -NoExit paramétert, a PowerShell-munkamenet akkor lép ki, ha nincs több bemenet a standard bemenetből való olvasáshoz.

A folyamat kilépési kódját a bemeneten belüli utolsó (végrehajtott) parancs állapota határozza meg. A kilépési kód akkor 0, ha $?$true vagy 1$?$false. Ha az utolsó parancs egy külső program vagy egy Olyan PowerShell-szkript, amely explicit módon állít be egy kilépési kódot 0 vagy 1kivételével, a kilépési kód 1 lesz konvertálva a folyamat kilépési kódjára. Hasonlóképpen, az 1 értéket akkor adja vissza a rendszer, ha egy szkript-megszakítási (runspace-terminating) hiba, például egy throw vagy -ErrorAction Stop, vagy ha a végrehajtás megszakad Ctrl+C.

Az adott kilépési kód megőrzéséhez adja hozzá exit $LASTEXITCODE a parancssztringet vagy a szkriptblokkot. További információ: $LASTEXITCODE a about_Automatic_Variables.

-CommandWithArgs | -cwa

Ez a 7.4-ben hozzáadott kísérleti funkció általánossá vált a PowerShell 7.5-preview.5-ben.

Egy PowerShell-parancs végrehajtása argumentumokkal. A -Commandellentétben ez a paraméter feltölti a parancs által használható$argsn változó -i.

Az első sztring a parancs. A szóközök által elválasztott további sztringek az argumentumok.

Például:

pwsh -CommandWithArgs '$args | % { "arg: $_" }' arg1 arg2

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

arg: arg1
arg: arg2

Jegyzet

idézőjelekkel történő argumentum-elemzés esetén a példa sikertelen lesz, ha cmd.exe vagy powershell.exe. Ezekből való futtatáshoz használhatja a

REM Quoting required when run from cmd.exe
pwsh -CommandWithArgs "$args | % { ""arg: $_"" }" arg1 arg2
# Quoting required when run from powershell.exe
pwsh -CommandWithArgs '"$args | % { ""arg: $_"" }"' arg1 arg2

-ConfigurationName | -config

Megadja azt a konfigurációs végpontot, amelyben 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 egyéni végpontot, amely adott felhasználói szerepkör-képességekkel rendelkezik.

Példa: 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élda: 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ó (elnevezett cső) nevét. Ez kiszámítható mechanizmust kínál más PowerShell-példányokhoz való csatlakozáshoz. Általában a CustomPipeName paraméterrel használják Enter-PSHostProcess.

Ez a paraméter a PowerShell 6.2-ben lett bevezetve.

Például:

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

-EncodedCommand | -e | -ec

A Base64-eparancs kódolt sztringverzióját fogadja el. Ezzel a paramétersel olyan parancsokat küldhet a PowerShellbe, amelyek összetett, beágyazott idézeteket igényelnek. A Base64-ábrázolásnak 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 a $Env:PSExecutionPolicyPreference környezeti változóban. 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 számítógépekre vonatkozik. A nem Windows platformokon a paraméter és a megadott érték figyelmen kívül lesz hagyva.

-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

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

Fontos

Ennek a paraméternek először be kell indítania a PowerShellt bejelentkezési rendszerhéjként. Ezt a paramétert a rendszer figyelmen kívül hagyja, ha egy másik pozícióban adja át.

pwsh beállítása bejelentkezési felületként a Unix-like operációs rendszereken:

  • Ellenőrizze, hogy a pwsh teljes elérési útja szerepel-e a /etc/shells

    • Ez az elérési út általában olyan, mint a linuxos /usr/bin/pwsh vagy a macOS-en /usr/local/bin/pwsh
    • Néhány telepítési módszer esetén ezt a bejegyzést a rendszer automatikusan hozzáadja a telepítéskor
    • Ha pwsh nincs jelen /etc/shells, egy szerkesztő segítségével fűzze hozzá az utolsó sor pwsh elérési útját. Ehhez emelt szintű jogosultságokra van szükség a szerkesztéshez.
  • A chsh segédprogrammal állítsa az aktuális felhasználói felületét pwsh:

    chsh -s /usr/bin/pwsh
    

Figyelmeztetés

A pwsh beállítása, mivel a bejelentkezési rendszerhéj jelenleg nem támogatott Linuxos Windows-alrendszer (WSL), és a pwsh bejelentkezési rendszerhéjként való beállításának megkísérlése miatt előfordulhat, hogy nem lehet interaktívan elindítani a WSL-t.

-MTA

Indítsa el a PowerShellt egy többszálas lakással. Ez a kapcsoló csak Windows érhető el. Ha ezt a paramétert nem Windows platformokon használja, hibaüzenet jelenik meg.

-NoExit | -noe

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

Példa: pwsh -NoExit -Command Get-Date

-NoLogo | -nol

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

-NonInteractive | -noni

Ez a kapcsoló olyan munkamenetek létrehozására szolgál, amelyekhez nem szükséges felhasználói bevitel. Ez az ütemezett feladatokban vagy CI/CD-folyamatokban futó szkriptek esetében hasznos. Az interaktív funkciók( például Read-Host vagy megerősítési kérések) használatára tett kísérletek az utasítások leállása helyett hibákat eredményeznek.

-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 "Text" (szöveges sztringek) vagy az "XML" (szerializált CLIXML formátum).

Példa: pwsh -o XML -c Get-Date

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

-SettingsFile | -settings

Felülbírálja a rendszer-wide powershell.config.json beállításfájlt a munkamenethez. A rendszer alapértelmezés szerint-wide-beállításokat olvas be a powershell.config.json könyvtár $PSHOME.

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

Példa: pwsh -SettingsFile C:\myproject\powershell.config.json

-SSHServerMode | -sshs

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

-STA

Indítsa el a PowerShellt egy egyszálas apartman használatával. Ez az alapértelmezett érték. Ez a kapcsoló csak a Windows platformon érhető el. Ha ezt a paramétert nem Windows platformokon használja, hibaüzenet jelenik meg.

-Version | -v

Megjeleníti a végrehajtható PowerShell-verzió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 Normál, a Kis méretű, a Teljes és a Rejtett értékek. Ez a paraméter csak a Windows vonatkozik. Ha ezt a paramétert nem Windows platformokon használja, hibaüzenet jelenik meg.

-WorkingDirectory | -wd | -wO

A kezdeti munkakönyvtár beállítása indításkor történő végrehajtással. Minden é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 pwshsúgójának megjelenítése. Ha pwsh-parancsot ír be a PowerShellben, a parancs paramétereit kötőjellel (-) kell előre felfűzni, nem pedig perjellel (/).