Cara Mendeteksi Nama Versi Microsoft Office


1

Secara terprogram, apa metode yang bisa mendapatkan nama versi Microsoft Office yang diinstal ? Saya telah mencoba setiap perintah Powershell, VBScript, dan kueri WMI yang bisa saya temukan. Saya telah memeriksa melalui registry dan sistem file, dan saya tidak dapat menemukan metode yang sempurna untuk mengumpulkan versi Office yang diinstal.

Metode terdekat yang dapat saya buat adalah menggunakan kueri WMIC:

wmic product where "Name like '%Office%'" get name,version

Sayangnya, ini mengembalikan berbagai aplikasi dan bahkan jika lebih halus difilter tidak memberi tahu saya jika "Office 16" adalah "Pro", "Professional Plus", atau "Office365".

Jika tidak, nilai registri di

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Scenario\INSTALL\ProductstoAdd

ada setidaknya pada versi 2016, tetapi tidak dengan versi yang lebih lama. Dan itu sendiri tidak mengandung nama yang ramah sehingga skrip lebih lanjut diperlukan untuk mengonversi data ProPlusRetail.16_en-us_x-noneke "Office 2016 Professional Plus" atau O365BusinessRetail.16_en-us_x-noneke "Office 365 Business (2016)"

Saya berharap seseorang memiliki metodologi yang lebih mudah daripada sekelompok pernyataan if / elseif / elseif dalam skrip besar.


Coba sesuatu dari jawaban ini
DrZoo

Metodologi itu hanya mengembalikan "Tahun" dari versi Office. Seperti yang disebutkan, saya perlu menentukan lebih lanjut produk seperti "Office 2016 Professional Plus" atau "Office 365 Business (2016)".
Beems

superuser.com/questions/1097079/... Script ini tampaknya cukup solid, namun tidak memberi tahu Anda versi lisensi mana yang diinstal ...
Kage

Saya melihat yang itu. Sayangnya, itu tidak menentukan perbedaan antara "Office 2016 Professional Plus" dan "Office 365 Business (2016)". Karena pertanyaan ini dibatalkan, saya terpaksa menulis naskah deteksi yang sama sekali baru di Powershell yang melibatkan puluhan dan berbagai mekanisme untuk mendapatkan versi yang spesifik dan bernama.
Beems

Jawaban:


2

Anda dapat menemukan nama Microsoft Office yang diinstal dalam registri. Prosesnya mungkin otomatis mengikuti langkah-langkah ini:

Periksa kunci registri
untuk versi 32-bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
untuk versi 64-bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Jika kunci cocok dengan salah satu pola ID Produk, sesuai Deskripsi skema penomoran untuk GUID kode produk di Office 2016 , 2013 , 2010 , 2007 , 2003 , XP , 2000 , lalu baca DisplayNameNilai Nilai, yang sebenarnya adalah nama yang diinstal Kantor.

Saya juga menemukan Robust Office Inventory Scan Tool (ROISCAN) , yang melakukan pencarian yang cukup lengkap untuk versi Microsoft Office yang diinstal.


1
Terima kasih! Saya tidak menyadari bahwa GUID Office tidak diacak. Itu pasti akan membantu deteksi.
Beems

1

Coba ini:

setlocal enableDelayedExpansion
for /f "tokens=2 delims==" %%O in ('ftype ^|findstr /r /I "\\OFFICE[0-9]*" 2^>nul') do (
    set "verp=%%~O"
    goto :end_for
)
:end_for

for %%P in (%verp%) do (
    set "off_path=%%~dpP"
    for %%V in ("!off_path:~0,-1!") do (

     set "office_version=%%~nV"
     goto :end_for2
    )
)
:end_for2

if [%office_version%] == [] echo No Office installed & goto end
echo %office_version%

:end
endlocal

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.