Bagaimana cara menemukan versi Windows yang saya gunakan?
Saya menggunakan PowerShell 2.0 dan mencoba:
PS C:\> ver
The term 'ver' 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 tha
t the path is correct and try again.
At line:1 char:4
+ ver <<<<
+ CategoryInfo : ObjectNotFound: (ver:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Bagaimana saya melakukan ini?
Jawaban:
Karena Anda memiliki akses ke perpustakaan .NET, Anda bisa mengakses
OSVersion
propertiSystem.Environment
kelas untuk mendapatkan informasi ini. Untuk nomor versi, adaVersion
properti.Sebagai contoh,
Detail versi Windows dapat ditemukan di sini .
sumber
[Environment]::OSVersion
bekerja di windows-10 ,OSVersion.Version.Major
mengembalikan 10.winver
menunjukkan kepada saya versi 1607. Tetapi perintah powershell di atas tidak memberikan 1607. Di mana saya mendapatkan nomor "1607" ini di Powershell?(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId
[System.Environment]::OSVersion
itu tidak ditinggalkan, metode yang digunakan di latar belakang telah ditinggalkan. Versi PS baru mengubah perilaku backend: github.com/PowerShell/PowerShell/issues/…Untuk mendapatkan nomor versi Windows, seperti yang dicatat Jeff dalam jawabannya , gunakan:
Perlu dicatat bahwa hasilnya adalah tipe
[System.Version]
, sehingga dimungkinkan untuk memeriksa, katakanlah, Windows 7 / Windows Server 2008 R2 dan kemudian denganNamun ini tidak akan memberi tahu Anda apakah itu klien atau server Windows, atau nama versi.
Gunakan
Win32_OperatingSystem
kelas WMI (selalu instance tunggal), misalnya:akan mengembalikan sesuatu seperti
sumber
Sayangnya sebagian besar jawaban lain tidak memberikan informasi khusus untuk Windows 10.
Windows 10 memiliki versi sendiri: 1507, 1511, 1607, 1703, dll . Inilah yang
winver
ditunjukkan.Lihat juga pertanyaan terkait pada superuser .
Adapun penggunaan versi Windows lainnya
systeminfo
. Pembungkus Powershell:Output Windows 10 untuk perintah yang sama:
sumber
winver
di desktop dansysteminfo
di server. Sudah membingungkan saya selama bertahun-tahun bahwa tidak ada cara seragam untuk mendapatkan info ini.OS Version : 6.3.9600 N/A Build 9600
. Jadi dalam versi di bawah W81, mungkin lebih informatif untuk melihat versi LTSB (selalu diabaikan). Melihat output dari:(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").BuildLabEx
yang mungkin terlihat seperti:9600.19179.amd64fre.winblue_ltsb_escrow.181015-1847
. Dugaan saya adalah bahwa181015
bagian tersebut adalah tanggal pembuatan, sedangkan versi1847
adalah versi bangun atau rilis. Anda mungkin juga perlu membandingkan ini dengan kernel, hal .Atau bermain golf
Hasil
sumber
Ini akan memberi Anda versi lengkap Windows (termasuk nomor Revisi / Bangun) tidak seperti semua solusi di atas:
Hasil:
sumber
10.0.10586.0 (th2_release.151029-1700)
, sementara winload.exe memiliki10.0.10586.63 (th2_release.160104-1513)
.version
. OS dibangun (dan dimutakhirkan) oleh bagian-bagian, yaitu Kernel, HAL, UBR, dan fitur dll. Jadi kita harus benar-benar menampilkan semuanya. Dalam hal itu saya pikirBuildLabEx
,Kernel
danHAL
(agar) akan menjadi cara yang paling tepat untuk memberikan yang lebih tepat versi . Tetapi karena Anda tampaknya tahu apa yang salah , Anda harus memposting apa yang benar .kembali
sumber
Sejak PowerShell 5:
Saya pikir perintah ini cukup banyak mencoba 1001 cara yang berbeda sejauh ini ditemukan untuk mengumpulkan informasi sistem ...
sumber
Jika Anda ingin membedakan antara Windows 8.1 (6.3.9600) dan Windows 8 (6.2.9200) gunakan
untuk mendapatkan versi yang tepat.
[Environment]::OSVersion
tidak berfungsi dengan baik di Windows 8.1 (mengembalikan versi Windows 8).sumber
[Environment]::OSVersion
bekerja di windows-10 ,OSVersion.Version.Major
mengembalikan 10.(Get-CimInstance Win32_OperatingSystem).Version
dan[Environment]::OSVersion
berfungsi untuk saya dan mengembalikan hasil yang sama: 6.3.9600.0Saya menyempurnakan salah satu jawabannya
Saya mencapai pertanyaan ini ketika mencoba mencocokkan keluaran dari winver.exe:
Version 1607 (OS Build 14393.351)
Saya dapat mengekstrak string build dengan:
Hasil:
14393.351
Diperbarui : Ini adalah skrip yang sedikit disederhanakan menggunakan regex
sumber
Saya mengambil skrip di atas dan sedikit men-tweak mereka untuk datang dengan ini:
Untuk mendapatkan hasil seperti ini:
Microsoft Windows 10 Home Versi 64-bit: 1709 Build: 16299.431 @ {WindowsInstallDateFromRegistry = 18-01-01 2:29:11 AM}
Petunjuk: Saya akan menghargai tulisan tangan awalan dari tanggal pemasangan sehingga saya bisa menggantinya dengan header yang lebih mudah dibaca.
sumber
[timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970')).AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
Ini sedikit lebih kompleks, tetapi berjalan jauh lebih cepat. Anda bahkan mungkin dapat meninggalkan bagian zona waktu:([datetime]'1/1/1970').AddSeconds($(get-itemproperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion").InstallDate)
Seperti yang dikatakan MoonStom,
[Environment]::OSVersion
tidak berfungsi dengan baik pada Windows 8.1 yang ditingkatkan (mengembalikan versi Windows 8): tautan .Jika Anda ingin membedakan antara Windows 8.1 (6.3.9600) dan Windows 8 (6.2.9200), Anda dapat menggunakan
(Get-CimInstance Win32_OperatingSystem).Version
untuk mendapatkan versi yang tepat. Namun ini tidak berfungsi di PowerShell 2. Jadi gunakan ini:sumber
Menggunakan:
sumber
Jika Anda mencoba menguraikan informasi yang diletakkan MS di situs tambalan mereka seperti https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
Anda memerlukan kombo seperti:
$name=(Get-WmiObject Win32_OperatingSystem).caption $bit=(Get-WmiObject Win32_OperatingSystem).OSArchitecture $ver=(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId Write-Host $name, $bit, $ver
Microsoft Windows 10 Home 64-bit 1703
sumber
Windows PowerShell 2.0:
Windows PowerShell 3.0:
Untuk tampilan (kedua versi):
sumber
Untuk menghasilkan output yang identik dengan winver.exe di PowerShell v5 pada Windows 10 1809:
sumber
sumber
Ini benar-benar utas yang panjang, dan mungkin karena jawaban yang benar meskipun tidak menyelesaikan pertanyaan mendasar. Saya menemukan situs ini: Versi & Angka Bangun yang memberikan gambaran yang jelas tentang apa yang ada di dunia Microsoft Windows.
Karena minat saya adalah untuk mengetahui OS windows mana yang saya hadapi, saya mengesampingkan seluruh pelangi versi dan sebaliknya berfokus pada BuildNumber. Nomor build dapat diperoleh dengan:
atau dengan:
pilihan ada di tangan Anda mana yang Anda inginkan. Jadi dari sana saya bisa melakukan sesuatu seperti:
Catatan: Seperti yang Anda lihat, saya menggunakan di atas hanya untuk sistem server, namun dapat dengan mudah diterapkan ke workstation atau bahkan diperluas untuk mendukung keduanya ... tapi saya akan menyerahkannya kepada Anda.
Nikmati, & bersenang-senanglah!
sumber
Ini akan memberi Anda versi Windows yang lengkap dan BENAR (nomor versi yang sama dengan yang Anda temukan ketika menjalankan winver.exe) (termasuk nomor revisi / build) secara REMOTELY tidak seperti semua solusi lain (diuji pada Windows 10):
sumber
Saya mencari banyak untuk mengetahui versi yang tepat, karena server WSUS menunjukkan versi yang salah. Yang terbaik adalah untuk mendapatkan revisi dari kunci registri UBR.
sumber
Menggunakan Windows Powershell, dimungkinkan untuk mendapatkan data yang Anda butuhkan dengan cara berikut
Keterangan:
ReleaseId:
Versi: kapan:
sumber
[terpecahkan]
sumber
Anda juga dapat menggunakan sesuatu seperti ini, dengan memeriksa OSVersion.Version.Major:
sumber
Anda dapat menggunakan python, untuk menyederhanakan banyak hal (berfungsi pada semua versi Windows dan semua platform lainnya):
sumber
Pada Windows 10 pengembalian: 10.0.10586.420
Anda kemudian dapat menggunakan variabel untuk mengakses properti untuk perbandingan granular
Selain itu, Anda dapat membandingkan versi sistem operasi menggunakan yang berikut ini
sumber