Redirect

Principe

Au lieu de créer un raccourci vers un programme, vous pouvez créez un raccourci vers Redirect en précisant un fichier en paramètre.

Lorsque l'utilisateur utilisera le raccourci vers Redirect, le fichier paramètres sera lu et l'appel sera redirigé vers le programme souhaité.

Le fichier paramètres peut contenir des informations permettant par exemple au programme appelé d'être exécuté avec les droits d'utilisateur avec pouvoir ou encore avec les droits d'administrateur de la station.

Si le fichier paramètres contient l'appel de plusieurs programmes, alors Redirect affichera un petit menu permettant à l'utilisateur de choisir le programme qu'il souhaite exécuter. Même si vous ne voulez pas donner des droits supplémentaires aux utilisateurs vous pouvez profiter de Redirect pour regrouper en un raccourci des appels à plusieurs programmes.

Où placer le fichier paramètres ?

Le fichier paramètres doit être placé sur le serveur IACA dans le répertoire Parciaca ou dans un répertoire correspondant à un sous-parc ou dans un répertoire correspondant à un modèle.

Si par exemple votre serveur s'appelle SERV1, que vous utilisez le sous-parc SALLEINFO et que ce sous-parc contient les modèles "ELEVES" et "PROFS" alors vous pouvez placer le fichier paramètres dans
\\SERV1\Parciaca\SALLEINFO
Le fichier paramètres sera alors utilisable pour tous les modèles.
Ou dans
\\SERV1\Parciaca\SALLEINFO\ELEVES
Le fichier paramètres sera alors utilisable seulement pour le modèle ELEVES
Ou dans
\\SERV1\Parciaca\SALLEINFO\PROFS
Le fichier paramètres sera alors utilisable seulement pour le modèle PROFS
Ou encore dans
\\SERV1\Parciaca

Si un fichier de même nom existe alors :
Redirect cherche d'abord dans le répertoire du modèle. S'il n'a pas trouvé alors Redirect cherche dans le répertoire du sous-parc. Et enfin s'il n'a pas trouvé Redirect cherche dans le répertoire Parciaca.

Si par exemple vous avez placé un fichier paramètre de même nom dans \\SERV1\Parciaca et dans \\SERV1\Parciaca\SALLEINFO\PROFS alors c'est celui qui est dans le répertoire PROFS qui est utilisé.

Comment utiliser Redirect

L'administrateur de modèles peut appeler Redirect sans paramètre afin d'obtenir cette aide. Il doit cependant avoir ouvert la session en ayant choisi un modèle (le choix "Windows normal" ne convient pas).

L'utilisateur ordinaire appelle Redirect en passant comme paramètre le nom du fichier sans indiquer le chemin. Exemple Redirect /test.ini

Redirect recherchera ce fichier dans le répertoire du modèle qui s'applique à l'utilisateur et s'il ne le trouve pas recherchera ce même fichier dans le répertoire du sous-parc et enfin s'il ne le trouve toujours pas, recherchera ce même fichier dans le répertoire Parciaca.
L'administrateur de modèle pourra prévoir un raccourci vers Redirect avec le paramètre qui convient pour faciliter le travail de l'utilisateur ordinaire.

Il est donc nécessaire d'ouvrir une session et d'avoir le client IACA actif (la petite icône IACA doit être présente dans la barre des tâches).

Qui a le droit de créer un fichier paramètres

L'administrateur de modèles (en plus de l'administrateur du domaine) a un droit d'écriture dans le répertoire de son sous-parc et de ses sous répertoires. Il pourra donc placer le fichier dans le répertoire du sous-parc et/ou dans les répertoires des modèles.

Par exemple vous êtes administrateur de modèles pour le sous parc SALLEINFO et vous avez créé deux modèles PROFS et ELEVES.
Vous souhaitez que tous les utilisateurs puissent utiliser Redirect avec le paramètres param1.ini : Vous placerez le fichier param1.ini dans le répertoire SALLEINFO.
Vous souhaitez que seuls les professeurs aient le droit d'utiliser Redirect avec le paramètres param2.ini : Vous placerez le fichier param1.ini dans le répertoire PROFS.

