Mercurial > trustbridge
changeset 1248:9f5893faa60b
(issue143) Only show warning when multiple users exist.
This enumerates the ProfileList registry key and looks
for SID's starting with S-1-5-21- (like the certificate
installer does) and count the users. Only when more
then one users are found the warning is shown. Otherwise
the nss-installer will be removed.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Thu, 25 Sep 2014 12:04:54 +0200 |
parents | d4b24df4eed1 |
children | 014586ef8a84 |
files | packaging/trustbridge.nsi |
diffstat | 1 files changed, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/packaging/trustbridge.nsi Thu Sep 25 12:03:18 2014 +0200 +++ b/packaging/trustbridge.nsi Thu Sep 25 12:04:54 2014 +0200 @@ -270,6 +270,9 @@ SectionEnd !ifdef WRITE_UNINSTALLER + +!include "StrFunc.nsh" + Section "Uninstall" StrCmp "$douninstcertificates" "TRUE" 0 skip_certs ExpandEnvStrings $0 %LOCALAPPDATA% @@ -281,10 +284,25 @@ ExpandEnvStrings $0 %APPDATA% Delete "$0\BSI\TrustBridge.ini" RmDir "$0\BSI" + var /GLOBAL user_count + StrCpy $user_count 0 UserInfo::GetAccountType pop $0 ${If} $0 == "admin" + ${Do} + ; Loop over profile keys + EnumRegKey $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $R0 + ${If} $R1 != "" + ${UnStrStr} $R2 $R1 "S-1-5-21-" ;Search for S-1-5-21- + ${If} $R2 != "" + IntOp $user_count $user_count + 1 + ${EndIf} + IntOp $R0 $R0 + 1 + ${EndIf} + ${LoopUntil} $R1 == "" + + ${if} $user_count > 1 MessageBox MB_ICONINFORMATION|MB_YESNO "\ Zertifikate, die für andere Nutzer im Zertifikatsspeicher von Firefox und Thunderbird installiert wurden, können erst beim der nächsten \ Anmeldung dieser Nutzer deinstalliert werden. \ @@ -294,6 +312,9 @@ Sie bitte 'Nein' und löschen Sie 'trustbridge-nss-installer.exe' manuell nachdem die anderen Nutzer sich einmal angemeldet hatten.$\r$\n \ $\r$\n\ Soll '$INSTDIR\trustbridge-nss-installer.exe' jetzt entfernt werden?" /SD IDYES IDYES deleteNSSInstaller IDNO dontDeleteNSS + ${Else} + goto deleteNSSInstaller + ${Endif} ${Else} Delete "$INSTDIR\trustbridge-nss-installer.exe" ${EndIf}