Retour page précédente

imprimer cette page

Script IACA

Auteur A. SAYER

Depuis la version 6.11 de IACA il est possible d'utiliser un script pour effectuer certaines actions comme la copie ou la suppression de fichiers.
Dans la plupart des cas, vous ne devriez pas avoir besoin de cette fonctionnalité.


Nom et place du fichier Script (A)

Le fichier Script doit être placé sur le serveur IACA dans le répertoire partagé sous le nom NETLOGON.

Habituellement :
Sur un serveur NT ce répertoire est C:\Winnt\System32\Repl\import\Scripts
Sur un serveur 2000 ce répertoire est C:\Winnt\SYSVOL\Sysvol\nom du domaine\Scripts
Sur un serveur 2003 ou 2008 ce répertoire est C:\Windows\SYSVOL\Sysvol\nom du domaine\Scripts 

Il doit s'appeler SCRIPT.IAC (attention à ne pas avoir une extension cachée comme SCRIPT.IAC.TXT).

Ce fichier doit être au format texte, utilisez le bloc-notes pour le créer ou le modifier.

Si ce fichier script.iac est présent dans Netlogon, lors de l'ouverture de session sur les stations, le client IACA prend en compte les commandes qu'il contient. Si des erreurs sont détectées, elles sont signalées dans le fichier iaca.log sur les stations.

Intérêt du script IACA (A)

Si vous voulez supprimer ou copier ou mettre à jour un fichier ou des fichiers sur les stations, il sera plus facile d'utiliser le script que d'effectuer ce travail sur chaque station.

Si la station utilise une partition NTFS, il est possible que l'utilisateur ordinaire n'ait pas les droits d'écriture dans certains répertoires de sa station. Avec le script IACA cette restriction ne s'applique pas.

Si le fichier est déjà présent et possède la bonne taille et la bonne date de création alors la copie est jugée inutile et n'est pas faite afin de réduire le trafic réseau et le temps d'ouverture de session.

Syntaxe à utiliser dans le script (A)

copy

copy "nom complet du fichier source" "nom complet du fichier destination"

Les "" ne sont nécessaires que si les noms contiennent des espaces.
Le mot copy doit être écrit en minuscules.
Si le répertoire de destination n'existe pas, il n'est pas créé et une erreur est générée dans le fichier iaca.log.
Il faut préciser le chemin complet de la destination, donc en terminant par le nom du fichier, même si le nom du fichier de la destination est le même que celui de la source.

Exemples :
copy  \\Serveur\Partage\Essai.txt  C:\Essai.txt
copy  \\Serveur\Partage\unfichier.txt  "C:\Program Files\unfichier.txt"

if

