2) La commande CPAU
Il vous faut déjà télécharger l’exécutable CPAU, version 1.10, disponible sur notre serveur ici.
Je vous conseille néanmoins de consulter le site officiel pour savoir si une version plus récente est disponible en téléchargement.
Ensuite copiez le fichier dézippé (CPAU.exe) dans le répertoire %systemroot%\system32 (généralement C:\windows\system32).
CPAU est un outil en ligne de commande qui permet de lancer un programme en spécifiant un compte utilisateur et un mot de passe. Il permet également de crypter le script dans un fichier texte. Ces paramètres sont les suivants :
-u nom de l’utilisateur
-p mot de passe
-ex nom de l’exécutable
-file spécifie le chemin et le nom du fichier txt contenant les paramètres du script
-enc encode le script dans le fichier txt
-dec décode le fichier txt pour exécuter le script
-cwd spécifie un dossier de travail
-profile charge le profil de l’utilisateur
Prenons comme exemple l’utilitaire Scandisk (chkdsk.exe).
La première commande à taper est la suivante :
Cpau –u administrateur –p password –file c:\chkdsk.txt –ex chkdsk.exe –cwd c:\winnt\temp –enc
Cpau va alors créer un fichier crypté nommé chkdsk.txt, contenant les informations du script. Cpau ne stocke dans ce fichier que la commande, l’utilisateur et le mot de passe. Si vous souhaitez définir un répertoire de travail (obligatoire dans de nombreux cas), vous devrez le retaper à l’appel du fichier txt.
Si vous éditez le fichier avec le Bloc-Note , vous obtiendrez ceci :

Il suffit ensuite de créer un autre script dans le Bloc-Note :
Cpau –file c:\chkdsk.txt –dec –profile
Avec un répertoire de travail:
Cpau –file c:\chkdsk.txt –dec –profile –cwd c:\winnt\temp
Enregistrez le en .cmd

Vous pouvez alors copier ce fichier sur le Bureau de l’utilisateur ou en faire un script de connexion.
Cpau supporte également les chemins UNC :
Exemple :
- CREATION DU FICHIER TXT CPAU
Cpau –u administrateur –p password –file \\server\netlogon\chkdsk.txt –ex chkdsk.exe –enc
- APPEL DU FICHIER TXT CPAU
Cpau – file:\\server\netlogon\chkdsk.txt –dec -profile -cwd c:\winnt\temp
NB : si vous exécuter un script cpau à partir d’un emplacement réseau (script de connexion par exemple), le commutateur –cwd est obligatoire sinon cela ne marchera pas.
3) La commande CPAU + AutoIt
Une autre façon d’encoder la commande Cpau est d’utiliser le programme AutoIT.
AutoIt est un programme qui permet de créer et de transformer des scripts en exécutables. Concrètement, cela empêchera l’utilisateur de voir le mot de passe qui apparaît dans le script.
Vous pouvez télécharger la version 2.64 (V2) de ce programme sur notre serveur, ici.
Je vous invite également à consulter le site officiel proposant ce programme.
Installer AutoIT :
NB : Lors de l’installation d’AutoIt, soyez logué sur un compte administrateur, et choisissez « Only for me » :

Créez ensuite un nouveau fichier txt avec notepad. Faites un clic droit sur le Bureau, "Nouveau, Document texte".
Prenons un exemple avec la commande chkdsk.exe, l’utilitaire de scandisk de Windows 2000/XP/2003
Dans le Bloc-Note, tapez ceci :
Run,cpau -profile -u administrateur -p password -ex c:\\winnt\\system32\\chkdsk.exe
NB : Il faut impérativement doubler les back slashs (\) avec AutoIt et de préférence indiquer le chemin complet du programme. Si vous désirez créer un script multi-OS (2000/XP/2003), utilisez des variables d’environnements.
Enregistrez le fichier avec une extension en aut, par exemple "cpau_chkdsk.aut"

