Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VB-Script - Prüfen ob Programm installiert ist

Frage Entwicklung Basic

Mitglied: Hamst0r

Hamst0r (Level 1) - Jetzt verbinden

06.09.2010, aktualisiert 15:30 Uhr, 9331 Aufrufe, 14 Kommentare

Ich würde gerne ein VB-Script über Gruppenrichtlinien verteilen, dass beim Start die jeweilig installierte Office Version sucht, die Version erkennt und diese in eine Textdatei auf dem Server speichert. Ich will ermitteln, welche Office Versionen jeweils auf verschiedenen Pcs vorhanden sind.

Das hier habe ich im Netz gefunden:


01.
'officepath="C:\Program Files\Microsoft Office\Office\" 
02.
'set fso=createobject("scripting.filesystemobject") 
03.
'returnstring=fso.getfileversion(officepath & "winword.exe") 
04.
'wscript.echo returnstringset 
05.
'fso=nothing 
06.
 
07.
MsgBox "Start" 
08.
 
09.
Set objWMI = GetObject("winmgmts:\\PC0761\root\CIMV2") 
10.
Set colItems = objWMI.ExecQuery("SELECT Version FROM Win32_Product WHERE Name Like 'Microsoft Office%'") 
11.
 
12.
If colItems.Count = 0 Then 
13.
	GetOfficeVersion = "0" 
14.
End If 
15.
     
16.
For Each objItem In colItems 
17.
	GetOfficeVersion = Left(objItem.Version, InStr(1,objItem.Version,".")-1) 
18.
Next 
19.
     
20.
Set objWMI = Nothing 
21.
Set colItems = Nothing 
22.
Set objWMI = Nothing 
23.
 
24.
MsgBox GetOfficeVersion 
25.
 
26.
MsgBox "Ende"
Leider dauert die Suche im Win32 mithilfe von den WMI einige Minuten, das möchte ich möglichst beschleunigen. Kennt ihr eine schnellere Methode um das Programm ausfindig zu machen und die Versionsnummer auszulesen? Ich könnte doch theoretisch auch im Startmenü suchen, dort sind es ja nur wenige Dateien die durchforstet werden müssen?!

Lg

Hamst0r
Mitglied: bankaifan
06.09.2010 um 15:33 Uhr
Dann versuch es doch einfach mal mit dem Startmenü.

Der Pfad ist

C:\Dokumente und Einstellungen\%USERNAME%\Startmenü\Programme
Bitte warten ..
Mitglied: Hamst0r
06.09.2010 um 15:40 Uhr
Da gäbe es ein problem, ich habe gerade erfahren, dass das Script vor dem Login ausgeführt werden soll, sprich es lässt sich vor dem Login ja bekanntlich schlecht auf ein Startmenü zugreifen :/
Bitte warten ..
Mitglied: bankaifan
06.09.2010 um 15:47 Uhr
Und wie stellst du dir dann vor das zu prüfen? also wenn ich jetzt mal so tippe sag ich mal es geht nicht vor dem login :D

Du musst ja mal überlegen dass installationen zwar auf einer platte sind aber doch userspezifisch sind. d. h. du müsstest auf der platte direkt suchen und wenn man einfach so vor dem login auf die HDD zugreifen könnte wäre der Login irgendwie nicht ganz soo sinnvoll. aber gut. vllt weiß hier noch jmd anderes Rat. Interessiert mich jetzt auch.
Bitte warten ..
Mitglied: Karo
06.09.2010 um 16:03 Uhr
Hoi,

Du suchst doch nur die Version, oder? Warum liest Du dann nicht aus der Registry die entsprechenden Keys und wertest sie aus
....
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\10.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0
...
oder
...
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Common\ProductVersion
....

oder die entsprecheneden Schlüssel aus
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall


Karo
Bitte warten ..
Mitglied: Hamst0r
06.09.2010 um 16:09 Uhr
Dann bräuchte ich aber die speziellen Registry einträge für Word z.b., weil es ja durchaus sein kann, dass ich tools wie sharepoint 2010 installiert habe, aber eig nur office 2007 besitze. Er legt mir in der registry also dann einen 12.0 order sowie einen 14.0 ordner an.

