comparison packaging/trustbridge.nsi @ 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 1c77c4c6aff4
children 303de3160a83
comparison
equal deleted inserted replaced
1247:d4b24df4eed1 1248:9f5893faa60b
268 dont_run: 268 dont_run:
269 269
270 SectionEnd 270 SectionEnd
271 271
272 !ifdef WRITE_UNINSTALLER 272 !ifdef WRITE_UNINSTALLER
273
274 !include "StrFunc.nsh"
275
273 Section "Uninstall" 276 Section "Uninstall"
274 StrCmp "$douninstcertificates" "TRUE" 0 skip_certs 277 StrCmp "$douninstcertificates" "TRUE" 0 skip_certs
275 ExpandEnvStrings $0 %LOCALAPPDATA% 278 ExpandEnvStrings $0 %LOCALAPPDATA%
276 nsExec::ExecToLog '"$INSTDIR\trustbridge-certificate-installer.exe" "list=$0\BSI\TrustBridge\list-installed.txt" "choices=uninstall"' 279 nsExec::ExecToLog '"$INSTDIR\trustbridge-certificate-installer.exe" "list=$0\BSI\TrustBridge\list-installed.txt" "choices=uninstall"'
277 Delete "$0\BSI\TrustBridge\list*.txt" 280 Delete "$0\BSI\TrustBridge\list*.txt"
279 RmDir "$0\BSI\TrustBridge" 282 RmDir "$0\BSI\TrustBridge"
280 RmDir "$0\BSI" 283 RmDir "$0\BSI"
281 ExpandEnvStrings $0 %APPDATA% 284 ExpandEnvStrings $0 %APPDATA%
282 Delete "$0\BSI\TrustBridge.ini" 285 Delete "$0\BSI\TrustBridge.ini"
283 RmDir "$0\BSI" 286 RmDir "$0\BSI"
287 var /GLOBAL user_count
288 StrCpy $user_count 0
284 289
285 UserInfo::GetAccountType 290 UserInfo::GetAccountType
286 pop $0 291 pop $0
287 ${If} $0 == "admin" 292 ${If} $0 == "admin"
293 ${Do}
294 ; Loop over profile keys
295 EnumRegKey $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $R0
296 ${If} $R1 != ""
297 ${UnStrStr} $R2 $R1 "S-1-5-21-" ;Search for S-1-5-21-
298 ${If} $R2 != ""
299 IntOp $user_count $user_count + 1
300 ${EndIf}
301 IntOp $R0 $R0 + 1
302 ${EndIf}
303 ${LoopUntil} $R1 == ""
304
305 ${if} $user_count > 1
288 MessageBox MB_ICONINFORMATION|MB_YESNO "\ 306 MessageBox MB_ICONINFORMATION|MB_YESNO "\
289 Zertifikate, die für andere Nutzer im Zertifikatsspeicher von Firefox und Thunderbird installiert wurden, können erst beim der nächsten \ 307 Zertifikate, die für andere Nutzer im Zertifikatsspeicher von Firefox und Thunderbird installiert wurden, können erst beim der nächsten \
290 Anmeldung dieser Nutzer deinstalliert werden. \ 308 Anmeldung dieser Nutzer deinstalliert werden. \
291 $\r$\n$\r$\n\ 309 $\r$\n$\r$\n\
292 Die Deinstallation der Zertifikate wird von der folgenden Anwendung durchgeführt: $\r$\n '$INSTDIR\trustbridge-nss-installer.exe' $\r$\n$\r$\n\ 310 Die Deinstallation der Zertifikate wird von der folgenden Anwendung durchgeführt: $\r$\n '$INSTDIR\trustbridge-nss-installer.exe' $\r$\n$\r$\n\
293 Wenn Zertifikate auch aus den Thunderbird- und Firefox-Speichern anderer Nutzer deinstalliert werden sollen, wählen \ 311 Wenn Zertifikate auch aus den Thunderbird- und Firefox-Speichern anderer Nutzer deinstalliert werden sollen, wählen \
294 Sie bitte 'Nein' und löschen Sie 'trustbridge-nss-installer.exe' manuell nachdem die anderen Nutzer sich einmal angemeldet hatten.$\r$\n \ 312 Sie bitte 'Nein' und löschen Sie 'trustbridge-nss-installer.exe' manuell nachdem die anderen Nutzer sich einmal angemeldet hatten.$\r$\n \
295 $\r$\n\ 313 $\r$\n\
296 Soll '$INSTDIR\trustbridge-nss-installer.exe' jetzt entfernt werden?" /SD IDYES IDYES deleteNSSInstaller IDNO dontDeleteNSS 314 Soll '$INSTDIR\trustbridge-nss-installer.exe' jetzt entfernt werden?" /SD IDYES IDYES deleteNSSInstaller IDNO dontDeleteNSS
315 ${Else}
316 goto deleteNSSInstaller
317 ${Endif}
297 ${Else} 318 ${Else}
298 Delete "$INSTDIR\trustbridge-nss-installer.exe" 319 Delete "$INSTDIR\trustbridge-nss-installer.exe"
299 ${EndIf} 320 ${EndIf}
300 skip_certs: 321 skip_certs:
301 deleteNSSInstaller: 322 deleteNSSInstaller:

http://wald.intevation.org/projects/trustbridge/