DipiRunAs // Lancement de commandes sous un compte défini

dipirunas01.png
français anglais allemand espagnol italien portugais russe   (pour contribuer, rendez-vous sur la page des fichiers de langues)

Il y a quelque temps j'ai remplacé l'ancien ordi de mon fils aîné qui tournait sous Windows XP par un plus récent sous Windows 7. Cette migration n'a pas été sans conséquences puisqu'au lancement d'un de ses jeux favoris, la fenêtre de l'UAC apparaissait désormais, l'empêchant de jouer. Eh ouais, il n'est pas admin de sa machine ! sourire

Pour contourner cette sécurité qui devenait un réel problème (un ado mécontent c'est vraiment très pénible !), je me suis mis en quête d'une solution. J'ai testé plusieurs méthodes/outils (dont l'excellent SuperExec de Jean-Claude BELLAMY) mais je n'ai rien trouvé de simple et efficace pour que mon fils puisse enfin lancer ce foutu FlyFF. J'ai donc développé vite fait un petit soft permettant de faire une "élévation de privilèges", utilisant pour ce faire un compte admin codé en dur dans l'appli... Et hop, pas propre-propre mais ça a tourné comme ça pendant plus d'un an.

Et puis quelques mois plus tard, l'éditeur de FlyFF a sorti un nouveau jeu. Bien entendu, ce dernier nécessitait lui-aussi d'être lancé en tant qu'admin. Mais plutôt que de me cantonner à recompiler mon utilitaire après modification du nom de l'exécutable à lancer, je me suis dit qu'il était préférable de le transformer en véritable outil paramétrable et utilisable par d'autres.

C'est comme ça que DipiRunAs est ainsi né !

Euh... c'est quoi ce truc ?!

Cet outil va vous permettre de lancer un exécutable (éventuellement accompagné de paramètres) sous un autre compte. Par exemple lancer une appli nécessitant d'être admin pourra l'être par un simple utilisateur... Il s'agit d'un petit outil sans prétention, totalement "portable" (dès lors que le Framework .NET 4.52 est présent sur votre machine) donc qui ne nécessite pas d'être "installé", développé en C#...

Comment cela fonctionne-t-il ?

Vraiment simplement, vous allez voir.

La première étape consiste en la création d'un fichier de configuration qui contiendra les informations nécessaires à l'exécution : le nom de l'exécutable, ses éventuels paramètres, le compte (pour l'utilisation d'un compte du domaine, utiliser la syntaxe compte@domaine) sous lequel l'appli devra être exécutée et le mot de passe associé. Bien entendu, ces données ne sont pas stockées en clair d'une part pour ne pas compromettre le compte utilisé, mais aussi pour éviter qu'un petit malin y apporte des modifications dans le but d'exécuter autre chose que ce que vous aviez prévu. Pour couronner le tout, le fichier généré contient aussi la "signature" de l'exécutable à lancer, au cas où le même (ou un autre) petit malin chercherait à remplacer l'exécutable à lancer par un cmd.exe, par exemple.

La seconde étape, encore plus simple, se résume à créer un raccourci vers DipiRunAs.exe accompagné du nom du fichier de paramètres.

Génération d'un fichier de configuration

Via une fenêtre d'invite de commande, placez-vous dans le dossier de l'outil.

Lancez-le avec le paramètre /create suivi du nom du fichier que vous souhaitez créer, "test" par exemple. En l'absence de ce second paramètre, l'outil utilisera par défaut "DipiRunAs.dra"

La fenêtre d'édition de configuration de l'appli s'ouvre et fait apparaître cinq champs de saisie et une case à cocher :

  • le nom du fichier de configuration
  • le nom de l'exécutable qui devra être lancé (éventuellement accompagné de son chemin si DipiRunAs n'est pas placé dans le même répertoire). L'utilisation des variables d'environnement est ici autorisée.
  • une case à cocher permettant d'inhiber la vérification de la somme de contrôle de l'exécutable spécifié. Ceci peut être nécessaire si ledit exécutable est voué à changer, ce qui vous imposerait de devoir mettre à jour le présent fichier .dra. Mais attention : en cochant cette case, cette vérification ne sera plus effectuée ce qui peut poser un problème de sécurité important si l'utilisateur a le droit d'écrire dans le dossier contenant l'exécutable à lancer. Car il pourra alors le remplacer par autre chose...
  • les éventuels paramètres
  • le compte sous lequel l'exécutable devra être lancé
  • l'éventuel mot de passe associé au compte (à noter que la correspondance compte/mot de passe n'est pas vérifiée ici, si la saisie est erronée, une erreur se produira à l'exécution de la commande)