Seul l'administrateur du domaine a le droit d'écriture dans le répertoire Parciaca. Ce sera donc lui qui pourra placer un fichier paramètres dans ce répertoire. Tous les utilisateurs du réseau pourront alors profiter de Redirect avec ce paramètre.

Astuce : Si vous ne voulez pas que le fichier placé dans Parciaca puisse être utilisé par exemple par les élèves un les ordinateurs de SALLEINFO, vous pouvez placer un fichier paramètres de même nom dans le répertoire ELEVES.

Un utilisateur standard n'a pas le droit d'écriture dans le répertoire Parciaca et ne pourra donc pas se donner des droits par l'intermédiaire de Redirect.

Exemple simple de fichier paramètres

L'exemple proposé ne présente pas de réel intérêt mais va permettre de montrer une partie des possibilités mais aussi de mettre l'accent sur les risques lorsqu'on donne des droits aux utilisateurs ordinaires. L'exemple propose l'appel du programme WordPad.exe de deux façons.

La création ou la modification d'un fichier paramètres se fait à l'aide du bloc-notes.
Créez un nouveau fichier contenant ceci :

<Redirect>
[WordPad accès normal]
Pgm=%ProgramFiles%\Windows NT\Accessoires\wordpad.exe

[WordPad en Administrateur]
Pgm=%ProgramFiles%\Windows NT\Accessoires\wordpad.exe
Niv=2

La première ligne doit être exactement <Redirect> avec un R majuscule. Pour la suite, les majuscules et minuscules n'ont pas d'importance.
Les lignes vides sont ignorées.

Ensuite vous devez mettre le libellé entre crochets. Il s'agit du texte qui sera visible par l'utilisateur.
Entre le libellé et le libellé suivant (ou la fin du fichier), mettez ce qui décrit le programme à exécuter. Le minimum est la ligne Pgm=.
Le nom du programme avec son chemin doit être placé après Pgm=
La variable %ProgramFiles% sera automatiquement remplacée par le chemin du répertoire d'installation des programmes (habituellement C:\Program Files).

Dans le fichier exemple, un deuxième libellé a été ajouté. Le programme appelé est encore WordPad mais l'appel de ce programme se fera en niveau 2 ce qui donnera à l'utilisateur les droits d'administrateur de la station.

Enregistrez ce fichier sur le serveur dans le répertoire de votre sous-parc en l'appelant par exemple Test.ini.
Pour profiter de ce fichier l'utilisateur aura simplement à exécuter Redirect avec /Test.ini comme paramètre.

Pour aider l'utilisateur ordinaire, créez un raccourci sur le bureau qui a pour cible
C:\Windows\Redirect  /Test.ini
Faites "Appliquer" pour que le raccourci soit copié sur le serveur (il est supposé que le bureau est figé ou restauré pour le modèle qui sera utilisé).

Ouvrez la session avec un utilisateur ordinaire concerné par le modèle précédent. Le raccourci devrait être sur le bureau. En exécutant le raccourci, un menu très simple apparaît.

Si vous choisissez le premier item le programme WordPad démarre comme à l'habitude. Même si WordPad.exe ne fait pas partie des applications autorisées pour le modèle, celui-ci est automatiquement autorisé lors d'un appel par Redirect. Faites "Fichier" et "Ouvrir", si la station est en Windows XP, vous ne devez pas avoir le droit de modifier le contenu du répertoire Windows. Essayez par exemple de créer un nouveau dossier dans le répertoire Windows, vous devriez avoir "Accès refusé".

Choisissez maintenant le deuxième item. Une deuxième fenêtre de WordPad s'ouvre mais en faisant "Fichier" et "Ouvrir", vous avez maintenant un droit de modification dans le répertoire Windows.

Syntaxe à utiliser dans le fichier paramètres

La première ligne doit être exactement
<Redirect>
Remarquez les < et > ainsi que la majuscule.

Si le fichier ne comporte qu'un item le menu ne sera pas visible et le programme défini dans l'item sera automatiquement appelé. Redirect se termine alors aussitôt.

Si le fichier comporte plusieurs items le menu sera affiché et l'utilisateur pourra choisir de lancer le programme qu'il veut.
Il est possible de faire en sorte que le menu de Redirect reste présent à l'écran (afin de permettre à l'utilisateur de choisir plus facilement un autre programme à lancer) ou de prévoir que le menu disparaîtra juste après le choix effectué.
Si vous voulez que le menu disparaisse, ajoutez une ligne <Fermer> juste après la ligne <Redirect>.