Copiez ce raccourci dans C:\Documents and Settings\All Users\Bureau
Connectez-vous ensuite en tant qu’utilisateur et lancez le script :

On voit bien que la commande s’exécute. Le seul problème, c’est que si on édite le fichier .aut avec le bloc note, le mot de passe administrateur est visible…
Revenez sur votre session administrateur. Nous allons maintenant convertir le script ".aut" en ".exe".
Sélectionnez votre fichier script, faites un clic-droit et choisissez "Compile Script" :

AutoIt va alors transformer le script en exe. Un nouveau fichier est créé : "cpau_chkdsk.exe"

Vous pouvez alors placer cet exécutable sur le Bureau de l’utilisateur par exemple, ou le placer dans un répertoire (par exemple, Program Files\Scripts\) et faire un raccourci sur le Bureau, ce qui permettra d’en changer l’icône et de lui donner un nom plus convivial.
Pour compiler votre script aut, vous pouvez aussi utiliser le programme Aut2exe (Programmes\Autoit\Autoit2Exe).
Sélectionnez le fichier aut source que vous souhaitez compiler.

Pour la destination, si vous ne spécifiez aucun chemin, Aut2Exe utilisera par défaut le répertoire courant.
Dans "Custom Icon", sélectionnez un fichier ".ico" ou ".exe".

NB: Sous windows, le fichier shell32.dll contient toutes les îcones Windows standard. Il se trouve dans %systemroot%\system32 (généralement C:\windows\system32). Editez-le avec Irfanview par exemple, pour en extraire les icones et les sauvegarder en ".ico".
Votre fichier se présente donc comme ceci:

Si vous éditez l’exécutable, vous aurez alors quelquechose comme ceci :

Attention, Cpau ne sait gérer que les exécutables (.exe). Les consoles mmc type dfrg.msc (défragmenteur de disque) ou gpedit.msc (stratégies de groupe) ne peuvent être lancées via Cpau. Il faut alors passer par un autre script :p.
Prenons comme exemple la console mmc de défragmentation dfrg.msc.
Créez un script cmd avec le Bloc-Note contenant juste ceci:
dfrg.msc
Enregistrez le dans un répertoire de votre choix en le renommant en "dfrg.cmd" (ici c:\scripts)
Créez un script aut comme ceci :
Run,cpau -u administrateur -p password -ex c:\\scripts\\dfrg.cmd -cwd c:\\winnt\\temp
Sous XP/2003, pour la défragmentation, utilisez defrag.exe.
Si vous souhaitez lancer des scripts CPAU à partir d'un emplacement réseau ou en script de connexion (logon script), vous devez rajouter les paramètres suivants à votre script aut:
Run, cpau -profile -u administrateur -p password -ex c:\\winnt\\system32\\chkdsk.exe -cwd c:\\winnt\\temp
Le commutateur -cwd permet de définir un répertoire de travail.
Une fois l’exécutable créé, il n’est pas nécessaire d’installer AutoIt sur toutes les machines.
Consultez également les fichiers d’aide de AutoIt et de CPAU qui vous permettront d’aller plus loin dans l’écriture du script.
4) Superexec
Jean-Claude Bellamy a créé un script vbs appelé xrunas qui permet de passer le mot de passe en ligne de commande. Seulement, ce mot de passe apparaissait en clair. Il a donc développé un logiciel spécifique qui s’appelle SuperExec, qui fonctionne en mode interface graphique et qui supporte le réseau. De plus, il gère les .exe, .cmd, .bat et .msc.
Téléchargez tout d'abord ce fichier ici (pour plus d'informations sur ce programme, consultez le site de Bellamy la).
Après avoir installé SuperExec, lancez le à partir de l'îcone du Bureau :

SuperExec va d'abord faire un scan de votre réseau afin de rechercher les ordinateurs y appartenant. Il recherchera également un éventuel serveur Windows Contrôleur de Domaine afin d'y récupérer la liste des comptes utilisateurs. Attention, cela peut être très long.

