Mercurial > trustbridge
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: |