2010-05-06 7 views
7

Ich habe eine Anwendung, die als MSI-Paket bereitgestellt wird (in WiX erstellt).Ist es möglich, in Programmdateien mit eingeschränkten Rechten zu installieren?

Ich entscheide, ob für das Installationsprogramm die Berechtigungen elevated oder limited angegeben werden sollen.

Die Anwendung enthält nichts, das neben dem Standardinstallationsort, der sich unter Programmdateien befindet, erhöhte Rechte erfordert.

Nun das Problem:

  • Wenn ich erhöhten Rechten angeben, dann wird der Benutzer durch UAC für Administratorkennwort während der Installation aufgefordert wird. Dies ist nicht erforderlich und verhindert die Installation von Benutzern ohne Administratorrechte.

  • Wenn ich angeben eingeschränkt Rechten, dann wird der Benutzer mit einem Dialogfenster angezeigt, standardmäßig zur Auswahl Installationsort mit Program Files zu sein. Wenn sie den Installationsort nicht ändern (95% der Endbenutzer werden dies wahrscheinlich nicht tun), schlägt das Installationsprogramm mit einer Meldung fehl, dass sie sich an den Administrator wenden oder die Anwendung als Administrator ausführen sollten. Wenn sie das Installationsprogramm als Administrator starten, können sie problemlos in Programmdateien installieren - aber die meisten Benutzer werden wahrscheinlich nicht wissen, wie sie ein Installationsprogramm als Administrator starten.

Ich kann möglicherweise die Standard-Installationsposition z. C: \ Firmenname \ Programm \, aber das scheint mir nicht standardkonform zu sein und die Mehrheit der Benutzer wird das wahrscheinlich nicht mögen (wahrscheinlich werden sie zur Installation in Programmdateien verwendet).

Wie lösen Sie dieses Problem bei der Installation von Anwendungen unter eingeschränkten Benutzerkonten?

Antwort

6

Der alternative Standort, den Sie direkt vom C-Laufwerk vorschlagen, erfordert wahrscheinlich auch erhöhte Berechtigungen. Vor Windows 7 würde ich vorschlagen, eine frühere benutzerdefinierte Aktion zu verwenden, um den Standardspeicherort für begrenzte Installationen zu ändern. Condition it off der Privileged (oder möglicherweise) Eigenschaft, überprüfen, ob Sie MSIUSEREALADMINDETECTION für Ihren Fall festlegen müssen, und verwenden Sie etwas wie [LocalAppDataFolder]Company\Product. Leider führt dieser Ansatz zu einem Paket, das für alle Benutzer schwer zu installieren ist, da Sie es vorher erhöhen müssen, und im begrenzten Fall könnten sie trotzdem einen Zielort auswählen, der eine Erhöhung erfordert. Sie müssen vorab erhöht werden, da das Paket nicht erhöht werden darf.

Wenn Sie nur Windows 7 und höher als Ziel verwenden können, können Sie MSIINSTALLPERUSER bedingt setzen, um den Installationsort und die Höhenanforderung zu überschreiben, und stattdessen pro Benutzer installieren. In diesem Szenario könnte der Benutzer gefragt werden, ob er für alle Benutzer installieren möchte (erfordert eine Erhöhung) oder nur für sich selbst. Das Paket kann für eine Erhöhung markiert werden, und die Einstellung MSIINSTALLPERUSER überschreibt das und überspringt die UAC-Eingabeaufforderung.

+1

Nein, der alternative Speicherort erfordert keine erhöhten Berechtigungen. Ich installiere derzeit standardmäßig in C: \ Company name \ Product und das MSI-Installationsprogramm wird mit eingeschränkten Rechten erstellt und es wird weder eine UAC noch ein Fehlerdialog angezeigt. – Marek

+0

Das hört sich dann wie eine benutzerdefinierte Umgebung an, aber das ist in Ordnung, wenn Sie wissen, dass es überall dort installiert wird, wo Ihr Produkt installiert ist. Der Rest der Antwort gilt; ignorieren Sie einfach den Standortvorschlag für eingeschränkte Berechtigungen. –

-2

Führen Sie die Eingabeaufforderung (cmd) als Administrator aus.

Verwenden Sie dann den msiexec-Befehl, um die MSI-Datei auszuführen.

+0

Ich kann nicht den Endbenutzer fragen, dies zu tun – Marek

+0

Sie können den Benutzer bitten, dies zu tun ... wie für die Installation von S/W sollte man Administratorrechte haben. Es ist also nichts falsch daran, ihn darum zu bitten. Oder Sie können den Benutzer mit Administratorrechten anmelden und dann s/w installieren –

3

Es ist wahrscheinlich wichtiger, dass Ihre Software mit normalen Benutzerrechten ausgeführt wird - was, wie Sie gesehen haben, kein Problem darstellt.

Es ist nichts falsch daran, nach Administratorrechten zu fragen, um etwas zu installieren.

Entweder hat der Benutzer die Details selbst, da er aus Sicherheitsgründen ein eingeschränktes Benutzerkonto hat oder die Software trotzdem von der IT-Abteilung des Unternehmens installiert wird.