Centrum Skryptów -Microsoft office

W jaki sposób określić, która wersja programu Word jest zainstalowana na komputerze? Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy.

W jaki sposób określić, która wersja programu Word jest zainstalowana na komputerze?

Cześć Skrypciarzu! W jaki sposób określić, która wersja programu Word jest zainstalowana na komputerze?

-- RR

Cześć RR! Jak się okazuje, to pytanie jest trudniejsze, niż mogłeś się spodziewać. To dlatego, że WMI nie jest zbyt mocny w pobieraniu informacji o zainstalowanym oprogramowaniu. Teoretycznie, aby otrzymać informację o wersji Microsoft Office, mógłbyś użyć tego skryptu:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")



Set colApps = objWMIService.ExecQuery _

    ("Select * from Win32_Product Where Caption Like '%Microsoft Office%'")

For Each objApp in colApps

    Wscript.Echo objApp.Caption, objApp.Version

Next

Dlaczegóżby zatem nie użyć tego skryptu? Cóż, z dwóch powodów. Po pierwsze, skrypt używa operatora Like, który jest dostępny tylko w Windows XP i Windows 2003. (Żeby było ciekawiej, klasa Win32_Product nie jest domyślnie zainstalowana w Windows 2003). Jeśli pracujesz na Windows 2000, to wiele nie zdziałasz. Co najwyżej mógłbyś pobrać wszystkie wystąpienia klasy Win32_Product, a następnie sprawdzić, czy podpis któregoś z nich zawiera słowo Microsoft Office.

Po drugie, w ten sposób zdobędziesz informacje o wszystkich fragmentach, które zawierają w swojej nazwie słowo Microsoft Office. Oczywiście będzie tam Microsoft Office Professional Edition 2003, ale będą również takie aplikacje, jak Microsoft Producer, czy Microsoft Office PowerPoint 2003. W związku z tym być może będziesz musiał zmodyfikować skrypt, aby otrzymać tylko informację o "prawdziwym" Microsoft Office.

Zanim zapytasz: tak, informacja o wersji jest przechowywana w rejestrze, ale niestety, nie zawsze wiadomo, w której części rejestru jej szukać. Położenie tej informacji zależy od zainstalowanej wersji Office, jak również od tego, czy była to pierwsza instalacja, czy też uaktualnienie wcześniejszej wersji Office. Oznacza to tyle, że wysłanie do rejestru zapytania o zainstalowaną na komputerze wersję Office może być bezowocne, zwłaszcza w organizacjach, w których na komputerach zainstalowane są różne wersje Office.

Więc jak do diabła określić zainstalowaną na komputerze wersję Worda? Cóż, po namyśle stwierdziliśmy, że najlepszym sposobem będzie po prostu zapytać samego Worda. Oto skrypt, który tworzy wystąpienie Microsoft Word, zwraca echo wersji i jej numeru, po czym zamyka wystąpienie:

Set objWord = CreateObject("Word.Application")

Wscript.Echo "Version: " & objWord.Version

Wscript.Echo "Build: " & objWord.Build

objWord.Quit

Cztery krótkie linie kodu, a działanie gwarantowane. Co więcej, wystąpienie Word, tworzone przez ten skrypt, uruchamia się w niewidocznym oknie, więc nie narobi nawet zamieszania na ekranie. Czego chcieć więcej?

Jeśli chcesz dowiedzieć się, która wersja Worda jest zainstalowana na komputerze zdalnym, po prostu dodaj nazwę komputera jako opcjonalny drugi parametr przekazywany do CreateObject. Ten zmodyfikowany skrypt sprawdza wersję Worda zainstalowaną na komputerze zdalnym atl-ws-01:

Set objWord = CreateObject("Word.Application", "atl-ws-01")

Wscript.Echo "Version: " & objWord.Version

Wscript.Echo "Build: " & objWord.Build

objWord.Quit

Owszem, to może wyglądać jak wyższa matematyka, ale w gruncie rzeczy ten sposób jest łatwiejszy i pewniejszy, niż używanie klasy Win32_Product, czy próbowanie znalezienia informacji w rejestrze.

Więcej informacji

Zobacz inne artykuły w naszym archiwum

 Do początku strony Do początku strony

 


Centrum Skryptów -Microsoft office