Une fois ces champs renseignés, vous pouvez tester la configuration ou cliquer sur le bouton OK pour l'enregistrer. Si rien d'anormal n'est détecté, un message d'information s'affiche pour vous informer du succès de la création du fichier de configuration et l'application se ferme. Pour tester, il vous suffit de faire glisser votre fichier .dra sur l'icone de DipiRunAs...

Modification d'un fichier de configuration existant

Le principe est le même que pour la création. Remplacez juste le /create par /edit. Là encore, le nom du fichier est optionnel, s'il est absent l'outil cherchera à traiter "DipiRunAs.dra".

Une autre façon d'accéder au "mode édition" d'un fichier .dra : lancer l'éventuel raccourci (ou faire glisser le fichier .dra sur l'exécutable) tout en pressant une des touches Shift.

Vous noterez que le champ "Mot de passe" est vide, question de sécurité. Vous ne voudriez quand même pas que vos enfants ou vos utilisateurs se servent d'une configuration existante pour lancer ce qu'ils veulent sous votre compte ?!

Mise en œuvre

Bien entendu, vous ne pouvez pas demander à vos utilisateurs de "faire glisser" le fichier .dra sur l'icone de l'outil comme je viens de vous le conseiller pour essayer votre premier test.

Il vous faudra juste créer un raccourci vers l'outil et indiquer en paramètre le nom (éventuellement précédé de son emplacement s'il ne se trouve pas dans le même dossier) du fichier de configuration contenant les informations à traiter. C'est dans le champ "Cible" de la fenêtre de propriétés du raccourci que cela se passe. Attention à ne pas oublier d'entourer de double-quotes en cas de présence d'espaces dans les chemins/noms !!!

Exemple :

  • C:\Temp\DipiRunAs.exe cmd.dra
  • "C:\Program Files\gPotato\FlyFF\DipiRunAs.exe" flyff.dra
  • "C:\Program Files\Dipisoft\DipiRunAs\DipiRunAs.exe" "C:\Program Files\gPotato\FlyFF\flyff.dra"

Voilà, j'espère que ce nouvel outil rendra service à nombre d'entre vous.

Une dernière petite mise en garde : assurez-vous bien qu'en permettant à un utilisateur de lancer un logiciel ou une commande dans un autre contexte que le sien, cela ne lui permette pas d'accéder à des fonctionnalités qui pourraient s'avérer "dangereuses". Je suis sûr que vous êtes conscient que si le fait de lancer calc.exe sous le compte de l'admin ne permet pas d'user de ces droits pour autre chose, il en est tout autre avec un cmd.exe. Mais sachez aussi qu'un simple notepad.exe peut se transformer en gestionnaire de fichiers grâce à ses anodines fonctions "ouvrir" et "enregistrer sous...". Et lancé en mode admin, un simple utilisateur pourrait faire des dégâts...

Attention : certains antivirus réagissent au téléchargement de la plupart de mes outils développés en .NET dont cet outil fait partie, annonçant une menace. Cela est lié au fait que ces applis sont "obfusquées" pour ne pas permettre leur décompilation. Une méthode également utilisée par les créateurs de virus, malheureusement. Ceci explique également le score généralement inquiétant à l'analyse VirusTotal. Inutile de me le signaler, je suis au courant. Je vous certifie que tous mes produits sont sains, alors soit vous me faites confiance, soit vous devrez vous passer de cet outil. pas ma faute


Télécharger Télécharger ce logiciel (version portable ZIP)


Date de création : 30/12/2013 @ 23:36
Dernière modification : 18/06/2020 @ 07:38
Catégorie : - Outils divers
Page lue 41220 fois
 

Réactions à cet article

Réaction n°31 

par Denis le 05/05/2022 @ 12:44

Bonjour,

merci pour ces utilitaires, si pratiques et faciles d'utilisation !

