Aracılığıyla paylaş


about_Pwsh

Kısa açıklama

Komutpwshine arabiriminin -l nasıl kullanılacağını açıklar. ine-lparametrelerini görüntüler ve söz dizimini açıklar.

Uzun açıklama

Windows PowerShell 5.1 için komut-line seçenekleri hakkında bilgi için bkz . about_PowerShell_exe.

Sözdizimi

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 | -? | /?

Parametreler

Tüm parametreler büyük/küçük harfe-iduyarlı değildir.

-File | -f

Dosya değeri bir dosya yolu ve isteğe bağlı parametreler olabilir-. Dosya değeri ise-, komutlar standart girişten okunur.

Parametre yoksa ancak komut satırında değerler varsa, bu varsayılan parametredir. Belirtilen betik, yeni oturumun yerel kapsamında ("nokta kaynaklı") çalıştırılır, böylece betiğin oluşturduğu işlevler ve değişkenler yeni oturumda kullanılabilir. Betik dosya yolu ve parametreleri girin. Dosya parametresi adından sonra yazılan tüm karakterler betik dosya yolu ve ardından betik parametreleri olarak yorumlandığından, dosya komuttaki son parametre olmalıdır.

Genellikle, bir betiğin anahtar parametreleri dahil edilir veya atlanır. Örneğin, aşağıdaki komut betik dosyasının All parametresini Get-Script.ps1 kullanır: -File .\Get-Script.ps1 -All

Nadir durumlarda, anahtar parametresi için Boole değeri sağlamanız gerekebilir. Dosya parametresinin değerinde

Betike geçirilen parametreler, geçerli kabuk tarafından yorumlanmadan sonra değişmez dizeler olarak geçirilir. Örneğin, içindeyseniz cmd.exe ve bir ortam değişkeni değeri geçirmek istiyorsanız, söz dizimini cmd.exe kullanabilirsiniz: pwsh -File .\test.ps1 -TestParam %windir%

Buna karşılık, içinde çalıştırmak pwsh -File .\test.ps1 -TestParam $Env:windir betiğin geçerli cmd.exe kabuk için özel bir anlamı olmadığından değişmez dizeyi $Env:windir almasına neden cmd.exe olur. $Env:windir Ortam değişkeni başvurusunun stili, PowerShell kodu olarak yorumlandığı için Command parametresi içinde kullanılabilir.

Benzer şekilde, aynı komutu bir Batch betiğinden yürütmek istiyorsanız, geçerli yürütme dizinini temsil etmek için veya %~dp0 yerine .\ kullanabilirsiniz$PSScriptRoot: pwsh -File %~dp0test.ps1 -TestParam %windir%. Bunun yerine kullanırsanız .\test.ps1 , PowerShell sabit yolu bulamadığından bir hata oluşturur .\test.ps1

Not

Dosya parametresi, bağımsız değişken değerleri dizisi bekleyen bir parametre kullanarak betikleri destekleyemez. Ne yazık ki bu, yerel komutun bağımsız değişken değerlerini nasıl aldığıyla ilgili bir sınırlamadır. Yerel bir yürütülebilir dosyayı (veya gibi powershellpwsh) çağırdığınızda, diziyle ne yapacağını bilmez, bu nedenle dize olarak geçirilir.

Dosya değeri ise-, komutlar standart girişten okunur. Yeniden yönlendirilmiş standart giriş olmadan çalıştırmak pwsh -File - normal bir oturum başlatır. Bu, parametreyi hiç belirtmemeyle File aynıdır. Standart girişten okurken, giriş deyimleri PowerShell komut isteminde yazılmış gibi bir kerede bir deyim yürütülür. Bir deyim doğru ayrıştırılmıyorsa, deyimi yürütülmüyor. İşlem çıkış kodu, giriş içindeki son (yürütülen) komutun durumuna göre belirlenir. Normal sonlandırma ile çıkış kodu her zaman 0şeklindedir. Betik dosyası bir exit komutla sonlandırıldığında, işlem çıkış kodu komutuyla kullanılan sayısal bağımsız değişkene exit ayarlanır.

