Software aufliste und deinstallieren
Guten Morgen,
ich möchte über folgendes Script die Software auflisten lassen:
@for /f %%i in ('reg query
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall') do
@(
for /f "tokens=3,* skip=2" %%a in ('reg query %%i /v
DisplayName ^2^>nul') do @(
for /f "tokens=3,* skip=2" %%c in ('reg query %%i /v
DisplayVersion ^2^>nul') do @( echo %%a %%b [%%c %%d] )))
Das klappt auch tadellos. Jetzt möchte ich noch eine Abfrage haben bzw. einfach die Möglichkeit irgendeine der Aufgelisteten Software zu deinstallieren.
Weiß jemand wie es gehst? Schön wäre auch noch die Ausgabe der Software in eine Excel Tabelle.
mfg
mirgue
ich möchte über folgendes Script die Software auflisten lassen:
@for /f %%i in ('reg query
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall') do
@(
for /f "tokens=3,* skip=2" %%a in ('reg query %%i /v
DisplayName ^2^>nul') do @(
for /f "tokens=3,* skip=2" %%c in ('reg query %%i /v
DisplayVersion ^2^>nul') do @( echo %%a %%b [%%c %%d] )))
Das klappt auch tadellos. Jetzt möchte ich noch eine Abfrage haben bzw. einfach die Möglichkeit irgendeine der Aufgelisteten Software zu deinstallieren.
Weiß jemand wie es gehst? Schön wäre auch noch die Ausgabe der Software in eine Excel Tabelle.
mfg
mirgue
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 82766
Url: https://administrator.de/contentid/82766
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
13 Kommentare
Neuester Kommentar
... einfach die Möglichkeit irgendeine der Aufgelisteten
Software zu deinstallieren.
Weiß jemand wie es gehst? Schön
2 Möglichkeiten zur Deinst.Software zu deinstallieren.
Weiß jemand wie es gehst? Schön
1. Du nimmst psexec und startest damit die deinst. remote auf dem client.
2. Du startest die Deinst. in einen Startskript am client.
Keine Ahnung wie man per Batch daten in Excel packt. Ich würdes das mit VBS machen.
Ichhabs etwas anders angeordnet. Aber in Excel bekommst du es so:
zum Deinstallieren könntest du das dann z.B. so machen das du die Nummer des Programms angibst das deinstalliert werden soll (wenn alle fortlaufend durchnumemriert wären:
@echo off
set "excelfile=excel.csv"
echo Programm;Version>"%excelfile%"
for /f %%i in ('reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall') do (
for /f "tokens=2* skip=2" %%a in ('reg query "%%i" /v DisplayName ^2^>nul') do (
for /f "tokens=2* skip=2" %%c in ('reg query "%%i" /v DisplayVersion ^2^>nul') do (
echo %%b [%%d]
echo %%b;%%d 1>>"%excelfile%"
)
)
)
set "skiped="
set /p nr=Welche Software soll deinstalliert werden?:
if %nr% neq 1 set "skiped=skip^=%nr% "
set "rk="
for /f "%skiped%tokens=1 delims= " %%i in ('reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall') do if not defined rk set rk=%%i
for /f "tokens=2*" %%c in ('reg query "%rk%" /v UninstallString') do "%%d"
Ja über die Nummer wars auch gedacht.
Die Durchnummerierung muß halt noch eingefügt werden. Das wäre dann ungefär so:
Die Durchnummerierung muß halt noch eingefügt werden. Das wäre dann ungefär so:
for /f %%i in ('reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall') do (
for /f "tokens=2* skip=2" %%a in ('reg query "%%i" /v DisplayName ^2^>nul') do echo %%b 1>>"%temp%\soft.txt"
)
(findstr /N /B .* "%temp%\soft.txt")|more
del "%temp%\soft.txt"
Nein. Ist irgentwie durcheinander. In einzelnen Blöcken siet das so aus:
Oder etwas verkürze, aber nicht ganz so unterteilt:
@echo off
REM Exceldatei wird erstellt
set "excelfile=ListInstSW.csv"
echo Programm;Version>"%excelfile%"
for /f %%i in ('reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall') do (
for /f "tokens=2* skip=2" %%a in ('reg query "%%i" /v DisplayName ^2^>nul') do (
for /f "tokens=2* skip=2" %%c in ('reg query "%%i" /v DisplayVersion ^2^>nul') do (
echo %%b [%%d]
echo %%b;%%d 1>>"%excelfile%"
)
)
)
REM Temponäre Liste für Deinstallation wird erstellt und angezeigt
for /f %%i in ('reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall') do (
for /f "tokens=2* skip=2" %%a in ('reg query "%%i" /v DisplayName ^2^>nul') do echo %%b 1>>"%temp%\soft.txt"
)
(findstr /N /B .* "%temp%\soft.txt")|more
del "%temp%\soft.txt"
REM Abfrage welche Software deinstalliert werden soll
set "skiped="
set /p nr=Welche Software soll deinstalliert werden?:
if %nr% neq 1 set "skiped=skip^=%nr% "
set "rk="
for /f "%skiped%tokens=1 delims= " %%i in ('reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall') do if not defined rk set rk=%%i
for /f "tokens=2*" %%c in ('reg query "%rk%" /v UninstallString') do "%%d"
Oder etwas verkürze, aber nicht ganz so unterteilt:
@echo off
REM Exceldatei und Temponäre Liste für Deinstallation wird erstellt
set "excelfile=ListInstSW.csv"
echo Programm;Version>"%excelfile%"
for /f %%i in ('reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall') do (
for /f "tokens=2* skip=2" %%a in ('reg query "%%i" /v DisplayName ^2^>nul') do (
for /f "tokens=2* skip=2" %%c in ('reg query "%%i" /v DisplayVersion ^2^>nul') do (
echo %%b [%%d]
echo %%b;%%d 1>>"%excelfile%"
echo %%b 1>>"%temp%\soft.txt"
)
)
)
REM Anzeige der Temponären Liste für die Deinstallation
(findstr /N /B .* "%temp%\soft.txt")|more
del "%temp%\soft.txt"
REM Abfrage welche Software deinstalliert werden soll
set "skiped="
set /p nr=Welche Software soll deinstalliert werden?:
if %nr% neq 1 set "skiped=skip^=%nr% "
set "rk="
for /f "%skiped%tokens=1 delims= " %%i in ('reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall') do if not defined rk set rk=%%i
for /f "tokens=2*" %%c in ('reg query "%rk%" /v UninstallString') do "%%d"
Ändere mal die Letzte Zeile von:
miniversum
for /f "tokens=2*" %%c in ('reg query "%rk%" /v UninstallString') do "%%d"
in folgende:echo "%rk%" ausgewählt
for /f "tokens=2*" %%c in ('reg query "%rk%" /v UninstallString') do ECHO "%%d"
pause
und schau ob dir das richtige Programm zur Deinstallation angezeigt wird.for /f "tokens=2*" %%c in ('reg query "%rk%" /v UninstallString') do ECHO "%%d"
pause
miniversum