Concernant Dipirunas, est-il envisageable de modifier le fichier de configuration en ligne de commande ? En clair, nous utilisons cet outil pour créer des routes lors des connexions VPN sur notre réseau. Il faut donc des droits administrateur.

La politique de sécurité nous demandant de changer les mots de passe régulièrement, on voudrait pouvoir éviter de repasser sur chacun des postes qui se connecte en VPN pour mettre à jour le mot de passe... Par le biais d'un script ou par la GPO sur l'AD...

[réponse de damien, le 05/05/2022 à 20h26]

Mon temps libre se fait rare alors je préfère le consacrer pour travailler sur des applis/fonctionnalités utiles à une majorité d'utilisateurs plutôt qu'à une minorité (même si ça m'est arrivé à quelques reprises). Or il s'agit-là d'un besoin très particulier qui ne ferait qu'un heureux... toi.

Maintenant, si ta boite est prête à participer d'une façon ou d'une autre, je suis ouvert à toute proposition.


Réaction n°30 

par Eric le 28/10/2021 @ 12:36

Bonjour ! possible d'autoriser pour autre chose que les exe, bat et cmd ? idéalement .msi !!! Merci de ta réponse !

Eric

[réponse de damien, le 28/10/2021 à 21h22]

En fait les fichiers .msi ne sont pas de vrais exécutables ; cette extension est associée à msiexec.exe qui se lance automatiquement pour traiter le .msi demandé.

Cela étant, il est quand même possible de "lancer" un .msi depuis DipiRunAs. Deux méthodes :

  • via le sélecteur d'exécutable (la fenêtre qui s'affiche en cliquant sur le bouton "...") : même si les fichiers .msi ne sont pas affichés parce qu'ils n'appartiennent pas à la liste des extensions proposées, il suffit de saisir "*.msi" dans le champ "Nom du fichier" puis cliquer sur "Ouvrir" (ou presser la touche "Entrée") et la fenêtre de sélection fera alors apparaître ces fichiers.
  • il est également possible de coller directement le chemin/nom du fichier .msi dans le champ "Exécutable" de l'appli
  • enfin, tu peux aussi spécifier "%windir%\system32\msiexec.exe" dans le champ "Exécutable" et mettre /i suivi du chemin/nom du fichier .msi dans le champ "Paramètres".

Réaction n°29 

par mamercier le 23/10/2020 @ 16:15

ouin, l'applis est fonctionnel mais il manque l'option de démarrer en mode "elevate", ce n'est pas une bonne pratique de garder le compte administrateur actif, il est recommandé d'utiliser un autre compte qui a les droits admin. Le désavantage de ce compte c'est qu'il n'est pas "elevate" par défaut, donc si on pourrait rouler l'application directement en mode "elevate" ce serait aidant. Mais sinon ça fonctionne bien. Merci!

[réponse de damien, le 24/10/2020 à 12h50]

Je sais que l'appli n'est pas parfaite. Je verrai à l'occasion pour l'améliorer, mais n'attends rien à court terme.


Réaction n°28 

par Ngals le 02/09/2020 @ 13:51

Les 2 sont sur le Onedrive. Qui n'est pour le moment utilisé que sur un poste. J'ai bien essayé avec les guillements car effectivement il y a des espaces mais dans ce cas l'application me dit que le nom du fichier de configuration ne correspond pas aux standards acceptés... Caractères non conformes dans le chemin d'accès.

Sans les guillemets la création du fichier dra se fait mais au lancement il dit qu'une erreur a été rencontrée lors de la tentative d'impersonnation. verifier que le compte existe. Nom de répertoire non valide.

ET du coup en écrivant cela, je me rend compte du problème potentiel: les fichiers sont sur un répertoire utilisateur auquel le compte utilisé pour le compte dans le dra du DipiRunAs n'a pas accès...

Je vais rester sur du C:\temp

[réponse de damien, le 02/09/2020 à 21h05]

Quand je parlais de mettre des double-quotes, je ne parlais pas de le faire dans la fenêtre de DipiRunAs mais dans la ligne de commande qui le lance. Comme j'essaye de l'expliquer en fin d'article, avec les trois exemples où on peut voir les double-quotes en rouge.

Maintenant, c'est sûr que tu as mis le doigt sur ton souci : ton dossier OneDrive n'est probablement pas accessible avec le compte que tu as spécifié pour l'exécution de la commande.


