Exécuter des fichiers MSI en tant qu'administrateur à partir d'un compte d'utilisateur

18

Je suis généralement connecté en tant qu'utilisateur normal sur ma boîte Windows XP. Parfois, lorsque je veux installer une mise à jour logicielle, je ne veux pas me déconnecter et me reconnecter en tant qu'administrateur, mais je clique avec le bouton droit sur le programme d'installation et choisis "Exécuter en tant que ..." pour l'exécuter à partir de mon compte d'administrateur . Cependant, cette option ne semble exister que pour les fichiers exe, pas pour les fichiers msi.

Existe-t-il un moyen d'exécuter des fichiers msi sous un autre compte? Ou n'est-ce pas conseillé pour une raison quelconque?

Tim Pietzcker
la source
Il suffit de lancer l'installation du fichier MSI à partir d'une invite de commande élevée (cliquez avec le bouton droit sur cmd.exe et sélectionnez «exécuter en tant qu'administrateur»). Installez avec une ligne de commande quelque chose comme ceci: msiexec.exe /I "MyFile.msi" /QN /L*V "C:\msilog.log"(mettez à jour les chemins le cas échéant). Les runas devraient fonctionner correctement, je trouve simplement une invite de commande élevée plus facile.
Stein Åsmul

Réponses:

24

Les fichiers .msi peuvent être exécutés avec msiexec.exe, donc en combinaison avec la commande runas , vous pouvez accomplir ce que vous voulez:

runas /user:administrator "msiexec /i <path and filename of your msi>"

Comme un chemin complet vers le fichier est recommandé, il peut avoir besoin de guillemets et vous devez les échapper ensuite avec une barre oblique inverse \:

runas /user:administrator "msiexec /i \"<path and filename of your msi>\""
                                      ^^                               ^^
fretje
la source
en relation: serverfault.com/questions/19341/…
hyperslug
Ah merci, je n'avais pas vérifié le défaut du serveur. @fretje: Merci, mais j'ai d'abord reçu un message d'erreur indiquant que msiexec n'a pas pu ouvrir le fichier msi. Il semble que vous devez spécifier le chemin d'accès complet au fichier msi. Le répertoire courant à partir duquel runas est exécuté n'est pas transmis à la commande en cours d'exécution, dans ce cas msiexec (ce qui est logique).
Tim Pietzcker
Il semble que vous devriez également pouvoir simplement l'utiliser msiexec /a package.msi- voir la msiexecpage sur TechNet (qui dit que c'est pour Server 2003, mais semble identique au contenu de la page correspondante dans le système d'aide XP).
SamB
@SamB: L'installation administrative signifie simplement installer une image d'une source d'installation locale sur le réseau à partir de laquelle d'autres peuvent alors installer l'application sur leur machine (au lieu d'utiliser un CD-ROM). L'utilisateur peut alors choisir de s'exécuter à partir de la source lors de l'installation et le programme d'installation utilise la plupart des fichiers du produit directement depuis le réseau. Ce n'est donc pas ce que l'OP signifie (exécuté en tant qu'administrateur).
fretje
@fretje: Oh ... c'est déroutant!
SamB
6

Vous pouvez toujours ouvrir une invite de commande en tant qu'administrateur (cliquez avec le bouton droit sur runas ou sur start-> run-> runas / user: administrator cmd), accédez au répertoire dans lequel se trouve votre MSI et exécutez msiexec / i product.msi

Ou ajoutez ceci à votre registre: HKEY_CLASSES_ROOT \ Msi.Package \ shell \ runas \ command Valeurs: Install & as ... HKEY_CLASSES_ROOT \ Msi.Package \ shell \ runas \ command Valeur: msiexec / i "% 1"

Sam
la source
0

Jetez un oeil à runaspartir de la ligne de commande. Vous pouvez lancer n'importe quoi sous le compte spécifié.

Richard
la source