benzer şekilde -Command, betik sonlandırıcı bir hata oluştuğunda çıkış kodu olarak 1ayarlanır. Ancak, ile -Commandaksine, yürütme Ctrlkesildiğinde çıkış kodu olur.+ Daha fazla bilgi için bkz $LASTEXITCODE. about_Automatic_Variables.

Not

PowerShell 7.2 itibarıyla Dosya parametresi yalnızca Windows'ta dosyaları kabul eder .ps1 . Başka bir dosya türü sağlanırsa bir hata oluşur. Bu davranış Windows'a özgüdür. Diğer platformlarda PowerShell diğer dosya türlerini çalıştırmayı dener.

-Command | -c

Command değeri, bir betik bloğu veya dize olabilir-. Command değeri ise-, komut metni standart girişten okunur.

Command parametresi yalnızca Komut Bloğu türü olarak Command'ageçirilen değeri tanıyabildiğinde yürütme için bir betik bloğu kabul eder. Bu yalnızca. ScriptBlock türü var olan bir değişkende bulunabilir, bir ifadeden döndürülebilir veya PowerShell konağı tarafından küme ayraçları (){} içine alınmış bir değişmez betik bloğu olarak ayrıştırılabilirpwsh.

pwsh -Command {Get-WinEvent -LogName Security}

içinde cmd.exebetik bloğu (veya ScriptBlock türü) gibi bir şey yoktur, bu nedenle Command'a geçirilen değer her zaman bir dizedir. Dizenin içine bir betik bloğu yazabilirsiniz, ancak yürütülmek yerine, betik bloğunun içeriğini size geri yazdırarak tipik bir PowerShell isteminde yazdığınız gibi davranır.

Command'a geçirilen bir dize Hala PowerShell kodu olarak yürütülür, bu nedenle betik bloğu küme ayraçları genellikle ilk sırada çalıştırma cmd.exesırasında gerekli değildir. Bir dize içinde tanımlanan satır içi betik bloğunu yürütmek için çağrı işleci& kullanılabilir:

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

Command değeri bir dizeyse, Bunu izleyen tüm bağımsız değişkenler yürütülecek komutun bir parçası olarak yorumlandığından, Command pwsh için son parametre olmalıdır.

Mevcut bir PowerShell oturumundan çağrıldığında, sonuçlar üst kabuğa canlı nesneler olarak değil seri durumdan çıkarılmış XML nesneleri olarak döndürülür. Diğer kabuklar için sonuçlar dize olarak döndürülür.

Command değeri ise-, komutlar standart girişten okunur. Standart giriş ile Command parametresini kullanırken standart girişi yeniden yönlendirmeniz gerekir. Örneğin:

@'
"in"

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

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

Bu örnek aşağıdaki çıkışı oluşturur:

in
hi there
out

Standart girişten okurken, giriş ayrıştırılır ve PowerShell komut isteminde yazılmış gibi bir kerede bir deyim yürütülür. Giriş kodu doğru ayrıştırılmıyorsa, deyimi yürütülmüyor. Parametresini -NoExit kullanmadığınız sürece, standart girişten okunacak başka giriş olmadığında PowerShell oturumundan çıkılır.

İşlem çıkış kodu, giriş içindeki son (yürütülen) komutun durumuna göre belirlenir. Çıkış kodu olduğunda 0$?$true veya 1 olduğunda $? şeklindedir.$false Son komut veya dışında 01bir çıkış kodunu açıkça ayarlayan bir dış program veya PowerShell betiğiyse, bu çıkış kodu işlem çıkış kodu için olarak 1 dönüştürülür. Benzer şekilde, veya gibi throw bir betik sonlandırıcı (runspace-terminating) hatası oluştuğunda veya yürütme Ctrl-ErrorAction Stopkesildiğinde 1 değeri döndürülür.+

Belirli çıkış kodunu korumak için komut dizenize veya betik bloğunuza ekleyin exit $LASTEXITCODE . Daha fazla bilgi için bkz $LASTEXITCODE. about_Automatic_Variables.

-CommandWithArgs | -cwa

Bu, 7.4 sürümünde eklenen ve PowerShell 7.5-preview.5 sürümünde temel olarak kullanılan deneysel bir özelliktir.

