2008-10-30 8 views
2

Je maintiens une installation depuis un moment mais je ne suis pas vraiment un expert. Maintenant, on m'a demandé de trouver une solution pour cela:Augmenter par programme les privilèges de l'utilisateur

Notre logiciel est toujours vendu avec un ordinateur car il doit être exécuté dans un environnement très contrôlé. Le programme d'installation a besoin de privilèges d'administration pour être exécuté. Jusqu'à présent, nous avions deux utilisateurs différents, l'un avec des droits administratifs et l'autre sans. Notre service clientèle se connecte en tant qu'administrateur, installe le logiciel et redémarre la machine pour que l'utilisateur puisse accéder en tant qu'utilisateur normal.

Maintenant, nous voulons que l'utilisateur puisse installer le logiciel lui-même, mais nous ne voulons pas qu'il ait accès en tant qu'administrateur, car il peut modifier des choses qu'il ne devrait pas modifier.

Alors, est-il possible de lever par programme les privilèges de l'utilisateur pendant l'installation et de les réduire par la suite? Le programme d'installation est fait en utilisant InstallShield mais nous utilisons vbscript pour vérifier certains pré-requis.

Répondre

4

Découvrez CPAU. Il vous permet de créer une commande cryptée qui exécutera l'installation en tant qu'administrateur.

EDIT: This est une liste plus complète d'outils similaires.

1

Si vous cherchez une boîte à outils pour faire ce genre de chose, la technologie Microsofts MSI a ceci intégré: L'accès administrateur est nécessaire pour installer le fichier MSI initial, les correctifs supplémentaires (MSP je pense) sont signés numériquement par le MSI d'origine et sont donc considérés comme sûrs - les utilisateurs peuvent les installer sans nécessiter d'élévation de l'administrateur.

Vous pouvez faire la même chose: Dans le cadre de votre installation administrative, installez un service. Le service peut créer un canal nommé - auquel vous donnez explicitement des ACL utilisateur - ou même simplement un socket ou surveiller un dossier de dépôt qui permet au code au niveau utilisateur de communiquer avec le code de service (en cours d'exécution avec SYSTEM ou accès configuré). Le service peut alors utiliser son SERVICE ou les autorisations de niveau de compte configurées pour emprunter l'identité d'un administrateur ou effectuer d'autres tâches au nom de l'utilisateur sans jamais accorder à l'utilisateur une autorisation élevée, même temporairement.

Questions connexes