2011-11-09 2 views
2

J'utilise actuellement un VB-Skript, qui est utilisé pour démarrer un fichier setup.exe, qui nécessite des privilèges administratifs pour être installé correctement, s'il n'est pas démarré en tant qu'administrateur, il retournera un message d'erreur correspondant. Le script et l'installation se trouvent tous deux sur un partage de fenêtre situé dans un réseau classé "Worokplace" dans Win7 (32 bits).Win7: Quelle est la différence entre démarrer Windows Explorer en mode Admin vs cmd.exe en mode Admin?

J'ai l'effet étrange foloowing, que je ne comprends pas:

  • Je cours explorer.exe comme « Administrateur », et lancer le script par un double clic, qui se traduit par un errormessage final de configuration. exe nécessite des privilèges administratifs pour fonctionner. Je pensais que lorsque j'exécuter explorer.exe en tant qu'Administrateur, tous les autres processus commencés en dedans auront les mêmes privilèges.

  • J'ai essayé la même chose en démarrant cmd.exe en tant qu'administrateur, exécutez le vbs en tapant simplement myscript.vbs, et l'installation réussit.

De toute évidence, le même scénario a commencé à partir explorer avec les droits d'administration et a commencé de cmd.exe avec droit administratif obtient enfin différentes privilleges, ce qui est ce que je ne comprends pas du tout. Quelqu'un peut-il expliquer ce qui se passe là-bas?

Merci beaucoup

+0

Avez-vous également exécuté votre script à partir du partage via cmd.exe? C'est susceptible d'être pertinent ici. – themel

+0

Utilisez-vous un package MSI ou un moteur d'installation propriétaire? –

+0

Oui, bien sûr j'ai couru le script du même endroit. J'ai également remarqué que lorsque vous démarrez un explor.exe avec des droits d'administration, puis démarrez cmd à partir de celui-ci, la fenêtre cmd n'a aucun droit administratif. Il semble donc que l'explorateur ne passe pas les droits/privilèges accordés aux processus qu'il démarre, ce que je trouve quelque peu confus. – Erik

Répondre

1

Tout processus peut démarrer un processus enfant et le processus parent peut choisir quel environnement (y compris les droits d'accès), le processus de l'enfant se déroulera. La différence est simplement que cmd.exe permet des processus enfants à hériter de son propre environnement, tandis que explorer.exe n'appliquera les privilèges d'administrateur que si on lui a demandé de le faire, soit par un clic droit et «Exécuter en tant qu'administrateur», soit en éditant les propriétés d'un raccourci.

L'essentiel est simplement qu'ils sont codés de cette façon.

Questions connexes