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.
PowerShell, desteklenen tüm platformlarda özellik eşliği sağlamaya çalışır. Ancak bazı özellikler farklı davranır veya .NET Core ve platforma özgü farklılıklar nedeniyle kullanılamaz. Windows dışı platformlarda PowerShell'in birlikte çalışabilirliğini geliştirmek için başka değişiklikler yapıldı.
.NET Framework ile .NET Core karşılaştırması
Linux ve macOS üzerinde PowerShell, Microsoft Windows üzerinde tam .NET Framework'ün bir alt kümesi olan .NET Core'u kullanır. Sonuç olarak, Windows üzerinde çalışan betikler, çerçevelerdeki farklılıklar nedeniyle Windows dışı platformlarda çalışmayabilir.
.NET Core'daki değişiklikler hakkında daha fazla bilgi için, .NET Framework'ten .NET Core'a geçişteki önemli değişiklikler bölümüne bakın.
Genel Unix birlikte çalışabilirlik değişiklikleri
- Unix platformlarında yerel komut globbing desteği eklendi. Bu, joker karakterleri
ls *.txt
gibi yerel komutlarla kullanabileceğiniz anlamına gelir. -
more
işlevi Linux$PAGER
dikkate alır ve varsayılan olarakless
... - Yerel komut bağımsız değişkenleri kullanıldığında sondaki ters eğik çizgi otomatik olarak geçiştirilir.
- Unix platformlarında
NoEcho
'ı tanımak için ConsoleHost düzeltildi. - Unix'te
PATHEXT
ortam değişkeni eklemeyin. - Pakete bir
powershell
kılavuz sayfası dahildir.
Yürütme ilkesi
PowerShell, Windows dışı platformlarda çalışırken yürütme ilkelerini yoksayar.
Get-ExecutionPolicy
, Linux ve macOS üzerinde Kısıtlanmamış döndürür.
Set-ExecutionPolicy
Linux ve macOS üzerinde hiçbir şey yapmaz.
PowerShell'de büyük/küçük harf duyarlılığı
Geçmişte, PowerShell birkaç özel durum dışında tekdüzen büyük/küçük harfe duyarlı değildi. Unix benzeri işletim sistemlerinde, dosya sistemi ağırlıklı olarak büyük/küçük harfe duyarlıdır ve PowerShell, dosya sisteminin standardına bağlıdır.
- PowerShell'de bir dosya adı belirtildiğinde doğru büyük/küçük harf kullanmanız gerekir.
- Bir betik bir modülü yüklemeye çalışırsa ve modül adı doğru şekilde yazılmamışsa, modül yükleme işlemi başarısız olur. Modülce atıfta bulunulan ad, gerçek dosya adının uygun biçimiyle eşleşmezse, bu davranış mevcut betiklerle ilgili bir soruna neden olabilir.
- Dosya sistemindeki adlar büyük/küçük harfe duyarlı olsa da, dosya adlarının sekmeyle tamamlanması büyük/küçük harfe duyarlı değildir. Sekme tamamlama, büyük/küçük harfe duyarsız eşleştirme yaparak ad listesinde döngü yapar.
-
Get-Help
Unix platformlarında büyük/küçük harfe duyarsız desen eşleştirmeyi destekler. -
Import-Module
, modül adını belirlemek için dosya adıyla kullanıldığında büyük/küçük harfe duyarlı değildir.
Linux ve macOS için dosya sistemi desteği
- Cmdlet'lere verilen yollar artık eğik çizgi yönünden bağımsızdır (hem
/
hem de\
dizin ayırıcıları olarak kullanılabilir). - XDG Temel Dizin Belirtimi artık varsayılan olarak kabul edilir ve kullanılır:
- Linux/macOS profil yolu
~/.config/powershell/profile.ps1
konumunda bulunur. - Geçmiş kaydetme yolu
~/.local/share/powershell/PSReadLine/ConsoleHost_history.txt
'da bulunur. - Kullanıcı modülü yolu
~/.local/share/powershell/Modules
'da bulunmaktadır.
- Linux/macOS profil yolu
- Unix'te iki nokta karakterini içeren dosya ve klasör adları için destek.
- Komut dosyası adları veya virgül içeren tam yollar için destek.
- Gezinti cmdlet'leri için joker karakter genişletmesini engellemek için LiteralPath parametresinin ne zaman kullanıldığını algılayın.
- *nix
ls -R
ve WindowsDIR /S
yerel komutları gibi çalışacak şekildeGet-ChildItem
güncelleştirildi.Get-ChildItem
artık özyinelemeli arama sırasında karşılaşılan sembolik bağlantıları döndürür ve bu bağlantıların hedeflediği dizinlerde arama yapmaz.
.PS1 Dosya Uzantıları
Yorumlayıcının geçerli işlemde bunları nasıl yükleyip çalıştıracaklarını anlaması için PowerShell betiklerinin .ps1
bitmesi gerekir. Betikleri geçerli işlemde çalıştırmak, PowerShell için beklenen olağan davranıştır.
#!
sihirli numarasını .ps1
uzantısı olmayan bir betike ekleyebilirsiniz, ancak bu betiğin yeni bir PowerShell örneğinde çalıştırılmasına neden olur ve nesneler arasında geçiş yaparken betiğin düzgün çalışmasını engeller. Bash'ten veya diğer bir kabuktan PowerShell betiği yürütülürken bu davranış istenebilir.
Kullanımı kolay takma adlar kaldırıldı
PowerShell, Windows'ta kullanıcı kolaylığını artırmak için Linux komut isimlerine eşlenen bir diğer ad kümesi sunar. Linux ve macOS'ta, yerel yürütülebilir dosyanın bir yol belirtmeden çalışmasına izin vermek için, ls
, cp
, mv
, rm
, cat
, man
, mount
ve ps
temel komutlarının "kullanışlı takma adları" kaldırıldı.
Ağaç kesimi
MacOS'ta PowerShell, yerel os_log
API'lerini kullanarak Apple'ın birleşik günlüğe kaydetme sistemine.
Linux'ta PowerShell, yaygın bir günlük çözümü olan Syslog 'i kullanır.
İş Denetimi
Linux veya macOS üzerinde PowerShell'de Unix stili iş denetimi desteği yoktur.
fg
ve bg
komutları kullanılamaz. Ancak, tüm platformlarda çalışan PowerShell işleri kullanabilirsiniz.
&
'ı bir işlem hattının sonuna eklemek, işlem hattının bir PowerShell işi olarak çalışmasına neden olur. bir işlem hattı arka planlandığında, bir iş nesnesi döndürülür. İşlem hattı bir iş olarak çalışmaya başladığında, işi yönetmek için tüm *-Job
cmdlet'ler kullanılabilir. İşlem hattında kullanılan değişkenler (işleme özgü değişkenler yoksayılarak) otomatik olarak göreve kopyalanır, bu nedenle Copy-Item $foo $bar &
sorunsuz çalışır. İş, kullanıcının ana dizini yerine geçerli dizinde çalışır.
Uzaktan İletişim Desteği
Unix platformlarında WinRM kullanan PowerShell Uzaktan İletişimi (PSRP), HTTPS üzerinden NTLM/Negotiate veya Temel Kimlik Doğrulaması gerektirir. macOS'ta PSRP yalnızca HTTPS üzerinden Temel Kimlik Doğrulamayı destekler. Kerberos tabanlı kimlik doğrulaması desteklenmez.
PowerShell, tüm platformlarda (Windows, Linux ve macOS) SSH üzerinden PowerShell Uzaktan İletişimini (PSRP) destekler. Daha fazla bilgi için bkz. PowerShell'de SSH uzaktan iletişim .
Just-Enough-Administration (JEA) Desteği
Linux veya macOS üzerinde PowerShell, kısıtlanmış yönetim (JEA) uzaktan iletişim uç noktaları oluşturmanıza izin vermez.
sudo
, exec
ve PowerShell
PowerShell, çoğu komutu (Python veya Ruby'de olduğu gibi) bellekte çalıştırdığı için, sudo
'ı doğrudan PowerShell'in yerleşik komutları ile kullanamazsınız. sudo
'den pwsh
'i çalıştırabilirsiniz. PowerShell'in içinden bir PowerShell cmdlet'ini sudo
ile çalıştırmak gerekiyorsa, örneğin, sudo Set-Date 8/18/2016
, sudo pwsh Set-Date 8/18/2016
kullanırsınız.
Windows dışı platformlarda bulunan modüller
Windows olmayan platformlar için PowerShell aşağıdaki modülleri içerir:
- Microsoft.PowerShell.Archive
- Microsoft.PowerShell.Core
- Microsoft.PowerShell.Host
- Microsoft.PowerShell.Management
- Microsoft.PowerShell.Security
- Microsoft.PowerShell.Utility
- Paket Yönetimi
- PowerShellGet
- PSReadLine
- ThreadJob
PowerShell'de yaygın olarak kullanılabilen çok sayıda komut (cmdlet) Linux veya macOS'ta kullanılamaz. Bu komutlar genellikle bu platformlar için geçerli değildir. Örneğin, kayıt defteri veya hizmetler gibi Windows'a özgü özelliklere yönelik komutlar kullanılamaz.
Set-ExecutionPolicy
gibi diğer komutlar vardır ancak işlevsel değildir.
Modüllerin ve cmdlet'lerin ve destekledikleri platformların kapsamlı bir listesi için bkz. Modüllerin ve cmdlet'lerin yayın geçmişi.
Modüller artık PowerShell ile gönderilmemiş
Çeşitli uyumluluk nedenleriyle, aşağıdaki modüller artık PowerShell'e dahil değildir.
- ISE
- Microsoft.PowerShell.YerelHesaplar
- Microsoft.PowerShell.ODataUtils
- Microsoft.PowerShell.Operation.Validation
- PSScheduledJob
- PSWorkflow
- PSWorkflowUtility
Aşağıdaki Windows'a özgü modüller Linux veya macOS için PowerShell'e dahil değildir.
- CimCmdlet'ler
- Microsoft.PowerShell.Diagnostics
- Microsoft.WSMan.Management
- PSDiagnostics
Windows dışı platformlarda kullanılamayan cmdlet'ler
Bazı cmdlet'ler PowerShell'den kaldırıldı. Diğerleri kullanılamaz veya Windows dışı platformlarda farklı çalışabilir. PowerShell'den kaldırılan cmdlet'lerin kapsamlı bir listesi için bkz. PowerShell 'den kaldırılanCmdlet'leri.
Microsoft.PowerShell.Core
Linux veya macOS'ta aşağıdaki cmdlet'ler kullanılamaz:
Disable-PSRemoting
Enable-PSRemoting
Connect-PSSession
Disconnect-PSSession
Receive-PSSession
Get-PSSessionCapability
Disable-PSSessionConfiguration
Enable-PSSessionConfiguration
Get-PSSessionConfiguration
Register-PSSessionConfiguration
Set-PSSessionConfiguration
Unregister-PSSessionConfiguration
Test-PSSessionConfigurationFile
Get-Help
ShowWindow parametresi Windows dışı platformlarda kullanılamaz. PowerShell 7.3, Linux ve macOS için Switch-Process
cmdlet'ini ve exec
işlevini ekledi. Bu komutlar Windows'da kullanılamaz.
Microsoft.PowerShell.Security cmdlet'leri.
Linux veya macOS'ta aşağıdaki cmdlet'ler kullanılamaz:
Get-Acl
Set-Acl
Get-AuthenticodeSignature
Set-AuthenticodeSignature
New-FileCatalog
Test-FileCatalog
Bu cmdlet'ler yalnızca PowerShell 7.1 sürümünden itibaren kullanılabilir.
Get-CmsMessage
Protect-CmsMessage
Unprotect-CmsMessage
Microsoft.PowerShell.Management komutları
Linux ve macOS'ta aşağıdaki cmdlet'ler kullanılamaz:
Rename-Computer
Get-ComputerInfo
Get-HotFix
Clear-RecycleBin
Get-Service
New-Service
Remove-Service
Restart-Service
Resume-Service
Set-Service
Start-Service
Stop-Service
Suspend-Service
Set-TimeZone
Aşağıdaki cmdlet'ler sınırlamalarla kullanılabilir:
-
Get-Clipboard
- PowerShell 7.0+ ile kullanılabilir -
Set-Clipboard
- PowerShell 7.0+ ile kullanılabilir -
Restart-Computer
- PowerShell 7.1+ sürümünde Linux ve macOS için kullanılabilir -
Stop-Computer
- PowerShell 7.1+ sürümünde Linux ve macOS için kullanılabilir
Microsoft.PowerShell.Utility cmdlet'leri
Linux ve macOS'ta aşağıdaki cmdlet'ler kullanılamaz:
Convert-String
ConvertFrom-String
ConvertFrom-SddlString
Out-GridView
Out-Printer
Show-Command
Linux veya macOS'ta diğer adlar kullanılamıyor
Aşağıdaki tabloda, Windows dışı platformlarda bulunmayan Windows için kullanılabilen diğer adlar listelenmektedir. Bu diğer adlar, bu platformlardaki yerel bir komutla çakıştığı için kullanılamaz.
Diğer Ad | Cmdlet |
---|---|
ac |
Add-Content |
cat |
Get-Content |
clear |
Clear-Host |
compare |
Compare-Object |
cp |
Copy-Item |
cpp |
Copy-ItemProperty |
diff |
Compare-Object |
kill |
Stop-Process |
ls |
Get-ChildItem |
man |
help |
mount |
New-PSDrive |
mv |
Move-Item |
ps |
Get-Process |
rm |
Remove-Item |
rmdir |
Remove-Item |
sleep |
Start-Sleep |
sort |
Sort-Object |
start |
Start-Process |
tee |
Tee-Object |
write |
Write-Output |
Tablo, Windows dışı platformlarda mevcut olmayan cmdlet'ler için geçerli olmayan diğer adları içermez.
PowerShell İstenen Durum Yapılandırması (DSC)
PowerShell 7.2'den başlayarak PSDesiredStateConfiguration modülü PowerShell'den kaldırıldı ve PowerShell Galerisi'nde yayımlandı. Daha fazla bilgi için PowerShell Ekibi blogundaki duyuru bakın. Linux'ta DSC kullanma hakkında daha fazla bilgi için bkz. Linux için DSC'yi kullanmaya başlama. DSC v1.1 ve v2.x, macOS'ta desteklenmez. DSC v3 Windows, Linux ve macOS'ta desteklenir, ancak henüz erken geliştirme aşamasındadır.
PowerShell