Top-Themen

Aktuelle Themen (A bis Z)

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 Registry - Programm Version auslesen

Mitglied: BKAMk2

BKAMk2 (Level 1) - Jetzt verbinden

19.02.2008, aktualisiert 13.07.2008, 10963 Aufrufe, 7 Kommentare

Hallo ihr Administratoren,

ich habe folgendes Problem:

Ich soll eine Batch Datei schreiben, die mir in der Registry nach einem bestimmten Programm sucht und mir sagt welche Version dieses Programm hat.
Bis jetzt bin ich so weit gekommen, dass mir die insallierten Programme ausgegeben werden.

Nur ab da komme ich nicht weiter.

Wäre Super wenn ihr mir Helfen könntet!

01.
FOR /F "usebackq" %%i IN (`reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products`) DO ( 
02.
 
03.
reg query "%%i\InstallProperties" /v DisplayName 
04.
 
05.
 
06.
07.
 
08.
pause
Jetzt soll quasi die ausgegebene Liste nach einem bestimmten Programm durchsucht werden und mir die Versionsnummer ausgeben.

Ist das zu realisieren?

Danke schonmal.

MfG
BKAMk2
Mitglied: stbewo
19.02.2008 um 08:55 Uhr
Hi BKAMk2,

es geht auch einfacher. Falls Du XP Pro SP2 hast dann mit.

WMIC /OUTPUT:Software.htm Product get name,version /FORMAT:hform

Hiermit bekommst Du eine HTML Liste mit Programmname und Versionsangabe.

Oder mit

FOR /F "tokens=1,2,3 delims=," %%A IN ('"WMIC product get name,version /FORMAT:csv"') DO (
Rem %%B = Programmname, %%C = Version
Echo "%%B" "%%C"
)

Gruß
Stefan
Bitte warten ..
Mitglied: BKAMk2
19.02.2008 um 09:09 Uhr
Das Problem ist nur das aus der Batch-Datei ein Installer gestartet werden soll, wenn eine veraltete Version des Programmes eingetragen ist.

Aber danke schonmal für den tipp.

€dit:

Hab gesehen das du noch einen weiteren Vorschlag gepostet hast.
Funktioniert leider auch nicht.

Also es ist recht schwierig zu erklären, was wir genau vorhaben.

Es soll in der Registry nach einem bestimmten Programm gesucht werden und die Versionsnummer überprüft werden.
Die Versionsnummer wird in der Batch durch einen
01.
SET version=VERSIONSNUMMER 
festgelegt.

Sollte die Versionsnummer nicht mit der in der Batch übereinstimmen, wird eine zweite Batch gestartet, die eine Installationsroutine startet. Dadurch wird der Wert in der Registry gleich aktualisiert.

Das Problem an der Sache ist, das Windows in der Registry unter "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\"
sehr eigenwillig und per Zufall (scheint mir) generierte Schlüssel ablegt.

Und da wir nicht wissen können in welchem Schlüssel die Versionummer steht müssen wir alle durchsuchen.
Und damit nicht jedes Programm eine Installation startet muss der Name auch verglichen werden.

Ich hoffe ich habe jetzt nicht jeden entmutigt.

Wo steckt der Bieber eigentlich?
Bitte warten ..
Mitglied: Biber
19.02.2008 um 11:00 Uhr
Moin BKAMk2,

bei mir würde folgende Mimik am CMD-Prompt zum (Teil-)Erfolg führen:
[Eingabezeilen beginnen mit ">"]
01.
>Set "suchname=MetaFrame Presentation Server Client" 
02.
>SET "rootkey=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products" 
03.
>for /f %i in ('reg query "%rootkey%"') do @For /f "tokens=2,*" %j in ('reg query "%i\InstallProperties" /v Displayname ^2^>nul ^|find "Displayname"') do @if "%k"=="%suchname%" for /f "tokens=2,*" %a in ('reg query "%i\InstallProperties" /v DisplayVersion^|find "Version"') do @echo %k: %b 
04.
MetaFrame Presentation Server Client: 9.230.50211
Im Batch sähe das formatiert in etwa so aus:

01.
 @echo off & setlocal 
02.
Set "suchname=MetaFrame Presentation Server Client" 
03.
Set "rootkey=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products" 
04.
 
05.
for /f %%i in ('reg query "%rootkey%"') do ( 
06.
    For /f "tokens=2,*" %%j in ('reg query "%%i\InstallProperties" /v Displayname ^2^>nul ^|find "Displayname"') do ( 
07.
      if "%%k"=="%suchname%" ( 
08.
         for /f "tokens=2,*" %%a in ('reg query "%%i\InstallProperties" /v DisplayVersion^|find "Version"') do set "version=%%b" 
09.
10.
))       
11.
 
12.
Echo Ermittelte DisplayVersion für [%suchname%]: [%version%]
[ungetestet]

Natürlich ist es so etwas hakelig an zwei Stellen:
1) Man/frau muss den exakten "Displaynamen" wissen.
2) die DisplayVersion-Formatierung ist seeeeeeehr frei in der Gestaltung. Bzw. in der Darstellung.