@bankaifan: Das Script muss vor dem Login ausgeführt werden via Gruppenrichtlinien, nach dem Login sind ja die Adminrechte weg und somit wäre auch keine installation möglich.
Bitte warten ..
Mitglied: Karo
07.09.2010 um 09:22 Uhr
Moin,
....
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Common\ProductVersion?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Common\ProductVersion?
....
....

Karo
Bitte warten ..
Mitglied: Hamst0r
07.09.2010 um 09:30 Uhr
Welche Versionen Stecken hinter 11.0 und 12.0, etwa 2003 und 2007 ? Wie heiß dann der Regordner von 2000 ? Und gelten die Versionsnummer dann nur für Word oder für das ganze office paket?
Bitte warten ..
Mitglied: Karo
07.09.2010 um 13:00 Uhr
na, nen bissi Raten macht es doch erst interessant
schau mal hier
http://en.wikipedia.org/wiki/Microsoft_Office
http://en.wikipedia.org/wiki/Microsoft_Outlook
Das hilft Dir sicherlich.

Karo
Bitte warten ..
Mitglied: Hamst0r
07.09.2010 um 14:49 Uhr
Sprich quasi einfach nach dem Motto

Gucke in Registry Order "...12.0 " rein, falls was drin ist, schreib in Textdatei, falls nicht, weiter zu Ordner 13.0

Sehe ich das richtig?
Bitte warten ..
Mitglied: Karo
07.09.2010 um 15:02 Uhr
ja fast, denn unter diesem Zweig gibt es den Wert 'LastProduct' und den kannst Du doch wunderhübsch auswerten....

Karo
Bitte warten ..
Mitglied: Hamst0r
07.09.2010 um 15:37 Uhr
Folgendes Problem.

Ich habe Office 2010 nicht installiert, aber habe den Sharepoint Designer 2010 zum Beispiel. Sprich ich habe in der Registry unter Office einen 14.0 Ordner, obwohl ich garkein Office 2010 installiert habe :/
Bitte warten ..
Mitglied: Karo
07.09.2010 um 15:44 Uhr
ist denn auch der Wert LastProduct vorhanden?
Bitte warten ..
Mitglied: Hamst0r
07.09.2010 um 15:53 Uhr
Leider ja!

Mir ist gerade noch eine andere Idee gekommen:

z.b. 11.0/Word/InstallRoot

Dort kann man zumindest den Installationspfad von der .exe auslesen, sprich dann im Endeffekt über die Eigenschaften der .exe Datei von Word die Versionsnummer rausfinden. Leider sehr umständlich und es wäre insgesamt auch praktisch, wenn man direkt noch rauslesen könnte obs Standard oder Prof Edition wäre. Man man man ^^
Bitte warten ..
Mitglied: Hamst0r
09.09.2010 um 09:19 Uhr
Soo Leute, ich kann euch die Lösung vorstellen:

Set objWord = CreateObject("Word.Application")
Wscript.Echo "Version: " & objWord.Version
Wscript.Echo "Build: " & objWord.Build
objWord.Quit

So einfach ist es, aber darauf zukommen, naja^^

Er erstellt ein Word Objekt und prüft dann die Eigenschaften und gibt sie aus. objWord = CreateObject("Word.Application") ist der Schlüsselpunkt, auf den man kommen muss
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Outlook & Mail
gelöst Email Anhänge speichern VB Script aber nur bestimmte Dateitypen (Outlook) (4)

Frage von LindeUnimog zum Thema Outlook & Mail ...

VB for Applications
gelöst VB Script rekursiv statt nur ein Ordner (4)

Frage von Saschaaaaa zum Thema VB for Applications ...

VB for Applications
gelöst VB Script nach gefundenem Wort die nächsten 4 Zeichen ersetzten (2)

Frage von deutsch73 zum Thema VB for Applications ...

Windows Server
Windows 2008R2 Raid1 Installiert wie Prüfen ! (2)

Frage von serguni zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (23)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...