Bağımsız değişkenlerle bir PowerShell komutu yürütür. 'nin aksine-Command, bu parametre komutu tarafından kullanılabilecek yerleşik$argsn değişkenini doldurur-i.

İlk dize komutudur. Boşlukla sınırlandırılmış ek dizeler bağımsız değişkenlerdir.

Örneğin:

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

Bu örnek aşağıdaki çıkışı oluşturur:

arg: arg1
arg: arg2

Not

Tırnak işaretleri ile bağımsız değişken ayrıştırma, veya cmd.exe'den powershell.exe çalıştırılırsa örneğin başarısız olmasına neden olur. Bunlardan çalıştırmak için

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

PowerShell'in çalıştırıldığı bir yapılandırma uç noktası belirtir. Bu, varsayılan PowerShell uzaktan iletişim uç noktaları veya belirli kullanıcı rolü özelliklerine sahip özel uç nokta dahil olmak üzere yerel makinede kayıtlı herhangi bir uç nokta olabilir.

Örnek: pwsh -ConfigurationName AdminRoles

-ConfigurationFile

Oturum yapılandırması (.pssc) dosya yolunu belirtir. Yapılandırma dosyasında yer alan yapılandırma PowerShell oturumuna uygulanır.

Örnek: pwsh -ConfigurationFile "C:\ProgramData\PowerShell\MyConfig.pssc"

-CustomPipeName

Hata ayıklama ve diğer işlemler arası iletişim için kullanılan ek bir IPC sunucusu (adlandırılmış kanal) için kullanılacak adı belirtir. Bu, diğer PowerShell örneklerine bağlanmak için öngörülebilir bir mekanizma sunar. Genellikle üzerinde CustomPipeNameEnter-PSHostProcesskullanılır.

Bu parametre PowerShell 6.2'de kullanıma sunulmuştur.

Örneğin:

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

-EncodedCommand | -e | -ec

Bir komutun Base64-encoded dize sürümünü kabul eder. Karmaşık, iç içe alıntılar gerektiren komutları PowerShell'e göndermek için bu parametreyi kullanın. Base64 gösterimi UTF-16LE kodlanmış bir dize olmalıdır.

Örneğin:

$command = 'dir "C:\Program Files" '
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
pwsh -EncodedCommand $encodedCommand

-ExecutionPolicy | -ex | -ep

Geçerli oturum için varsayılan yürütme ilkesini ayarlar ve ortam değişkenine $Env:PSExecutionPolicyPreference kaydeder. Bu parametre, kalıcı olarak yapılandırılmış yürütme ilkelerini değiştirmez.

Bu parametre yalnızca Windows bilgisayarlar için geçerlidir. Windows olmayan platformlarda parametresi ve sağlanan değer yoksayılır.

-InputFormat | -inp | -if

PowerShell'e gönderilen verilerin biçimini açıklar. Geçerli değerler "Metin" (metin dizeleri) veya "XML" (serileştirilmiş CLIXML biçimi) değerleridir.

-Interactive | -i

Kullanıcıya etkileşimli bir istem sunun. NonInteractive parametresinin tersi.

-Login | -l

Linux ve macOS'ta, /etc/profile ve ~/.profile gibi oturum açma profillerini yürütmek için /bin/sh kullanarak PowerShell'i bir oturum açma kabuğu olarak başlatır. Windows'da bu anahtar hiçbir şey yapmaz.

Önemli

PowerShell'i oturum açma kabuğu olarak başlatmak için önce bu parametre gelmelidir. Bu parametre başka bir konumda geçirilirse yoksayılır.

unixpwshike işletim sistemlerinde oturum açma kabuğu olarak -l ayarlamak için:

  • tam mutlak yolunun pwsh altında listelendiğini doğrulayın /etc/shells

    • Bu yol genellikle Linux veya /usr/bin/pwsh macOS'ta olduğu gibi /usr/local/bin/pwsh bir yoldur
    • Bazı yükleme yöntemlerinde, bu giriş yükleme zamanında otomatik olarak eklenir
    • içinde pwshyoksa/etc/shells, yolunu pwsh son satıra eklemek için bir düzenleyici kullanın. Bu, düzenlemek için yükseltilmiş ayrıcalıklar gerektirir.
  • yardımcı programını kullanın:

    chsh -s /usr/bin/pwsh
    

