2008-10-30 4 views

Antwort

4

Ihre benutzerdefinierte Aktion wurde sofort ausgeführt, als sie in InstallExecuteSequence festgestellt wurde. anstatt wann das eigentliche Installationsskript ausgeführt wurde. Dadurch wurde Ihre benutzerdefinierte Aktion mit den Benutzerberechtigungen und nicht mit den erhöhten Berechtigungen des Systems ausgeführt. Diese Reihe von Blog-Posts wird im Detail erklären, was passiert, http://blogs.msdn.com/rflaming/archive/2006/09/23/768146.aspx. Sie sollten keine benutzerdefinierten Aktionen haben, die sich auf den Status der Maschine auswirken, die nicht als verzögerte benutzerdefinierte Aktionen ausgeführt werden.

11

+1 Lanze. Begriff es eine andere Art und Weise und geben ein paar mehr Infos

Es gibt zwei Schritte in dem MSI-Prozess

  • Immediate - wo Sie sammeln Vorlieben (Installationsverzeichnis etc.) - keine Änderungen an der Maschine vorgenommen werden sollen hier

und dann später

  • Latente - das läuft, nachdem alle Präferenzen gesammelt wurden und tatsächlich die Installation durchführt.

Einige weitere Gedanken

  • Immediate nicht immer lief sein kann (z Skript installieren), so verlassen Sie sich nicht darauf.

Es gibt zwei Modi, die eine latente Aktion in

    laufen
  • NoImpersonate - aka NT Authority \ System die volle Erlaubnis auf Ihrem Computer hat

  • Impersonate - Wer auch immer die Installation gestartet hat.

Mit UAC aktiviert Impersonate einen Kicker hat. You will only have the standard user token and no admin rights, auch wenn der Benutzer tatsächlich ein Administrator ist - also behalten Sie NoImpersonate, wenn möglich, sonst wird Ihre benutzerdefinierte Aktion nichts tun können.

Verwandte Themen