Le titre par défaut est "Choix de l'application", si vous souhaitez un autre titre, ajoutez une ligne commençant par
Titre=

Chaque bloc suivant correspond à un item et doit commencer par le libellé de l'item placé entre crochets.
A l'intérieur d'un bloc les lignes peuvent être mises dans l'ordre que vous voulez.
Dans le bloc vous devez au moins mettre la ligne contenant le programme à appeler. Cette ligne commence par
Pgm=
Il est inutile (mais pas gênant) d'entourer de guillemets ce qui est après Pgm=

Si le programme a besoin de paramètres ajoutez une ligne commençant par
Params=
Si les paramètres contiennent des espaces, entourez-les de guillemets.

Niv=0 (ou rien).
Le programme indiqué dans Pgm sera exécuté avec les droits normaux de l'utilisateur. Niv=0 étant la valeur par défaut, il est en fait inutile de mettre cette ligne.

Niv=1
Le programme indiqué dans Pgm sera exécuté par l'utilisateur ordinaire comme si celui-ci appartenait au groupe "Utilisateurs avec pouvoir".
Avec Vista et Windows 7, ce groupe existe encore pour des problèmes de compatibilités mais il est voué à disparaître.

Niv=2
Le programme indiqué dans Pgm sera exécuté par l'utilisateur ordinaire comme si celui-ci appartenait au groupe "Administrateurs" de la station.

Pour les niveaux 1 et 2, Redirect exécute le programme indiqué dans Pgm comme si l'utilisateur avait ouvert la session avec les droits voulus.

Si un répertoire de base (répertoire courant) doit être précisé pour l'exécution du programme, ajoutez une ligne commençant par
CD=
CD comme "Current Directory"
On peut par exemple mettre la ligne
CD=%RepPerso%
Ou encore
CD=C:\Program Files\UnRep
On pourra remarquer que certains programmes ignorent le répertoire de base pour ouvrir ou enregistrer des fichiers. Par exemple le bloc-notes propose le dernier répertoire utilisé sans tenir compte du répertoire courant.

Si un ou plusieurs répertoires doivent exister pour l'exécution du programme vous pouvez demander à Redirect de vérifier leur présence et de les créer si nécessaire. Pour cela mettez des lignes commençant par
MD=
Il est possible de créer plusieurs répertoires en mettant plusieurs lignes.
La création de ces répertoires se fait avec les droits de l'utilisateur. En niveau 1 ou 2, l'utilisateur a le droit de créer un répertoire presque partout sur sa station... Le niveau 1 ou 2 ne donne cependant pas plus de droits à l'utilisateur dans les répertoires du serveur.
MD=%WinDir%\Possible permettra la création du répertoire "Possible" dans le répertoire Windows à condition d'être au moins en niveau 1.
MD=%ServIacaParc%\Parciaca\Impossible échouera quelque soit le niveau car l'utilisateur n'a pas de droit d'écriture dans le répertoire Parciaca du serveur.

Si vous souhaitez ajouter un commentaire mettez une ou plusieurs lignes commençant par
Comm=
La place prévue pour l'affichage des commentaires est assez petite, mettez un texte assez court. Le passage à la ligne se fera automatiquement.
Si vous voulez forcer le passage à la ligne, mettez une deuxième ligne commençant par Comm=
Si aucun item n'a de commentaire alors la zone réservée au commentaire ne sera pas visible.

Variables possibles

Pour chacune des lignes de l'item, vous pouvez utilisez les variables suivantes. Les majuscules ou minuscules n'ont pas d'importance.

