Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
pwshteljes elérési útja szerepel-e a/etc/shells- Ez az elérési út általában olyan, mint a linuxos
/usr/bin/pwshvagy 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
pwshnincs jelen/etc/shells, egy szerkesztő segítségével fűzze hozzá az utolsó sorpwshelérési útját. Ehhez emelt szintű jogosultságokra van szükség a szerkesztéshez.
- Ez az elérési út általában olyan, mint a linuxos
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 (/).