if  (condition simple) {ce qu'il faut faire si la condition est vraie}
ou
if  (condition simple) {ce qu'il faut faire si la condition est vraie} else {ce qu'il faut faire si la condition est fausse}

La condition ne peut être que la comparaison de deux chaînes séparées par le signe =
La comparaison ne tient pas compte des majuscules et minuscules. pc01 et PC01 sont donc égaux.
Les mots if et else doivent être écrits en minuscules.

Exemple :
if (A=A)  {copy "\\Serveur\Partage\Essai.txt"  "C:\Essai.txt"}

Comme A=A est toujours vrai, la copie sera toujours effectuée.

L'instruction if ne prend de l'intérêt qu'avec les variables.

del

del  "nom complet du fichier à supprimer"

Les "" ne sont nécessaires que si le nom contient des espaces.
Le mot del doit être écrit en minuscules.

Exemple :
del  "C:\Un répertoires\un autre répertoire\un fichier inutile.doc"

Le fichier nommé "un fichier inutile.doc" sera supprimé s'il existe dans le répertoire indiqué.

Les variables

Toutes les variables sont entourées de %.

%WINDIR%
Est remplacé par le répertoire de Windows. Soit en général
C:\WINNT pour une station NT ou 2000
C:\Windows pour les autres.

%SYSTEMDIR%
Est remplacé par le répertoire System de Windows. Soit en général
C:\WINNT\System32 pour une station NT ou 2000
C:\Windows\System pour Windows 9x
C:\Windows\System32 pour XP, Vista..

%PROGRAMDIR%
Est remplacé par le répertoire d'installation des programmes soit en général C:\Program Files
En version 64 bits, le répertoire est en général
C:\Program Files (86)

%PROGRAMDIR64%
Est remplacé par le répertoire d'installation des programmes soit en général en 32 et en 64 bits C:\Program Files

%PARCDIR%
Est remplacé par le répertoire contenant le sous-parc. Ce répertoire est de la forme \\Serveur\Parciaca\nomdusousparc

%NOMLOGIN%
Est remplacé par le nom d'ouverture de session de l'utilisateur.

%COMPUTERNAME%
Est remplacé par le nom de la station.

%SERVIACA%
Est remplacé par le nom du serveur IACA.

%SERVSESSION%
Est remplacé par le nom du serveur qui a permis d'ouvrir la session.

%SERVPERSO%
Est remplacé par le nom du serveur qui contient le répertoire personnel de l'utilisateur
Dans le cas d'un réseau avec un seul serveur les variables %SERVSESSION%, %SERVIACA% et %SERVPERSO% donnent le même nom.

%VERSIONIACA%
Est remplacé par une chaîne correspondant à la version de IACA. Par exemple 6.11

%NOMPARC%
Est remplacé par le nom du sous-parc auquel appartient la station.

%NOMMODELE%
Est remplacé par le nom du modèle appliqué à l'utilisateur.

%VERSIONOS%
Est remplacé par une chaîne correspondant à la version de Windows sur la station.
     Windows 95 : 1.095
     Windows 98 : 1.098
     Windows ME : 1.100
     Windows NT4 : 2.400
     Windows 2000 Pro : 2.500
     Windows XP Pro : 2.510
     Windows Vista Pro : 2.600

Exemples de scripts (A)

copy  "\\serveur\partage\un rep\info.txt"  C:\info.txt

Permet de copier le fichier info.txt dans le répertoire C:\ des stations.
Le fichier doit être présent dans le répertoire nommé "un rep" lui même situé dans le répertoire partagé sous le nom "partage" sur le serveur nommé "serveur".

if  (%COMPUTERNAME%=PC01)  {copy \\%SERVIACA%\Partage\fich.ini  %WINDIR%\fich.ini}

Si la station a pour nom PC01 alors la copie du fichier fich.ini situé dans le répertoire partagé sous le nom Partage sur le serveur IACA est copié (s'il n'est pas déjà présent, à la bonne date et à la bonne taille) dans le répertoire Windows.
Pour les autres stations rien n'est fait.

if  (%NOMPARC%=CDI)  {copy \\%SERVIACA%\Partage\fich.ini  %SYSTEMDIR%\fich.ini}

La copie sera effectuée pour tous les ordinateurs appartenant au sous-parc nommé CDI. Le fichier fich.ini sera placé dans le répertoire système de la station.

copy  \\%SERVIACA%\CACHE$\param.ini  "%PROGRAMDIR%\Un répertoire\param.ini"

Permet de copier param.ini dans le répertoire C:\Program Files\Un répertoire sur les stations (le répertoire "Un répertoire" doit déjà exister). Le fichier param.ini est copié à partir du serveur iaca. Le nom de partage du répertoire est caché du voisinage réseau grâce au sympole $.

if  (%NOMPARC%=INFO)  {copy  "\\%SERVIACA%\CACHE$\Raccourci xp vers notepad.lnk"  %USERPROFIL%\SendTo\Bloc-notes.lnk}

Le raccourci (fichier avec extension .lnk) a été au préalable créé sur un XP puis copié sur le serveur IACA dans le répertoire partagé sous le nom CACHE$. Ce raccourci ayant pour cible C:\Windows\System32\notepad.exe, convient aux ordinateurs XP mais ne conviendrait aux NT ou 2000 ou 98. Si le sous-parc INFO est composé d'ordinateurs XP, le raccourci a un sens pour tous les ordinateurs de ce sous-parc. Grâce au test, la copie ne s'effectuera que sur les ordinateurs du sous-parc INFO.
Le raccourci est copié dans le répertoire SendTo de l'utilisateur en étant renommé Bloc-notes.lnk.
Rappel : Le répertoire SendTo contient la liste des possibilités offertes lorsqu'on utilise "Fichier" et "Envoyer vers".

del  "%USERPROFIL%\SendTo\Bureau (créer un raccourci).DeskLink"

Le raccourci ayant pour nom "Bureau (créer un raccourci).DeskLink" correspond à la ligne "Bureau (créer un raccourci)" que l'on trouve dans le menu "Envoyer vers" et qui permet de créer un raccourci sur le bureau.
La ligne supprime ce fichier s'il existe.

Conseils (A)

En général, le fichier à copier sera situé dans un répertoire sur un serveur. Il faut s'assurer que tous les utilisateurs ayant à copier ce fichier ont le droit de lire ce fichier.

On pourra par exemple créer un répertoire sur le serveur, partager ce répertoire avec un nom de partage se finissant par $ afin de le rendre non visible dans le voisinage réseau. On donnera des autorisations de lecture à tout le monde pour ce partage. Les fichiers à copier sur les stations pourront être placés dans ce répertoire.
Le répertoire Netlogon peut également être utilisé car il est en lecture seule pour tout le monde.

Comme le contenu du répertoire partagé sous le nom netlogon ne peut être modifié que par l'administrateur du serveur, il n'y a pas de risque qu'un autre utilisateur modifie le contenu de Script.iac.

Retour page précédente

imprimer cette page