![]() |
SuperExec | Miroir de ce document à l'adresse : http://www.bellamyjc.org/fr/superexec.html |
Exécution d'applications sous un compte administrateur
- Principes
- Mode administrateur
- Mode utilisateur
- Téléchargement et installation
- Historique
- Appel à traducteurs
Principes
Certaines applications ou tâches diverses nécessitent d'être exécutées avec des privilèges de compte administrateur. Or si l'utilisateur en cours n'appartient pas à ce groupe, cela est impossible. Afin de contourner cette difficulté, Microsoft a prévu trois outils :
- SU.EXE du Resource Kit de NT
- RUNAS.EXE (intégré dans Windows à partir de Windows 2000).
- La commande contextuelle "Exécuter en tant qu'administrateur"
Le problème majeur posé par ces outils est que l'administrateur doit être présent physiquement près de l'ordinateur de l'utilisateur afin de saisir de façon interactive son nom et mot de passe (et si l'administrateur communique ces informations, cela remet en cause la sécurité du système).
En particulier, ni SU, ni RUNAS ne permettent d'intégrer dans une ligne de commande le mot de passe de l'administrateur, qui doit obligatoirement être saisi dynamiquement (exception faite de RUNAS sous Windows XP PRO, avec le commutateur /savecred, qui permet de mémoriser ce mot de passe pour une exécution ultérieure, mais qui est peu pratique).
Le script xrunas.vbs que j'ai écrit contourne cette difficulté, mais la sécurité est considérablement compromise, puisque le mot de passe du compte administrateur va apparaître en clair dans la commande du script.
C'est pourquoi j'ai conçu SUPEREXEC, logiciel utilitaire (écrit en Delphi 7, puis Delphi 2006), qui affranchit de la contrainte de saisie en temps réel du mot de passe tout en garantissant la sécurité du système.
SUPEREXEC fonctionne sous les systèmes
d'exploitation suivants :
Il ne fonctionne pas sous Windows NT4 car certaines fonctions (chiffrement, gestion de processus, gestion réseau) manquent sous ce système. |
Il permet de préparer une exécution, en enregistrant dans un fichier de type XML (extension .XSE) les informations suivantes (intégralement chiffrées) :
- le nom du compte utilisateur ou groupe d'utilisateurs - local ou global (domaine)
- l'application concernée (exécutable, script, composant enfichable,...)
- les paramètres passés à l'application
- le dossier de travail
- le nom et le mot de passe d'un compte administrateur
- des paramètres éventuels supplémentaires :
- une date limite d'exécution de l'application
- un compteur d'exécution
L'exécution de l'application sera refusée à l'utilisateur :
- si l'application n'a pas été autorisée à l'utilisateur ni à un groupe auquel il appartient.
- si une date limite a été définie et si elle est périmée.
- si un compteur a été défini et s'il est dépassé.
Dans ce cas, tous les fichiers nécessaires (fichiers .XSE, logiciels, certificat, raccourcis sur le bureau, ...) peuvent être copiés d'un simple clic sur les ordinateurs distants.
![]() Les fichiers nécessaires sont alors envoyés par messagerie électronique sous la forme de fichier compressé unique mis en pièce-jointe dans un courrier généré automatiquement. |
Remarques :
- en raison des restrictions réseau intrinsèques à Windows XP Edition Familiale qui anonymise toute connexion entrante, SUPEREXEC ne peut être exécuté que localement et non pas à distance sur un ordinateur fonctionnant sous ce système.
- l'exploration d'un autre groupe de travail ou domaine peut prendre un certain temps.
Il est possible de choisir le niveau d'exploration du réseau :- ordinateur local seul
- exploration manuelle du réseau
- exploration automatique du réseau (tous les ordinateurs de tous les groupes et domaines) à partir d'une plage donnée d'adresses IP.
- Les applications choisies doivent résider sur l'ordinateur concerné.
- SUPEREXEC est entièrement compatible avec UAC (User Account Control), à savoir le contrôle des comptes utilisateurs sous Windows Vista, Windows 7 (et au-delà).
- Dans le cas où une application est de type console (ipconfig, nbtstat, netstat, net time, ...), elle sera exécutée à travers un script créé dynamiquement et de telle façon que la fenêtre ne se ferme pas à la fin de l'exécution si on le souhaite.
- En ce qui concerne les ordinateurs distants, SUPEREXEC active à distance :
- le service d'accès au registre
- les partages administratifs
SuperExec.exe programme principal, réservé aux administrateurs, servant à planifier les applications RunSE.exe programme "runtime", pour tout utilisateur, servant à exécuter les applications. InstSE.exe programme d'installation du runtime et des fichiers de données dans le cas d'un
envoi par courrier électroniqueSuperExec.cer certificat de sécurité CAPICOM.dll bibliothèque Microsoft redistribuable de gestion des certificats <code de langue>\SuperExec.lib fichier contenant tous les messages et textes. <code de langue>\SuperExec.chm le présent document d'aide. SuperExec.rtf le présent document au format RTF Licence.rtf la licence de ce logiciel
Afin de garantir leur origine, tous les exécutables de SuperExec (SuperExec.exe,
RunSE.exe, InstSE.exe) sont certifiés par un certificat auto-signé
par l'auteur.
La première fois que l'un de ces programmes est exécuté, cela entraine l'ouverture de la
boite de dialogue suivante :
L'empreinte numérique (SHA1) de ce certificat doit être obligatoirement égale à : |
1494 3A78 05A3 1D30 2AD4 9635 01E0 79D9 826E 3421 |
On retrouve cette information dans l'onglet "Signatures numériques" des propriétés des fichiers exécutables.
Préparation
des applications (mode administrateur)
SUPEREXEC fonctionne à la fois localement et à distance, si bien qu'il est possible de gérer de la même façon aussi bien l'ordinateur local que les ordinateurs de n'importe quel groupe de travail ou domaine accessible depuis le réseau.
SUPEREXEC se présente sous la forme d'une boite de dialogue ,
composée d'une barre de menu et de boutons, ainsi que 3 zones (réseau,
applications, journal) :
Pour plus d'informations, consulter le fichier d'aide compilé
SuperExec.chm
(ce fichier est fourni également avec le logiciel)
![]() |
|
Exécution
des applications (Mode
utilisateur)
L'exécution d'application est réalisée par le module RunSE qui se présente sous la forme d'une boite de dialogue
:
Chaque icône représente une application qui sera exécutée sous un compte qu'administrateur et, dans le cas de Vista et au-delà avec UAC actif (le contrôle des comptes utilisateurs), en tant qu'administrateur (avec privilèges élevés).
Un clic droit sur l'une des icônes fait apparaitre un menu déroulant doté de 3 items :
- exécuter
son action est identique à un double-clic sur l'icône.- l'application est exécutée en tant qu'administrateur
- créer un raccourci
- un raccourci de l'application est créé :
- sur le bureau de l'utilisateur en cours si le compte concerné par SuperExec est un compte individuel
- sur le bureau commun à tous les comptes si le compte concerné par SuperExec est un groupe d'utilisateurs
- un raccourci de l'application est créé :
- propriétés
Affiche une liste de propriétés de l'application- chemin du fichier exécuté
- nom de l'exécutable associé (éventuellement)
- paramètres optionnels
- type d'application (console ou application en mode fenêtré)
- libellé
- dossier de travail
- limitations éventuelles (date limite et/ou nombre d'exécutions)
- nom du compte administrateur utilisé
- commentaires éventuels
Il est également
possible de créer un raccourci sur le bureau en effectuant un "glisser/déposer"
("drag and drop") de l'icône.
Différents contrôles sont réalisés :
- autorisation de l'application à l'utilisateur
- Contrôle de date limite
- Contrôle du nombre maximal d'exécutions
Téléchargement
et installation
SUPEREXEC est entièrement gratuit.
Il s'installe (sous un compte administrateur) à partir d'un fichier
auto extractible : installSE.exe
(lui même contenu dans un fichier compressé : installSE43.zip)
Tous les programmes, y compris le programme d'installation, sont actuellement bilingue
français et anglais.
installSE43.zip 1938 ko
Historique
- mars 2011 - Version 4.3.3.342
- 2004 à 2011 : période de refonte complète
- utilisation de fichiers XML pour stocker les informations
- exploration du réseau par plage d'adresses IP, au lieu des requêtes NetBIOS qui se sont avérées souvent trop lentes
- prise en charge de UAC (User Account Control)
- insertion d'un client SMTP et d'un composant ZIP pour envoi des données et logiciels par email
- renforcement de l'algorithme de chiffrement.
- certification de tous les logiciels
- utilisation de InnoSetup comme programme d'installation
- refonte totale de l'application cliente (drag and drop, UAC, ...)
- 17/12/2004 - Version 3.0.1.237
- Possibilité de désactiver ou réactiver la prise en charge du réseau (p.ex. ordinateur isolé) + optimisation des routines réseau
- Application totalement multilingue (un seul programme d'installation)
- Fichier d'aide contextuelle SuperExec.chm
- Nouvelle interface :
- Barre de menus
- Barre de boutons
- Paramétrages regroupés dans une même boite de dialogue
- Fenêtres "popup" d'informations (réseau, comptes, applications)
- Journal des opérations affiché dans un navigateur au format HTML
- Choix des applications
- Possibilité de désactiver les comptes locaux dans le cas de machines dans un domaine
- Prise en compte des packages .MSI
- Le profil choisi peut-être :
- le compte de l'utilisateur
- le compte de l'administrateur
- le compte par défaut
- Dans le cas d'un ou plusieurs groupes d'utilisateurs, il est
possible d'insérer le lancement de l'application dans le script de
connexion sur le serveur de domaine (partage NETLOGON) ou dans un script de démarrage local (dossier %systemroot%\system32\GroupPolicy\User\Scripts\Logon)
sur toute machine.
- 02/02/2004 - Version 2.0.1.136
- Suppression du compte GÉNÉRAL, remplacé par la gestion de tous les groupes (locaux et globaux)
- Éclatement du logiciel en 2 exécutables (SuperExec.exe pour la préparation des applications, SE.exe pour leur lancement)
- Ajout du choix de profil de utilisateur
- Ajout du choix de dossier de travail
- Sélection possible d'application résidant sur une machine distante, différente de la machine destinataire.
- Les raccourcis peuvent être placés, au choix :
- Sur le bureau
- Dans le menu démarrer (Démarrage)
- Dans la Base de Registres (clef HKCU\Software\Microsoft\Windows\CurrentVersion\Runonce)
- Le script utilisé dans le cas d'application console est à présent créé
dynamiquement, permettant ainsi un meilleur paramétrage
NB: il est créé dans le dossier %systemroot%, et n'est pas modifiable par un utilisateur non administrateur.
- 10/12/2003 - Version 1.5.1.89
- Saisie manuelle du nom d'ordinateur (pour les ordinateurs cachés)
- Ajout du champ paramètres passés à une application
- Lancement des applications en mode console via un script automatique afin de garder la fenêtre ouverte
- Ajout du compte virtuel GÉNÉRAL qui représente n'importe quel
compte.
- 03/12/2003 - Version 1.4.1.84
- Ajout de la gestion des comptes globaux (domaine)
- Libellés des raccourcis personnalisables
- 13/11/2003 - Version initiale
Appel
à traducteurs
Tous les exécutables qui constituent SuperExec ont été conçus de façon à être traduits en n'importe quelle langue.
Pour cela tous les items de menus, boites de dialogue, messages d'information ou d'erreur, sont stockés dans un unique fichier texte (superexec.lib) situé dans un sous-répertoire de celui contenant les exécutables.
Le nom de ce sous-répertoire est le code de langue
correspondant exprimé en hexadécimal.
P.ex. 0409 pour l'anglais, 040C pour le français,
...
On peut trouver une énumération de ces codes et leur signification dans la clef
:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
Le fichier SuperExec.lib a la structure suivante :
- La 1ère ligne est obligatoirement de la forme :
SuperExec.lib#xxxxxxxx
xxxxxxxx étant le nom de la langue concernée (Français, English, ...) - Les lignes suivantes sont toutes de la forme :
xxxxx.yyyyy.zzzzz=aaaaaaaaaaaaaaaaaaaaaaa- xxxxx.yyyyy.zzzzz est un identifiant de menu, message,
champ de dialogue, ...
Il est composé de 3 termes séparés par des points.
Il ne doit pas être modifié. - aaaaaaaaaaaaaaaaaaaaaaa est son contenu dans la langue concernée.
- SuperExec.lib "français"
Form3.TabSheet1.Caption=Application et paramètres
Form11.btnRemoveClick.remove=Êtes-vous sûr de supprimer l'adresse "%s"? - SuperExec.lib "english"
Form3.TabSheet1.Caption=Application and parameters
Form11.btnRemoveClick.remove=Are you sur to remove "%s" address?
Le contenu peut éventuellement renfermer d'un ou plusieurs paramètres formels, qui seront remplis lors de l'exécution du programme par les valeurs adaptées. Ces paramètres sont représentés par %s (chaine) ou %u (entier non signé)
Le fichier SuperExec.lib contient environ 500 lignes. - xxxxx.yyyyy.zzzzz est un identifiant de menu, message,
champ de dialogue, ...
Actuellement il n'existe que les versions française et anglaise.
Je fais donc appel à tous les traducteurs en d'autres langues et
bénévoles intéressés par une plus grande diffusion de SuperExec.
Merci par avance ... (me
contacter SVP)