Pertanyaan Tentukan versi PowerShell yang diinstal


Bagaimana saya bisa menentukan versi PowerShell apa yang diinstal pada komputer, dan memang jika diinstal sama sekali?


2076
2017-12-01 11:30


asal


Jawaban:


Menggunakan $PSVersionTable.PSVersion untuk menentukan versi mesin. Jika variabel tidak ada, maka aman untuk mengasumsikan bahwa mesin adalah versi 1.0.

Perhatikan itu $Host.Version dan (Get-Host).Version tidak dapat diandalkan - mereka mencerminkan versi host saja, bukan mesinnya. PowerGUI, PowerShellPLUS, dll. Adalah semua aplikasi hosting, dan mereka akan mengatur versi host untuk mencerminkan produk mereka versi - yang sepenuhnya benar, tetapi tidak apa yang Anda cari.

PS C:\> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
4      0      -1     -1

2793
2018-01-19 11:06



Saya akan menggunakan juga Dapatkan-Host atau $ PSVersionTable. Seperti yang Andy Schneider tunjukkan, $PSVersionTable tidak berfungsi di versi 1; itu diperkenalkan di versi 2.

get-host

Name             : ConsoleHost
Version          : 2.0
InstanceId       : d730016e-2875-4b57-9cd6-d32c8b71e18a
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-GB
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

$PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.4200
BuildVersion                   6.0.6002.18111
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

371
2017-12-01 11:34



Untuk menentukan apakah PowerShell diinstal, Anda dapat memeriksa registri untuk keberadaan

HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\Install

dan

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3

dan, jika ada, apakah nilainya adalah 1 (untuk dipasang), seperti yang diperinci dalam posting blog Periksa apakah PowerShell diinstal dan versinya.

Untuk menentukan versi PowerShell yang diinstal, Anda dapat memeriksa kunci registri

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion

dan

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\PowerShellVersion

Untuk menentukan versi PowerShell yang diinstal dari skrip .ps1, Anda dapat menggunakan baris satu berikut, seperti yang dijelaskan di PowerShell.com di Versi PowerShell Apa yang Saya Lari.

$isV2 = test-path variable:\psversiontable

Situs yang sama juga memberikan fungsi untuk mengembalikan versi:

function Get-PSVersion {
    if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"}
}

86
2017-12-01 14:37



Anda dapat melihat variabel bawaan, $psversiontable. Jika tidak ada, Anda memiliki V1. Jika memang ada, itu akan memberi Anda semua info yang Anda butuhkan.

1 >  $psversiontable

Name                           Value                                           
----                           -----                                           
CLRVersion                     2.0.50727.4927                                  
BuildVersion                   6.1.7600.16385                                  
PSVersion                      2.0                                             
WSManStackVersion              2.0                                             
PSCompatibleVersions           {1.0, 2.0}                                      
SerializationVersion           1.1.0.1                                         
PSRemotingProtocolVersion      2.1    

77
2018-04-25 13:47



Hanya ingin menambahkan 2 sen saya di sini.

Anda dapat langsung memeriksa versi hanya dengan satu baris dengan memunculkan powershell secara eksternal, seperti dari Command Prompt

powershell -Command "$PSVersionTable.PSVersion"

EDIT:

Menurut @psaul kamu bisa sebenarnya memiliki satu perintah yang agnostik dari mana asalnya (CMD, Powershell atau Pwsh), terima kasih untuk itu.

powershell -command "(Get-Variable PSVersionTable -ValueOnly).PSVersion" 

Saya telah menguji dan bekerja dengan sempurna pada CMD dan Powershell

image


23
2018-03-10 11:32



Anda dapat memverifikasi versi Windows PowerShell yang diinstal dengan menyelesaikan pemeriksaan berikut:

  1. Klik Mulai, klik Semua Program, klik Aksesoris, klik Windows PowerShell, kemudian klik Windows PowerShell.
  2. Di konsol Windows PowerShell, ketik perintah berikut pada prompt perintah dan kemudian tekan ENTER:

    Dapatkan-Host | Versi Pilih-Obyek

Anda akan melihat output yang terlihat seperti ini:

Version
-------
3.0

http://www.myerrorsandmysolutions.com/how-to-verify-the-windows-powershell-version-installed/


19
2018-06-17 07:59



Metode yang direkomendasikan Microsoft maju yang kompatibel untuk memeriksa apakah PowerShell diinstal dan menentukan versi yang diinstal adalah dengan melihat dua kunci registri khusus. Saya telah mereproduksi detail di sini jika tautan rusak.

Menurut halaman yang terhubung:

Tergantung pada kunci registri lain (s), atau versi PowerShell.exe atau lokasi PowerShell.exe tidak dijamin untuk bekerja dalam jangka panjang.

Untuk memeriksa apakah versi apa saja PowerShell diinstal, periksa nilai berikut di registri:

  • Lokasi Kunci: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1
  • Nama Nilai: Instal
  • Jenis Nilai: REG_DWORD
  • Data Nilai: 0x00000001 (1

Untuk memeriksanya apakah versi 1.0 atau 2.0 PowerShell diinstal, periksa nilai berikut di registri:

  • Lokasi Kunci: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine
  • Nama Nilai: PowerShellVersion
  • Jenis Nilai: REG_SZ
  • Data Nilai: <1.0 | 2.0>

18
2017-11-04 10:24