Windows: Exécution de la commande privilégiée de l'utilisation de CMD non-privilégié (ou Java)

StackOverflow https://stackoverflow.com/questions/7322136

Question

Je vais avoir un service qui fonctionne comme administrateur et écoute sur un port. Mon programme GUI parlera au service de l'administrateur pour les éléments qui nécessitent des privilèges d'administrateur.

Si le service ne fonctionne pas encore, je vais devoir commencer. Comment puis-je obtenir mon programme de GUI pour exécuter une commande en tant qu'administrateur? Je suppose que l'utilisateur sera demandé s'ils veulent continuer.

J'espère qu'il ya quelque chose que je pourrais taper dans une fenêtre CMD car qui devrait répondre très bien dans mon programme Java. Je pense quelque chose comme run-as-admin javaw my-service.jarrun-as-admin est la commande qui demande de poursuivre ou non.

Était-ce utile?

La solution

Vous ne pouvez pas exécuter un fichier de commandes en tant qu'administrateur. Vous devez créer un raccourci vers ce fichier puis définissez le drapeau dans le raccourci « Exécuter en tant qu'administrateur », si cela est vraiment ce que vous voulez faire.

Pour ce faire à partir du bureau, sélectionnez le raccourci, cliquez droit et Propriétés-> Raccourci tab-> bouton Avancé. Vérifiez ensuite Exécuter en tant que case administrateur.

Pour ce faire par programme, voir Comment configurer « Exécuter en tant qu'administrateur » drapeau sur le raccourci créé par l'installateur MSI

Autres conseils

Windows contient l'outil « runas » qui peut être utilisé pour démarrer un exécutable avec un compte utilisateur.

Sur la ligne de commande que vous utilisez:

runas /user:Administrator "javaw -jar my-service.jar"

Le seul inconvénient est que vous devez taper le mot de passe, vous ne pouvez pas fournir le mot de passe comme argument à la commande runas

Nous utilisons la bibliothèque Wrapper pour cela: http://sourceforge.net/projects/wrapper/

Le site officiel semble souffrir de problèmes de dns dynamiques à l'heure actuelle, est donc ici Wayback version archive .

A partir de la ligne de commande (et par extension, Java), vous pouvez installer, désinstaller, démarrer et arrêter votre application Java en tant que service.

Vous avez un problème. processus non admin ne peuvent pas démarrer les services. La chose la plus simple à faire est de faire en sorte que le service démarre automatiquement. Je vous recommande fortement de prendre cette route.

Qu'est-ce que vous envisagez de faire consisterait à créer une application d'aide qui inclut le UAC manifeste avec requestedExecutionLevel ensemble à requireAdministrator. Cette application aide pourrait alors démarrer le service. Le problème est qu'il exige que l'utilisateur connecté est dans le groupe d'administrateurs que vous ne pouvez pas garantie sera le cas.

Dans l'ensemble, le démarrage du service est automatiquement préférable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top