%UserName% Sera replacé par le nom d'ouverture de session de l'utilisateur
%WinDir% Le répertoire Windows, en général C:\Windows
%ProgramFiles% En général C:\Program Files
Même résultat en 32 et 64 bits
%ProgramFiles(x86)% En 32 bits : C:\Program Files
En 64 bits : C:\Program Files (x86)
%RepPerso% Le chemin réseau vers le répertoire personnel, par exemple \\SERV1\Perso\ELEVES\3A\DUPOND
%ServIacaSession% Le serveur IACA sur lequel est stocké le répertoire personnel.
%ServIacaParc% Le serveur IACA contenant le sous-parc
%DomSession% Le domaine de l'utilisateur (celui qui a validé l'ouverture de session)
%DomParc% Le domaine de la station
%CDROM% Le lecteur du CDROM (le premier s'il y en a plusieurs), par exemple D:
%AMOVIBLE% Le lecteur du périphérique amovible (le premier s'il y en a plusieurs) comme une clé USB, par exemple F:
%REPPARAM% Le répertoire contenant le fichier paramètres.
Exemple si le fichier paramètres est dans le répertoire du sous-parc :
\\SERV1\Parciaca\SalleInfo
Exemple si le fichier paramètres est dans le répertoire du modèle :
\\SERV1\Parciaca\SalleInfo\Eleves

Exemple plus complexe

<Redirect>

[Corriger la base de registre]
Comm=A faire avant de pouvoir lancer le programme PB.
Pgm=regedit.exe
Params=-s "%repparam%\UneCle.reg"
Niv=2

[Appel du programme PB]
Pgm=%ProgramFiles%\Un répertoire\PB.exe
Params=%RepPerso%\travail\fichier.dat
MD=%RepPerso%\travail
Comm=Appel du programme PB, à faire après la correction du registre.

Le premier item permet à l'utilisateur ordinaire de lancer Regedit avec comme paramètre le fichier UneCle.reg qui est dans le même répertoire que le fichier de paramètres (l'utilisateur ordinaire ne peut donc pas modifier ce fichier). La modification du registre se fait sans confirmation et l'utilisateur ne peut donc rien faire d'autre que ce que l'administrateur de modèles a prévu.
Le paramètre –s permet l'exécution silencieuse de regedit.
La modification dans la base de registre se fait avec un niveau 2 (avec les droits d'administrateurs de la station). Il est donc possible de cette façon de modifier la partie machine de la base de registre (clé commençant par HKEY_LOCAL_MACHINE).

Le deuxième item correspond à l'appel effectif du programme PB. On pourrait éventuellement ajouter Niv=1 ou Niv=2 si ce logiciel le nécessitait.
Avant l'exécution de PB.exe le répertoire "travail" sera créé dans le répertoire personnel s'il n'existe pas déjà.
Le programme PB.exe sera appelé avec comme paramètre le fichier nommé fichier.dat situé dans le répertoire travail.

Redirect et "Limiter aux applications autorisées"

Il est possible de limiter aux applications autorisées de façon plus fiable en le combinant avec Redirect.

Explications :

"Limiter aux applications autorisées" permet à Windows de connaître la liste des programmes que l'utilisateur aura le droit de lancer. Cette liste ne comporte que le nom du programme. Par exemple si Calc.exe est dans la liste, tout programme nommé Calc.exe quelle que soit le répertoire où il est stocké sera considéré par Windows comme autorisé.

Solution :

Supprimer tous les raccourcis du bureau et du menu démarrer et ne mettre que quelques raccourcis vers Redirect.exe avec différents fichiers paramètres.

Chaque raccourci vers Redirect pourra afficher un menu avec la liste des programmes souhaités. Le niveau étant non précisé ou ce qui revient au même Niv=0 pour la plupart des programmes.
Seuls les programmes prévus dans les fichiers paramètres de Redirect (en plus de Redirect.exe) pourront alors être exécutés. Comme le chemin complet du programme appelé est précisé dans le fichier paramètres, les risques de tricherie sont réduits.

Remarque :

Il est possible de mettre Pgm=%WinDir%\Redirect.exe et de mettre un fichier paramètres dans Params= (par exemple Params=/SousMenu.ini) ce qui aura pour effet d'appeler un deuxième menu..

Programmes qui nécessitent une élévation

Il est possible que certains programmes appelés par Redirect aient besoin, en plus du niveau 2, d'une élévation des droits. Depuis la version 10.21 si Redirect ne parvient pas à exécuter un programme pour cette raison alors Redirect passe automatiquement par l'intermédiaire de cmd.exe afin d'obtenir l'élévation nécessaire. Il est donc possible que des programmes qui ne fonctionnaient pas avant avec Redirect fonctionnent maintenant.