dispatcher
Goto Top

Unistall Regsitry Key - Remove-Item Skript

Guten Morgen Zusammen,

ich weiß leider nicht ob das hier der richtige Bereich ist face-smile Ich hoffe Ihr könnt mir trotzdem helfen.

Ich habe ein Programm, welches ohne Installation nutzbar ist, sprich portable. Dieses Programm liegt unter "C:\Program Files (x86)\test tool". Da es portable ist und keine Werte in die Registry schreibt, habe ich einen entsprechenden Wert in der Registry angelegt, damit mir dieses Programm in der Systemsteuerung unter Programme Und Features angezeigt wird. Das funktioniert soweit auch. Der Eintrag ist vorhanden. Damit dieser Eintrag überhaupt ersichtlich ist, muss es den Eintrag "UninstallString" geben, welcher auf einen Uninstaller zeigt. Diesen habe ich mir selbst erzeugt -> leere .txt Datei nach uninst.exe umbenannt.
Das Original Tool liefert leider keine uninst.exe oder ähnliches mit.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\test tool]
"DisplayName"="test tool"  
"DisplayVersion"="1.0"  
"Publisher"="private"  
"UninstallString"="C:\\Program Files (x86)\\testfolder\\uninst.exe"  

Wie kann ich jetzt am besten erreichen, das nach dem klicken auf Deinstallieren in Programme Und Features der Ordner des entsprechenden Programms gelöscht wird und ggf. der Registry Eintrag entfernt wird. Ist das möglich?

Content-ID: 650784

Url: https://administrator.de/contentid/650784

Ausgedruckt am: 24.11.2024 um 08:11 Uhr

TomTomBon
TomTomBon 11.02.2021 aktualisiert um 10:52:14 Uhr
Goto Top
Moin,

Ich bin kein Programmierer, da sollte man besser den fragen.
Aber mir gehen gerade ein paar Sachen durch den Kopf:
  • Wenn es eine portable ist, warum dann in den besonders geschützten Bereich hinterlegen?
  • Vor allem, warum reg Einträge erzeugen die nicht notwendig sind??

  • Da du ja alles soweit hast, würde Ich eine CMD schreiben die sich selbst nach %TMP% kopiert, sich dort dann aufruft und dann die Reg-Einträge löscht samt Ordner in C:\


Mein Ansatz bei Skripten die lokal mit Adminrechten laufen sollen ist:
@echo off 
setlocal enableextensions ENABLEDELAYEDEXPANSION 
@prompt -$G 

::Deklarierung Startdatum und Zeit
set Stunde=%time: =0% 
set StartZeit=%Stunde:~0,2%-%TIME:~3,2%_Uhr
for /f "delims=" %%a in ('powershell get-date((get-date^)^) -uformat "%%Y%%m%%d"') do set datum=%%a  
set StartPunkt=_%Datum%__%StartZeit%_


:: Deklarierung Ordner
set TMP-DATA=c:\TMP-DATA
SET cmdOrdner=%TMP-DATA%\z_CMD
set OriginalDatei="%~0"  
set Auszufuehrend="%cmdOrdner%\%~n0.%StartPunkt%.cmd"  

if /I not exist %TMP-DATA% md %TMP-DATA%
if /I not exist %cmdOrdner% md %cmdOrdner%


::Abfrage nach Admin Rechten über UAC
copy "%~0" "%Auszufuehrend%"  

:ADMIN-Rights_and_Settings
net session >nul 2>&1 || (powershell -EP Bypass -NoP -C start '"%Auszufuehrend%'" -verb runas &exit /b)  

:get-ADMIN-Rights


Einfach in dem Schnippsel %Auszufuehrend% legen nach %TEMP% oder %TMP% und anschließend die lösch und unreg Routinen laufen lassen.
z.B so:
https://it-stack.de/13/04/2017/einzelne-werte-aus-registry-schluesseln-f ...
Mein Senf
mayho33
mayho33 13.02.2021 um 18:02:15 Uhr
Goto Top
In UninstallSring muss nicht wirklich eine Unin.exe oder so stehen.

Ausreichend wäre: Cmd /c rd c:\meinOrdner /q /s

Ein Eintrag in hklm\...\uninstall macht aber eigentlich nur Sinn, wenn das Programm auch wirklich vorhanden ist. Alles andere würde einen Fehler verursachen. Auch wird der Eintrag nach der Ausführung nicht aus der Registry gelöscht. Das würde der Installer machen (legacy oder msiexec)

Es gibt genug Freeware mit der du das machen kannst. INSTED, Autoit glaube ich kann das auch, wenn du gerne bastels es aber Form haben soll dann Orca.