Uyarı

pwsh Oturum açma kabuğu şu anda Linux için Windows Alt Sistemi (WSL) üzerinde desteklenmemektedir ve burada oturum açma kabuğu olarak ayarlanma pwsh girişimi WSL'nin etkileşimli olarak başlatılamamasına neden olabilir.

-MTA

Çok iş parçacıklı bir daire kullanarak PowerShell'i başlatın. Bu anahtar yalnızca Windows'ta kullanılabilir. Bu parametrenin Windows dışı platformlarda kullanılması hatayla sonuçlanır.

-NoExit | -noe

Başlangıç komutlarını çalıştırdıktan sonra çıkmaz.

Örnek: pwsh -NoExit -Command Get-Date

-NoLogo | -nol

Etkileşimli oturumların başlangıcında başlığı gizler.

-NonInteractive | -noni

Bu anahtar, kullanıcı girişi gerektirmemesi gereken oturumlar oluşturmak için kullanılır. Bu, zamanlanmış görevlerde veya CI/CD işlem hatlarında çalışan betikler için kullanışlıdır. Veya onay istemleri gibi Read-Host etkileşimli özellikleri kullanma girişimleri, deyim sonlandırma hatalarıyla sonuçlanır.

-NoProfile | -nop

PowerShell profillerini yüklemez.

-NoProfileLoadTime

Yükleme süresi 500 milisaniyeyi aştığında başlangıçta gösterilen PowerShell profili yükleme süresi metnini gizler.

-OutputFormat | -o | -of

PowerShell çıkışının nasıl biçimlendirileceğini belirler. Geçerli değerler "Metin" (metin dizeleri) veya "XML" (serileştirilmiş CLIXML biçimi) değerleridir.

Örnek: pwsh -o XML -c Get-Date

PowerShell oturumunda çağrıldığında, seri durumdan çıkarılmış nesneleri düz dizeler yerine çıkış olarak alırsınız. Diğer kabuklardan çağrıldığında çıkış, CLIXML metni olarak biçimlendirilmiş dize verileridir.

-SettingsFile | -settings

Oturum için sistem-wide powershell.config.json ayarları dosyasını geçersiz kılar. Varsayılan olarak, sistem-wide ayarları dizinindeki dosyasından powershell.config.json$PSHOME okunur.

Bu ayarların bağımsız değişken tarafından belirtilen uç nokta tarafından -ConfigurationName kullanılmadığını unutmayın.

Örnek: pwsh -SettingsFile C:\myproject\powershell.config.json

-SSHServerMode | -sshs

PowerShell'i SSH alt sistemi olarak çalıştırmak için sshd_config kullanılır. Başka bir kullanım için tasarlanmamıştır veya desteklenmez.

-STA

Tek iş parçacıklı bir daire kullanarak PowerShell'i başlatın. Bu varsayılan seçenektir. Bu anahtar yalnızca Windows platformunda kullanılabilir. Bu parametrenin Windows dışı platformlarda kullanılması hatayla sonuçlanır.

-Version | -v

Bu PowerShell yürütülebilir dosyasının sürümünü görüntüler. Ek parametreler yoksayılır.

-WindowStyle | -w

Oturum için pencere stilini ayarlar. Geçerli değerler Normal, Simge Durumuna Küçültülmüş, Ekranı Kaplamış ve Gizli değerleridir. Bu parametre yalnızca Windows için geçerlidir. Bu parametrenin Windows dışı platformlarda kullanılması hatayla sonuçlanır.

-WorkingDirectory | -wd | -wo

Başlangıçta yürüterek ilk çalışma dizinini ayarlar. Geçerli herhangi bir PowerShell dosya yolu desteklenir.

PowerShell'i giriş dizininizde başlatmak için şunu kullanın: pwsh -WorkingDirectory ~

-Help, -?, /?

için pwshyardım görüntüler. PowerShell'de pwsh komutu yazıyorsanız, komut parametrelerini eğik çizgi () yerine kısa çizgiyle ()-/ ekleyin.