Ich würde erstmal mit diesem Ansatz versuchen, wie weit ihr damit bei Eurem speziellen Fall kommt.
Ggf. müssen wir dann noch mal ein Brainstorming über eine andere Strategie machen.

Grüße
Biber
Bitte warten ..
Mitglied: stbewo
19.02.2008 um 11:02 Uhr
Ich habe es jetzt einmal mit Versionsnummer angepasst.

setlocal enabledelayedexpansion
SET Versionsnummer=1.0
FOR /F "tokens=1,2,3 delims=," %%A IN ('"WMIC product get name,version /FORMAT:csv"') DO (
set "Program=%%B"
set "Version=%%C"
if "!PROGRAM!"=="Photo Editor" (
if "!VERSION:~0,-1!"=="%versionsnummer%" echo "!PROGRAM!" "!VERSION:~0,-1!"
)
rem Anzeige aller Programme "REM" entfernen.
rem echo "!PROGRAM!", "!VERSION:~0,-1!"
)

Gruß
Stefan
Bitte warten ..
Mitglied: BKAMk2
20.02.2008 um 13:34 Uhr
So hat jetzt Funktioniert.
Bin euch echt zu tiefsten Dank verpflichtet.

Hier nochmal der Finale Code:
01.
@echo off 
02.
setlocal enabledelayedexpansion 
03.
SET versionsnummer=1.6 
04.
set "found=0" 
05.
FOR /F "tokens=1,2,3 delims=," %%A IN ('"WMIC product get name,version /FORMAT:csv"') DO ( 
06.
set "Program=%%B" 
07.
set "Version=%%C" 
08.
if "!PROGRAM!"=="WinRar" ( 
09.
set "found=1" 
10.
if not "!VERSION:~0,-1!"=="%versionsnummer%" call \\server1\update.bat 
11.
if "!VERSION:~0,-1!"=="%Versionsnummer%" echo OK! 
12.
13.
14.
15.
rem Anzeige aller Programme "REM" entfernen. 
16.
rem echo "!PROGRAM!", "!VERSION:~0,-1!" 
17.
IF "!found!"=="0" call \\server1\install.bat
Nochmals vielen Dank!

MfG
BKAMk2
Bitte warten ..
Mitglied: stbewo
20.02.2008 um 15:13 Uhr
Um es noch etwas einfacher zu machen.

SET ProgVers=6.6.0.8
SET Programm=Nero
FOR /F "tokens=1,2 skip=1 delims= " %%A IN ('"WMIC product where (Name='%Programm%' and version='%ProgVers%') get name,version"') DO (
Echo Programm = %%A Version = %%B
)

Damit bekommst Du nur die Programme zurück, die der Abfrage entsprechen. Du musst aber vorher wissen nach was man sucht. Die Vorgehensweise kennst Du jetzt mit WMIC.

Gruß
Stefan
Bitte warten ..
Mitglied: BKAMk2
20.02.2008 um 15:44 Uhr
Er zeigt mir doch jetzt garnix mehr an.
Was er jetzt macht entspricht auch vollkommen dem was er machen sollte.
Er prüft ob die Software installiert ist. Wenn ja überprüft er die Version.
Sollte die Versionsnummer anders sein als erwünscht startet er ein Update.

Sollte die Software nicht installiert sein startet er eine Installationsbatch.

Aber vielen Dank. Ich denke alleine wäre ich nie auf die WMIC gekommen

Selbst mein Ausbilder war erstaunt was es nicht alles gibt
Bitte warten ..
Ähnliche Inhalte
Windows 10

Gänderte Registry einträge auslesen

gelöst Frage von winterj86Windows 103 Kommentare

Hallo, im Zuge eines Troulbeshootings wurden vor einigen Tagen auf einem Client, Registry Werte verändert bzw. hinzugefügt. Leider hat ...

Windows 7

Auslesen von Schlüsseln aus der Windows Registry

gelöst Frage von HumbleBumbleWindows 72 Kommentare

Hallo Liebe Community, ich möchte gerne mit Hilfe einer Batch mehrere Schlüssel aus der Windows Registry auslesen um diese ...

Batch & Shell

Batch Registry auslesen - anpassen

gelöst Frage von pi0h.kkBatch & Shell5 Kommentare

Hallo Zusammen, ich versuche seit einiger Zeit eine ausgelesen Reg-Datei anzupassen, sodass sie als *.ini von einer Applikation genutzt ...

Lizenzierung

Programm soll in verschiedenen Versionen lizenziert sein

Frage von YanmaiLizenzierung20 Kommentare

Hallo ihr Administratoren, ich möchte ein Programm entwickeln, was man sich in einer kostenlosen, einer standard und einer premium ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 23 StundenWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 TagSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 TagMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 TagHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++27 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux27 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless22 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL19 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...