Apa yang Baru di PowerShell Core 6.2
Rilis PowerShell Core 6.2 berfokus pada peningkatan performa, perbaikan bug, dan cmdlet dan peningkatan bahasa yang lebih kecil yang meningkatkan kualitas. Untuk melihat daftar lengkap peningkatan, lihat log perubahan terperinci kami di GitHub.
Fitur Eksperimental
Sebelumnya, kami mengaktifkan dukungan untuk Fitur Eksperimental. Dalam rilis 6.2, kami memiliki empat fitur eksperimental untuk dicoba. Harap berikan umpan balik sehingga kami dapat melakukan penyempurnaan dan untuk memutuskan apakah fitur tersebut layak dipromisikan ke status mainstream.
Gunakan Get-ExperimentalFeature
untuk mendapatkan daftar fitur eksperimental yang tersedia. Anda dapat mengaktifkan atau menonaktifkan fitur-fitur ini dengan Enable-ExperimentalFeature
dan Disable-ExperimentalFeature
.
Saran Perintah Tidak Ditemukan
Fitur ini menggunakan pencocokan fuzzy untuk menemukan saran untuk perintah atau cmdlet yang mungkin anda salah ketik.
Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion
Contoh
Dalam contoh ini, nama cmdlet yang salah eja cocok dengan beberapa saran dari kemungkinan besar hingga yang paling tidak mungkin.
Get-Commnd
Get-Commnd : The term 'Get-Commnd' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:1
+ Get-Commnd
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-Commnd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [4,General]: The most similar commands are: Get-Command, Get-Content, Get-Job, Get-Module,
Get-Event, Get-Host, Get-Member, Get-Item, Set-Content.
BatchIng Jarak Jauh Implisit
Saat menggunakan jarak jauh implisit dalam alur, PowerShell memperlakukan setiap perintah dalam alur secara independen. Objek berulang kali diserialisasikan dan de-serialized
antara klien dan sistem jarak jauh selama eksekusi alur.
Dengan fitur ini, PowerShell menganalisis alur untuk menentukan apakah perintah aman untuk dijalankan dan ada pada sistem target. Jika benar, PowerShell menjalankan seluruh alur dari jarak jauh dan hanya menserialisasikan dan de-serializes
hasilnya kembali ke klien.
Enable-ExperimentalFeature -Name PSImplicitRemotingBatching
Tes Get-Process | Sort-Object
dunia nyata melalui localhost berkurang dari 10-15 detik menjadi 20-30 milidetik. Fitur ini hanya perlu diaktifkan pada klien. Tidak ada perubahan yang diperlukan pada server.
Drive Sementara
Enable-ExperimentalFeature -Name PSTempDrive
Jika Anda menggunakan PowerShell Core pada sistem operasi yang berbeda, Anda akan menemukan bahwa variabel lingkungan untuk menemukan direktori sementara berbeda di Windows, macOS, dan Linux! Dengan fitur ini, Anda mendapatkan PSDrive yang disebut Temp:
yang secara otomatis dipetakan ke folder sementara untuk sistem operasi yang Anda gunakan.
Contoh
PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!
Ketahuilah bahwa perintah file asli (seperti ls
di Linux) tidak mengetahui PSDrives dan tidak akan melihat drive ini Temp:
.
Ekspansi Singkatan
Cmdlet PowerShell diharapkan memiliki kata benda deskriptif. Ini menghasilkan nama panjang yang lebih sulit untuk di ketik. Fitur ini memungkinkan Anda untuk hanya mengetik karakter huruf besar cmdlet dan menggunakan penyelesaian tab untuk menemukan kecocokan.
Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion
Contoh
PS> i-arsavsf
Jika Anda menekan tab, dan menginstal modul Az Azure PowerShell, modul tersebut akan lengkapi otomatis untuk:
PS> Import-AzRecoveryServicesAsrVaultSettingsFile
Catatan
Fitur ini dimaksudkan untuk digunakan secara interaktif. Bentuk cmdlet yang disingkat tidak dapat dieksekusi. Fitur ini bukan pengganti alias.
Memecahkan Perubahan
- Perbaiki
-NoEnumerate
perilakuWrite-Output
agar konsisten dengan Windows PowerShell. (#9069) - Hasilkan
Join-String -InputObject 1,2,3
hasil yang sama dengan1,2,3 | Join-String
hasil (#8611) (Terima kasih @sethvs!) - Tambahkan
-Stable
keSort-Object
dan tes terkait (#7862) (Terima kasih @KirkMunro!) - Tingkatkan
Start-Sleep
cmdlet untuk menerima detik pecahan (#8537) (Terima kasih @Prototyyppi!) - Ubah hashtable untuk menggunakan OrdinalIgnoreCase untuk berada
case-insensitive
di semua Budaya (#8566) - Perbaiki LiteralPath in
Import-Csv
untuk mengikat outputGet-ChildItem
(#8277) (Terima kasih @iSazonov!) - Tidak lagi melompati kolom tanpa nama jika pembatas kuotasi ganda digunakan di
Import-Csv
(#7899) (Terima kasih @Topping!) Get-ExperimentalFeature
tidak lagi memiliki-ListAvailable
switch (#8318)- Parameter debug sekarang diatur
$DebugPreference
ke Lanjutkan alih-alih Inquire (#8195) (Terima kasih @KirkMunro!) - Hormati
-OutputFormat
jika ditentukan dalam perintah non-interaktif, dialihkan, dan dikodekan yang digunakan dengan pwsh (#8115) - Muat rakitan dari jalur dasar modul sebelum mencoba memuat dari GAC (#8073)
- Menghapus tilde dari paket pratinjau Linux (#8244)
- Memindahkan pemrosesan
-WorkingDirectory
sebelum memproses profil (#8079) - Jangan tambahkan
PATHEXT
variabel lingkungan pada Unix (#7697) (Terima kasih @iSazonov!)
Masalah Umum
- Remoting pada platform Windows IOT ARM memiliki masalah memuat modul. Lihat (#8053)
Updates dan Perbaikan Umum
- Aktifkan penyelesaian tab peka huruf besar/kecil untuk file dan folder pada sistem file peka huruf besar/kecil (#8128)
- Buat PSVersionInfo.PSVersion dan PSVersionInfo.PSEdition publik (#8054) (Terima kasih @KirkMunro!)
- Tambahkan Type Inference untuk
$_
/$PSItem
dalamcatch{ }
blok (#8020) (Terima kasih @vexx32!) - Memperbaiki inferensi jenis pemanggilan metode statis (#8018) (Terima kasih @SeeminglyScience!)
- Buat jenis yang disimpulkan untuk
Select-Object
,Group-Object
, PSObject dan Hashtable (#7231) (Terima kasih @powercode!) - Mendukung metode panggilan dengan
ByRef-like
parameter jenis (#7721) - Tangani kasus di mana jalur modul Windows PowerShell sudah ada di PSModulePath lingkungan (#7727)
- Aktifkan
SecureString
cmdlet untuk non-Windows dengan menyimpan teks biasa (#9199) - Meningkatkan pesan kesalahan di non-Windows saat mengimpor clixml dengan securestring (#7997)
- Menambahkan parameter ReplyTo ke
Send-MailMessage
(#8727) (Terima kasih @replicaJunction!) - Menambahkan pesan Usang ke
Send-MailMessage
(#9178) - Perbaiki
Restart-Computer
untuk bekerja ketikalocalhost
WinRM tidak ada (#9160) - Buat
Start-Job
kesalahan penghentian lemparan saat PowerShell dihosting (#9128) - Tambahkan akselerator jenis gaya C# dan akhiran untuk harfiah ushort, uint, ulong, dan pendek (#7813) (Terima kasih @vexx32!)
- Menambahkan akhiran baru untuk literal numerik - lihat about_Numeric_Literals (#7901) (Terima kasih @vexx32!)
- Laporkan tingkat dampak dengan benar saat SupportsShouldProcess tidak diatur ke 'true' (#8209) (Terima kasih @vexx32!)
- Memperbaiki Masalah Request Charset di Web Cmdlets (#8742) (Terima kasih @markekraus!)
- Memperbaiki masalah Expect
100-continue
dengan Web Cmdlets (#8679) (Terima kasih @markekraus!) - Memperbaiki masalah pemblokiran file dengan cmdlet web (#7676) (Terima kasih @Claustn!)
- Memperbaiki masalah penguraian halaman kode di
Invoke-RestMethod
(#8694) (Terima kasih @markekraus!) - Refaktor
ConvertTo-Json
untuk mengekspos JsonObject.ConvertToJson sebagai API publik (#8682) - Tambahkan kedalaman maksimum yang dapat dikonfigurasi
ConvertFrom-Json
dengan -Depth (#8199) (Terima kasih @louistio!) - Tambahkan parameter EscapeHandling di
ConvertTo-Json
cmdlet (#7775) (Terima kasih @iSazonov!) - Tambahkan
-CustomPipeName
ke pwsh danEnter-PSHostProcess
(#8889) - Aktifkan pembuatan tautan simbolis relatif di Windows dengan
New-Item
(#8783) - Perbolehkan pengguna Windows dalam mode pengembang untuk membuat symlink tanpa elevasi (#8534)
- Aktifkan
Write-Information
untuk menerima$null
(#8774) - Perbaikan
Get-Help
untuk fungsi tingkat lanjut dengan konten bantuan MAML (#8353) - Perbaiki
Get-Help
masalah PSTypeName dengan -Parameter ketika hanya satu parameter yang dinyatakan (#8754) (Terima kasih @pougetat!) - Perbaikan perhitungan token untuk
Get-Help
dijalankan di ScriptBlock untuk bantuan komentar. (#8238) (Terima kasih @hubuk!) - Ubah
Get-Help
cmdlet -Parameter parameter sehingga menerima array string (#8454) (Terima kasih @sethvs!) - Atasi PAGER jika jalurnya berisi spasi (#8571) (Terima kasih @pougetat!)
- Tambahkan perintah ke penggunaan
less
dalam fungsi 'bantuan' untuk menginstruksikan pengguna cara keluar (#7998) - Tambahkan jenis enum dan karakter dukungan dalam
Format-Hex
cmdlet (#8191) (Terima kasih @iSazonov!) - Hapus ShouldProcess dari
Format-Hex
(#8178) - Tambahkan parameter Offset dan Count baru ke
Format-Hex
dan refaktor cmdlet (#7877) (Terima kasih @iSazonov!) - Izinkan 'name' sebagai kunci alias untuk 'label' di
ConvertTo-Html
, izinkan entri 'lebar' menjadi bilangan bulat (#8426) (Terima kasih @mklement0!) - Membuat properti terhitung berbasis skrip berfungsi lagi di
ConvertTo-Html
(#8427) (Terima kasih @mklement0!) - Tambahkan cmdlet
Join-String
untuk membuat teks dari input alur (#7660) (Terima kasih @powercode!) - Memperbaiki
Join-String
logika parameter FormatString cmdlet (#8449) (Terima kasih @sethvs!) - Ubah
Clear-Host
kembali ke penggunaan$RAWUI
dan hapus untuk bekerja melalui jarak jauh (#8609) - Ubah
Clear-Host
menjadi hanya dipanggil[console]::clear
dan hapus alias yang jelas dari Unix (#8603) - Perbaiki LiteralPath in
Import-Csv
untuk mengikat outputGet-ChildItem
(#8277) (Terima kasih @iSazonov!) - fungsi bantuan tidak boleh menggunakan pager untuk AliasHelpInfo (#8552)
- Tambahkan
-UseMinimalHeader
keStart-Transcript
untuk meminimalkan header transkrip (#8402) (Terima kasih @lukexjeremy!) - Tambahkan
Enable-ExperimentalFeature
danDisable-ExperimentalFeature
cmdlet (#8318) - Mengekspos semua cmdlet dari PSDiagnostics jika logman.exe tersedia (#8366)
- Hapus parameter Persist dari
New-PSDrive
padanon-Windows
platform (#8291) (Terima kasih @lukexjeremy!) - Tambahkan dukungan untuk
cd +
(#7206) (Terima kasih @bergmeister!) - Aktifkan
Set-Location -LiteralPath
untuk bekerja dengan folder bernama - dan + (#8089) Test-Path
$false
mengembalikan ketika diberikan nilai kosong atau$null
jalur (#8080) (Terima kasih@vexx32!)- Izinkan parameter dinamis dikembalikan meskipun jalur tidak cocok dengan penyedia apa pun (#7957)
- Dukungan
Get-PSHostProcessInfo
danEnter-PSHostProcess
pada platform Unix (#8232) - Kurangi alokasi dalam
Get-Content
cmdlet (#8103) (Terima kasih @iSazonov!) - Aktifkan
Add-Content
untuk berbagi akses baca dengan alat lain saat menulis konten (#8091) Get/Add-Content
melempar kesalahan yang ditingkatkan saat menargetkan kontainer (#7823) (Terima kasih @kvprasoon!)- Tambahkan
-Name
parameter ,-NoUserOverrides
dan-ListAvailable
keGet-Culture
cmdlet (#7702) (Terima kasih @iSazonov!) - Tambahkan atribut terpadu untuk penyelesaian parameter Pengodean . (#7732) (Terima kasih @ThreeFive-O!)
- Izinkan Id numerik dan nama halaman kode terdaftar dalam parameter Pengodean (#7636) (Terima kasih @iSazonov!)
- Perbaiki
Rename-Item -Path
dengan karakter kartubebas (#7398) (Terima kasih @kwkam!) - Saat menggunakan
Start-Transcript
dan file ada, file kosong daripada menghapus (#8131) (Terima kasih @paalbra!) - Membuat
Add-Type
file sumber terbuka dengan FileAccess.Read dan FileShare.Read secara eksplisit (#7915) (Terima kasih@IISResetMe!) - Perbaikan
Enter-PSSession -ContainerId
untuk Windows terbaru (#7883) - Pastikan properti NestedModules diisi oleh
Test-ModuleManifest
(#7859) - Tambahkan
%F
case keGet-Date
-UFormat (#7630) (Terima kasih @britishben!) - Perbaikan
Set-Service -Status Stopped
untuk menghentikan layanan dengan dependensi (#5525) (Terima kasih @zhenggu!)