Réaction n°27 

par Ngals le 02/09/2020 @ 09:55

Beau travail! Merci cela aide beaucoup. J'ai juste un petit bug quand j'ai voulu le mettre en place en permanence sur mon OneDrive le nom a rallonge du répertoire semble lui poser problème. sur C:temp aucun soucis.

Merci encore du travail

[réponse de damien, le 02/09/2020 à 12h42]

Qu'est-ce qui était sur ton OneDrive : l'exécutable de DipiRunAs, le(s) fichier(s) .dra, ou les deux ? Sauf erreur, si tu ouvres ton OneDrive sur plusieurs machines, le chemin peut différer (si le nom du profil est différent par exemple), ce qui peut expliquer le problème.

Ou bien c'est dû à la présence de caractères spéciaux (espaces par exemple) dans le chemin... N'oublie pas de double-quoter le chemin/nom du .dra que tu passes en paramètre de l'exécutable pour éviter ce genre de problème.


Réaction n°26 

par DIGGI le 22/03/2020 @ 12:32

Bonjour Damien,

Il me semble qu'il y a une petite erreur en haut de la page de description de DipiRunAs:

"Dipiscan est multilingue mais ne possède actuellement que très peu de traductions"

Ce n'est pas plutôt "DipiRunAs" dont il s'agit ici ?

[réponse de damien, le 22/03/2020 à 12h43]

Oui, tout à fait. Erreur de copier/coller, désolé et merci.


Réaction n°25 

par lsda26 le 19/03/2020 @ 11:53

Bonjour et merci pour ces soft qui sont super utiles!

Je suis coincé sur Dipirunas:

J'arrive à lancer un .bat qui lance l'import d'un fichier de conf d'un vpn.

Mais la commande me renvoi: Admin rights are required to import configuration files.

Je pense que ca doit venir du fait que la console ne se lance pas en administrateur...

mais comment faire?

Ou est-ce qu'il ne faudrait pas que DipirunAs desactive l'UAC en administrateur  pour que la commande d'import passe ?

[réponse de damien, le 19/03/2020 à 14h20]

En principe DipiRunAs s'utilise avec le compte Administrateur donc le problème ne se pose pas... pas ma faute


Réaction n°24 

par DMike92 le 22/10/2019 @ 23:11

Encore merci pour tout ton travail. C'est rassurant de voir que tu obtiens les mêmes résultats !

Bonne soirée

[réponse de damien, le 23/1/2019 à 03h46]

Il n'y a pas de quoi. Même si mes applis sont gratuites, je trouve normal d'en assurer le SAV... cligne


Réaction n°23 

par DMike92 le 22/10/2019 @ 19:54

Le compte administrateur est bien actif comme le montre # net user administrateur Tous mes ordis sont dans le même groupe de travail (qui n'est pas Workgroup) Mais je suis sous Windows 7 (intégrale).

Bon tant pis, au moins je sais maintenant que ça pourra fonctionner quand je passerai à W10.

[réponse de damien, le 22/10/2019 à 21h11]

Je viens d'effectuer le même test sur une VM en Windows 7 (intégrale en workgroup) et je confirme que ça ne fonctionne pas, contrairement à Windows 10. pas ma faute

Il te reste donc soit à migrer vers Windows 10, soit à définir un mot de passe pour ton compte Administrateur.


Réaction n°22 

par DMike92 le 22/10/2019 @ 17:06

Merci de prendre mon problème en main coucou

Cette option était déjà desactivée mais ne résoud pas notre problème : sans mot de passe je ne peux utiliser DipiRunAs !

Merci pour tous ces conseils.

Bien cordialement Michel

(P.S. Pas trouvé comment inclure ta réponse dans la mienne sur le site)

[réponse de damien, le 22/10/2019 à 17h15]

J'ai testé la méthode sur ma machine avant de t'envoyer mon précédent message et ça a fonctionné nickel.

Si ce n'est pas le cas pour toi, vérifie que le compte Administrateur est bien actif.

Autre piste : tes postes sont en Workgroup ou dans un domaine ? Dans ce second cas, il est probable qu'une GPO "écrase" le paramétrage local mentionné dans mon message précédent.

PS.: inutile de chercher pour éditer un message précédent, il n'y a que moi qui peux le faire.