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ó: $LASTEXITCODE
about_Automatic_Variables.
A parancsprogram-megszakítási hiba esetén a kilépési kód a következőhöz -Command
1
hasonlóan van beállítva: . A művelettel -Command
ellenté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.exe
nincs 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.exe
való 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 1
kivé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ó: $LASTEXITCODE
about_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éhezpwsh
. Ehhez emelt szintű jogosultságokra van szükség a szerkesztéshez.
- Ez az elérési út általában hasonló
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ő.