MenüHomeBlogMagic

Batch Suche nach installierter Applikations GUID

Um eine Installation zu automatisieren lässt man gerne Batches oder CMDs laufen welche eine Software nach der anderen installiert und das System automatisch einrichtet.

Manchmal ist es aber sinnvoll nicht stur jedes Programm einfach zu installieren, sondern vorher zu überprüfen ob sich das zu installierende Programm bereits auf dem Gerät befindet.

Windows speichert die installierten Programme in der Registry ab, diese lassen sich in der Kommandozeile durchsuchen.
Hier ein kleines Beispiel:

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | findstr /I /C:"{EB533907-C5BA-42BD-8E86-D55C42701DC6}" && [exec what ever]

In diesem Fall wird [exec what ever] ausgeführt wenn die GUID {EB533907-C5BA-42BD-8E86-D55C42701DC6} gefunden wurde.

Damit wissen wir jetzt, dass das entsprechende Programm bereits installiert ist. Um den Installationsprozess zu überspringen kann mit GOTO gearbeitet werden:

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | findstr /I /C:"{B5D0021D-9B5D-4573-A355-9DC5A754DF9B}" && goto NOEXEC

Install.exe

:NOEXEC

In diesem Fall wird die Install.exe ausgelassen und mit :NOEXEC weiter gemacht wenn das Programm bereits installiert ist.

Prüfen auf GUID und Version

Ein von mir gern eingesetzes Script um zu der GUID noch die Versionsnummer zu prüfen:

SET GUID={B5D0021D-9B5D-4573-A355-9DC5A754DF9B}
SET VERSION=3.6.0.0
SET EXECUTABLE=Installer.exe
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | findstr /I /C:"%GUID%" && goto CHECKVERSION
goto NOEXEC

:CHECKVERSION
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%GUID%" | findstr /I /C:"Version" | findstr /I /C:"%VERSION%" && goto NOEXEC

:INSTALL
echo Installation started
%EXECUTABLE%
goto FINISH

:NOEXEC
echo Installation skipped

:FINISH
Permalink: https://adirmeier.de/Blog/ID_287
Tags: Blog, Batch, cmd, GUID, Windowsvon am 2019-11-12