Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kısa açıklama
pwsh komutu-line arabiriminin nasıl kullanılacağını açıklar. ine parametrelerini-lkomutunu görüntüler ve söz dizimini açıklar.
Uzun açıklama
Windows PowerShell 5.1 için ine seçenekleri-lkomutu 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 harf-iduyarsızdır.
-File | -f
Dosya değeri - veya 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 Get-Script.ps1 parametresini kullanır: -File .\Get-Script.ps1 -All
Nadir durumlarda, anahtar parametresi için Boole değeri sağlamanız gerekebilir.
Dosya parametresinin değerinde switch parametresi için Boole değeri sağlamak için, parametresini normal olarak hemen ardından iki nokta üst üste ve boole değerini kullanın; örneğin: -File .\Get-Script.ps1 -All:$false.
Betike geçirilen parametreler, geçerli kabuk tarafından yorumlanmadan sonra değişmez dizeler olarak geçirilir. Örneğin, cmd.exe içindeyseniz ve bir ortam değişkeni değeri geçirmek istiyorsanız, cmd.exe söz dizimini kullanabilirsiniz: pwsh -File .\test.ps1 -TestParam %windir%
Buna karşılık, pwsh -File .\test.ps1 -TestParam $Env:windircmd.exe çalıştırmak, betiğin geçerli $Env:windir kabuğu için özel bir anlamı olmadığından sabit dize cmd.exe almasına neden olur. Ortam değişkeni başvuru $Env:windir stili, PowerShell kodu olarak yorumlandığı için Command parametresi içinde kullanılabilir.
Benzer şekilde, Batch betiğindenaynı komutu yürütmek istiyorsanız, geçerli yürütme dizinini göstermek için %~dp0 veya .\ yerine $PSScriptRoot kullanırsınız: pwsh -File %~dp0test.ps1 -TestParam %windir%. Bunun yerine .\test.ps1 kullanırsanız, 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ı (powershell veya pwshgibi) ç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önlendirilen standart giriş olmadan pwsh -File - çalıştırmak normal bir oturum başlatır. Bu, File parametresini belirtmemeyle 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. Betik dosyası bir exit komutuyla sonlandırıldığında, işlem çıkış kodu exit komutuyla kullanılan sayısal bağımsız değişkene ayarlanır.
-Commandbenzer şekilde, betik sonlandırma hatası oluştuğunda çıkış kodu 1olarak ayarlanır. Ancak, -Command'dan farklı olarak, yürütme Ctrl+. Daha fazla bilgi için bkz. $LASTEXITCODE.
Not
PowerShell 7.2 itibarıyla Dosya parametresi yalnızca Windows'ta .ps1 dosyaları kabul eder. 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 , 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'a geçirilen değeri tanıyabildiğinde yürütme için bir betik bloğu kabul eder. Bu yalnızca başka bir PowerShell konağından çalıştırılırken pwsh mümkündür.
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ılabilir.pwsh
pwsh -Command {Get-WinEvent -LogName Security}
içinde cmd.exescriptblock (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 tam olarak tipik bir PowerShell isteminde yazdığınız gibi davranır ve betik bloğunun içeriğini size geri yazdırabilir.
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 etapta komutundan cmd.exeçalıştırılırken gerekli değildir. Bir dize içinde tanımlanan satır içi betik bloğu yürütmek için çağrı işleci& kullanılabilir:
pwsh -Command "& {Get-WinEvent -LogName Security}"
Command değeri bir dizeyse, Command pwsh için son parametre olmalıdır, çünkü onu izleyen tüm bağımsız değişkenler yürütülecek komutun bir parçası olarak yorumlanı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. Mesela:
@'
"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.
-NoExit parametresini 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, 0$? olduğunda veya $true1olduğunda $?$false. Son komut, 0 veya 1dışında bir çıkış kodunu açıkça ayarlayan bir dış program veya PowerShell betiğiyse, bu çıkış kodu işlem çıkış kodu için 1 dönüştürülür. Benzer şekilde, 1 değeri throw veya -ErrorAction Stopgibi bir betik sonlandırıcı (runspace-terminating) hatası oluştuğunda veya Ctrl+Cile yürütme kesildiğinde döndürülür.
Belirli çıkış kodunu korumak için komut dizenize veya betik engellemenize ekleyin exit $LASTEXITCODE . Daha fazla bilgi için bkz. $LASTEXITCODE.
-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.
-Commandaksine, bu parametre komutu tarafından kullanılabilecek $args derlenmiş-in değişkenini doldurur.
İlk dize komutudur. Boşlukla sınırlandırılmış ek dizeler bağımsız değişkenlerdir.
Mesela:
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, cmd.exe veya powershell.exeçalıştırıldığında ö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 Enter-PSHostProcess parametresiyle kullanılır.
Bu parametre PowerShell 6.2'de kullanıma sunulmuştur.
Mesela:
# 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.
Mesela:
$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 $Env:PSExecutionPolicyPreference ortam değişkenine 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:
pwshtam mutlak yolunun/etc/shellsaltında listelendiğini doğrulayın- Bu yol genellikle Linux'ta
/usr/bin/pwshveya macOS'ta/usr/local/bin/pwshgibi bir yoldur - Bazı yükleme yöntemlerinde, bu giriş yükleme zamanında otomatik olarak eklenir
-
pwsh'de/etc/shellsyoksa, son satırdakipwshyolunu eklemek için bir düzenleyici kullanın. Bu, düzenlemek için yükseltilmiş ayrıcalıklar gerektirir.
- Bu yol genellikle Linux'ta
Geçerli kullanıcınızın kabuğunu olarak ayarlamak için
pwshyardımcı programını kullanın:chsh -s /usr/bin/pwsh
Uyarı
Oturum açma kabuğu olarak pwsh şu anda Linux için Windows Alt Sistemi'nde (WSL) desteklenmiyor ve pwsh oturum açma kabuğu olarak ayarlamaya çalışmak WSL'yi etkileşimli olarak başlatamamayla sonuçlanabilir.
-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.
Read-Host veya onay istemleri gibi etkileşimli özellikleri kullanma girişimleri, deyimin kilitlenme yerine hataları sonlandırmasına neden olur.
-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ı powershell.config.json dizinindeki $PSHOME okunur.
Bu ayarların -ConfigurationName bağımsız değişkeni tarafından belirtilen uç nokta tarafından 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. Varsayılan değer budur. 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, -?, /?
pwshiçin yardım görüntüler. PowerShell'de pwsh komutu yazıyorsanız komut parametrelerine eğik çizgi (-) yerine kısa çizgi (/) ekleyin.
PowerShell