Ich bin gerade dabei, ein NSIS-Installations skript von XP auf Win7 zu aktualisieren. Aus unbekannten Gründen kann das Installationsprogramm unter Win7 nicht in die Registry schreiben, auch nicht als Administrator. Das eingebettete UAC-Manifest im Installationsprogramm ist so eingestellt, dass Administratorrechte erforderlich sind (indem RequestExecutionLevel admin im Skript angegeben wird). Außerdem habe ich versucht, mit der rechten Maustaste auf das Installationsprogramm zu klicken und Als Administrator ausführen auszuwählen. Das Deaktivieren der UAC im Betriebssystem behebt das Problem ebenfalls nicht.
Wenn ich das gleiche Installationsprogramm unter XP ausführe, wird der Registrierungsschlüssel wie vorgesehen geschrieben.
Ich habe mein Installations skript verkleinert, um das Problem zu isolieren:
!define APP_NAME "MyTestApp"
Name "${APP_NAME}"
OutFile "${APP_NAME} Setup.exe"
RequestExecutionLevel admin
Page instfiles
Section -Core
SetDetailsView show
WriteRegStr HKLM "Software\XyzCompany\${APP_NAME}\Installation" "VersionString" "V0.0.0"
SetAutoClose false
SectionEnd
Andererseits bin ich in der Lage, in eingeschränkte Ordner zu schreiben (z.B. C:\ProgramData) (hier hat standardmäßig nur der Administrator Schreibzugriff). Habe ich hier etwas wirklich Offensichtliches übersehen? Ich benutze NSIS 2.45.