Apa yang diwakili oleh isi dari $ PSVersionTable dari PowerShell?

10

Jika saya echo $PSVersionTabledi PowerShell, saya mendapatkan apa yang tampak sebagai beberapa bit informasi versi.

Nama properti adalah

  • CLRVersion
  • BuildVersion
  • PSVersion
  • WSManStackVersion
  • PSCompatibleVersions
  • SerializationVersion
  • PSRemotingProtocolVersion

Semua kecuali 1 berada dalam notasi versi normal ( #.#.#), dan 1 lainnya (PSCompatibleVersions) adalah satu set nomor versi ( {1.0, 2.0})

Apa yang diwakili masing-masing?


Selain itu: Pertanyaan ini dibuat untuk menggali lebih dalam menanggapi pertanyaan lain yang saya tanyakan di Versi Kerangka Kerja Manajemen Windows yang Diinstal? . Sebuah komentar di sana, dan komentar lain dalam pertanyaan serupa yang saya tautkan di sana, menyarankan agar $PSVersionTabledapat digunakan untuk mendapatkan versi WMF. Jika salah satu dari properti ini memang memberikan versi WMF, dan dijamin akan melakukannya, silakan jawab di sana juga. Juga, jika Anda dapat memberikan dokumentasi atau bukti konfirmasi, saya akan memberi Anda +2 jika saya bisa: kueri Google saya tidak menghasilkan apa pun yang memuaskan.

Loduwijk
sumber

Jawaban:

11

Bantuan internal PowerShell menjelaskan $ PSVersionTable:

Get-Help about_Automatic_Variables

Anda mungkin perlu menjalankannya Update-Helpterlebih dahulu jika Anda belum menjalankannya sebelumnya.

Yang menarik Get-Helpadalah Anda tidak perlu tahu persis apa yang Anda cari. Apa yang saya ketikkan untuk menemukan topik ini pertama sebenarnya adalah adil help PSVersionTable, dan itu mencantumkan semua topik bantuan yang berisi "PSVersionTable" (ada beberapa yang lain).

Ini adalah bagian about_Automatic_Variables yang menjelaskan $PSVersionTable, seperti yang saat ini dikembalikan oleh PowerShell untuk saya, tetapi ini adalah bagian yang paling tidak penting, seperti yang dicatat OP:

$ PsVersionTable Berisi tabel hash read-only yang menampilkan detail tentang versi Windows PowerShell yang berjalan di sesi saat ini. Tabel ini mencakup item-item berikut:

CLRVersion:                The version of the common language runtime (CLR)

BuildVersion:              The build number of the current version

PSVersion:                 The Windows PowerShell version number

WSManStackVersion:         The version number of the WS-Management stack

PSCompatibleVersions:      Versions of Windows PowerShell that are 
                           compatible with the current version

SerializationVersion:      The version of the serialization method

PSRemotingProtocolVersion: The version of the Windows PowerShell remote 
                           management protocol
Joshua McKinnon
sumber
+1 untuk kesederhanaan yang jelas. Saya sedang mengerjakan jawaban yang bertele-tele dan ketika saya melihat ini, saya menghapus semuanya karena ini mengatakan lebih sedikit, kata-kata sederhana semua yang benar-benar perlu dikatakan.
Ryan Ries
Terima kasih! Saya sebenarnya berharap bahwa mungkin ada beberapa cara untuk mengumpulkan meta-informasi dari kanan di dalam PowerShell. Ini memberikan jawaban dan mungkin akan membantu bahkan di luar ruang lingkup pertanyaan. Bukan tambahan sedikit terakhir, tapi ini membuat saya 1 langkah lebih dekat dengan itu juga. Terima kasih lagi.
Loduwijk
Bantuan bawaan PowerShell adalah salah satu fitur favorit saya, dan mempelajari cara memanfaatkannya untuk menebak dan menemukan berbagai hal benar-benar membantu mempercepat mengenal PowerShell. Saya juga harus mencatat bahwa saya tidak tahu dokumentasi untuk variabel ini ada di About_Automatic_Variables ... apa yang saya ketikkan sebenarnya help PSVersionTable, dan itu mencantumkan topik bantuan yang menyebutkan PSVersionTable karena tidak ada kecocokan yang tepat.
Joshua McKinnon
1

Dari pengalaman saya, versi PSVersion, yang merupakan versi PowerShell cocok dengan versi WMF, setidaknya sejauh nomor versi utama. Saya belum melacak semua rilis pratinjau untuk melihat bagaimana mereka cocok.

Mike Shepard
sumber