Une fois la liste des ordinateurs et utilisateurs affichée, il faut tout d'abord spécifier le compte administrateur local (ou du domaine) et son mot de passe.
Allez dans "Fichiers", "Administrateur" puis rentrez le nom du compte administrateur et son mot de passe :

Faites "OK", puis "Opérations", "Appliquer". Cela permet d'inscrire et crypter dans le Registre toutes ces informations.
Allez ensuite dans "Fichier", "Paramètres" et cochez les cases suivantes :

Dans "Extensions", activez toutes les extensions.
Maintenant, comme exemple concret, nous allons autoriser l'exécution du défragmenteur de disque sous Windows 2000 pour le compte Test, membre du groupe Utilisateurs.
Dans la fênetre de droite, « comptes et groupes locaux », sélectionnez le compte Test :

Puis, faites "Applications", "Nouveau" (Ctrl+N).
Sélectionnez tout d'abord le programme :

Puis sélectionnez un Dossier de travail, il s'agit d'une sorte de dossier temporaire.
Choisissez par exemple c: , c:\temp , ou encore c:\winnt\temp.
Sélectionnez ensuite un emplacement pour le raccourci :

Bureau : le raccourci sera créé sur le Bureau
Menu Démarrer\programmes\démarrage : il sera créé à cet emplacement et sera donc lancé à chaque démarrage d'une session.
Runonce : le programme sera lancé une fois au prochain démarrage de session.
Vous pouvez aussi définir des limitations :

Date limite: définissez une date et heure limite d'exécution
Compteur: définissez le nombre d'exécution du programme.
Au delà de ces limitations, l'utilisateur (ou le groupe si vous avez choisi un groupe) ne pourra plus utiliser le programme.
Faites "OK" pour enregistrer. Faites "Opérations", "Appliquer" pour enregistrer définitivement le paramétrage de l'application.

Dans le Journal (en bas), SuperExec affiche les modifications apportées.
Quittez SuperExec et ouvrez une session sur le compte Test que vous avez paramétré pour vérifier que le raccourci est bien présent et que l'application fonctionne.
Sur le Bureau, vous devez avoir cette icone:

Si vous double-cliquez sur l'îcone, la console de défragmentation se lance:

Voilà. Il ne vous reste plus qu'à personnaliser vos applications pour offrir à vos utilisateurs le droit d'utiliser certains programmes sans compromettre la sécurité logicielle et matérielle de votre ordinateur.
Comme vous l’avez remarqué, il existe plusieurs solutions qui fonctionnent toutes très bien mais qui sont plus ou moins bien adaptées à ce que l’on souhaite faire :
- La commande RUNAS est pratique si l’on veut lancer une application une fois, à un moment donné. Sous Windows XP/2003, le commutateur /savecred permet de renseigner le mot de passe une fois pour toute mais cela reste lourd s'il existe plusieurs utilisateurs ou ordinateurs.
- La commande CPAU et son propre système de cryptage est très utile pour les administrateurs souhaitant écrire des scripts de connexion pour déployer des mises à jour, modifier des fichiers systèmes ou des clés de registre ou encore automatiser des opérations de maintenance.
- La commande CPAU + AutoIT est utilisée pour créer des raccourcis vers des applications ou des fichiers d’installation de programmes.
- Le logiciel SuperExec, propose une interface graphique qui permet de s'affranchir de l'étape d’écriture de script. Il permet également la gestion de nombreuses applications (exe, cmd, msc), la gestion des groupes et le support réseau. Il sera pratique et rapide dans le cadre personnel ; peut être un peu long à gérer au niveau réseau si vous avez beaucoup d’ordinateurs, car dans ces cas là, vous devrez à partir de SuperExec accéder à chaque machine, y copier le programme SuperExec puis paramétrer les applications pour chaque utilisateur.
*Merci au forum generation-nt.