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
GELÖST

Office Version via wsh auslesen

Frage Entwicklung Batch & Shell

Mitglied: redzack

redzack (Level 1) - Jetzt verbinden

23.12.2009 um 11:33 Uhr, 5555 Aufrufe, 2 Kommentare

Stecke mal wieder voll im Scriptfieber und sehe den Wald vor lauter Bäumen nicht mehr.
Ich versuche via Script die Officeversion auszulesen welche gerade aktuell auf dem System installiert ist. Doch irgendwo hat sich der Fehlerteufel in mein Script eingeschlichen vielleicht könnt Ihr ihn ja entdecken.

Hier mal das Script.


01.
Function GetOfficeVer()  
02.
  On Error Resume Next  
03.
  Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE  
04.
  Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & "/root/default:StdRegProv")  
05.
   
06.
  If Err.Number <> 0 Then  
07.
    GetOfficeVer = "unknow"  
08.
  End If  
09.
 
10.
 
11.
  sValueName = "Path"  
12.
  sRegPre = "SOFTWARE\Microsoft\Office\"  
13.
  sRegPost = "\Common\InstallRoot"  
14.
 
15.
 
16.
  If oReg.GetStringValue(HKLM, sRegPre & "12.0" & sRegPost, sValueName, sValue) = 0 Then  
17.
    GetOfficeVer = "Office 2007"  
18.
  Elseif oReg.GetStringValue(HKLM, sRegPre & "11.0" & sRegPost, sValueName, sValue) = 0 Then  
19.
    GetOfficeVer = "Office 2003"  
20.
  Elseif oReg.GetStringValue(HKLM, sRegPre & "10.0" & sRegPost, sValueName, sValue) = 0 Then  
21.
    GetOfficeVer = "Office 2002"  
22.
  Elseif oReg.GetStringValue(HKLM, sRegPre & "9.0" & sRegPost, sValueName, sValue) = 0 Then  
23.
    GetOfficeVer = "Office 2000"  
24.
  Elseif oReg.GetStringValue(HKLM, sRegPre & "8.0" & sRegPost, sValueName, sValue) = 0 Then  
25.
    GetOfficeVer = "Office 97"  
26.
  Else  
27.
    GetOfficeVer = "0" 
28.
  End If  
29.
End Function  
30.
 
31.
msgbox GetOfficeVer
Vielen Dank im Vorraus
lg
red
Mitglied: redzack
23.12.2009 um 11:57 Uhr
Hat sich erledigt ;)

01.
Function GetOfficeVer()  
02.
  strComputer = "." 
03.
   
04.
  On Error Resume Next  
05.
  Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE  
06.
  Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "/root/default:StdRegProv")  
07.
   
08.
  If Err.Number <> 0 Then  
09.
    GetOfficeVer = "unknow"  
10.
  End If  
11.
 
12.
 
13.
  sValueName = "Path"  
14.
  sRegPre = "SOFTWARE\Microsoft\Office\"  
15.
  sRegPost = "\Common\InstallRoot\"  
16.
 
17.
 
18.
  If oReg.GetStringValue(HKLM, sRegPre & "12.0" & sRegPost, sValueName, strValue) = 0 Then  
19.
    GetOfficeVer = "Office 2007"  
20.
  Elseif oReg.GetStringValue(HKLM, sRegPre & "11.0" & sRegPost, sValueName, strValue) = 0 Then  
21.
    GetOfficeVer = "Office 2003"  
22.
  Elseif oReg.GetStringValue(HKLM, sRegPre & "10.0" & sRegPost, sValueName, strValue) = 0 Then  
23.
    GetOfficeVer = "Office 2002"  
24.
  Elseif oReg.GetStringValue(HKLM, sRegPre & "9.0" & sRegPost, sValueName, strValue) = 0 Then  
25.
    GetOfficeVer = "Office 2000"  
26.
  Elseif oReg.GetStringValue(HKLM, sRegPre & "8.0" & sRegPost, sValueName, strValue) = 0 Then  
27.
    GetOfficeVer = "Office 97"  
28.
  Else  
29.
    GetOfficeVer = "unknow" 
30.
  End If  
31.
End Function  
32.
 
33.
msgbox GetOfficeVer
Funktioniert nun bestens.

lg
red
Bitte warten ..
Mitglied: 76109
23.12.2009 um 12:51 Uhr
Hallo redzack!

Alternativ könnte man es auch so machen:
01.
Function GetOfficeVer() 
02.
   On Error Resume Next 
03.
   
04.
   Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE 
05.
   
06.
   strComputer = "." 
07.
   
08.
   Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "/root/default:StdRegProv") 
09.
   
10.
   If Err.Number <> 0 Then GetOfficeVer = "unknow":  Exit Function 
11.
 
12.
   sValueName = "Path" 
13.
   sRegPre = "SOFTWARE\Microsoft\Office\" 
14.
   sRegPost = "\Common\InstallRoot" 
15.
 
16.
   aVersion = Array("12.0", "11.0", "10.0", "9.0", "8.0") 
17.
   aVerYear = Array("2007", "2003", "2002", "2000", "1997") 
18.
     
19.
   GetOfficeVer = "0" 
20.
 
21.
   For i = 0 To UBound(aVersion) 
22.
     If oReg.GetStringValue(HKLM, sRegPre & aVersion(i) & sRegPost, sValueName, sValue) = 0 Then 
23.
        GetOfficeVer = "Office " & aVerYear(i):  Exit For 
24.
     End If 
25.
   Next 
26.
End Function
Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Router & Routing

192.168er Adresse im öffentlichen Netz

(2)

Erfahrungsbericht von visco-c zum Thema Router & Routing ...

Ähnliche Inhalte
Microsoft Office
gelöst Excel: Einzelne Zeilen einer mehrzeiligen Zelle auslesen (3)

Frage von Booster07 zum Thema Microsoft Office ...

Windows Server
KMS unter Win2012R2 - Office 2013 (5)

Frage von bensonhedges zum Thema Windows Server ...

Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Zusammenarbeit
Als Administrator im Großraumbüro (29)

Frage von Dopamin85 zum Thema Zusammenarbeit ...

Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (22)

Frage von Driphex zum Thema Exchange Server ...

Hyper-V
HYPER V und USB (16)

Frage von Hendrik2586 zum Thema Hyper-V ...

SAN, NAS, DAS
Backupserver für KMU (14)

Frage von Leo-le zum Thema SAN, NAS, DAS ...