6. ANNEXES
6.8. L' EDITEUR DE STRATEGIE SYSTEME (P OLEDIT . EXE )
6.8.2. Les fichiers ADM
L'éditeur de stratégie système utilise des fichiers ADM afin de déterminer les valeurs de clefs qui peuvent être modifiées et comment elles doivent être modifiées. Un fichier ADM est un modèle hiérarchique, contenant des catégories et des sous-catégories, indiquant ce qui est modifiable au travers de l'IHM de Poledit.
Les fichiers ADM servant à Poledit définissent donc les jeux de paramètres qu'il est possible de modifier à l'aide de l'outil. Il en existe trois par défaut :
Winnt.adm : fichier de description spécifique à Windows NT Windows.adm : fichier de description spécifique à Windows 9x
Common.adm : fichier de description des paramètres communs à Windows NT et Windows 9x.
Les chapitres qui suivent expliquent les différentes étapes de la création d'un fichier ADM propre.
6.8.2.1. Sections des fichiers ADM
Les fichiers ADM disposent de 3 sections distinctes :
Une section définissant les paramètres relatifs à la ruche HKEY_LOCAL_MACHINE (CLASS MACHINE)
Une section définissant les paramètres relatifs à la ruche HKEY_CURRENT_USER (CLASS USER)
Une section décrivant les chaînes de caractères utilisées dans l'IHM de poledit ([strings])
133 (Ce qui suit un point-virgule - ; - dans ces fichiers est considéré comme un commentaire).
Squelette général d'un fichier ADM :
; Section pour la ruche HKEY_LOCAL_MACHINE CLASS MACHINE
…
; Section pour la ruche HKEY_CURRENT_USER CLASS USER
…
; Section des chaînes de caractères [strings]
…
6.8.2.2. Catégories
Au sein d'une des deux premières sections, on crée une "catégorie" par le mot clef "CATEGORY", suivi d'un espace et d'un paramètre sous la forme !!variable (où variable représente une chaîne de caractères définie à la section [strings]).
Le mot clef "END CATEGORY" indique la fin d'une catégorie.
Dans l'IHM de Poledit, une catégorie apparaît comme un petit livre bleu représentant un nœud d'une arborescence :
A l'intérieur d'une catégorie, il est possible de définir d'autres catégories, afin de créer des sous-catégories (pour gérer une arborescence comme le montre la capture d'écran ci-dessus).
Exemple :
CATEGORY !!Categorie1 CATEGORY !!Categorie2 CATEGORY !!Categorie3 ...
...
END CATEGORY ; Catégorie 3 END CATEGORY ; Catégorie 2 END CATEGORY ; Catégorie 1
134 de la manière suivante :
Categorie1="Ma première catégorie"
Categorie2="Ma seconde catégorie"
Categorie3="Ma troisième catégorie"
6.8.2.3. Keynames
Pour chaque catégorie, il est alors nécessaire de définir quelle clef de registre sera modifiée. Cette opération est réalisé en saisissant le mot clef "KEYNAME", suivi d'un espace et du chemin de la clef (relative à la section en cours). Ainsi, pour la section HKLM, on pourra avoir :
CATEGORY !!Categorie1
KEYNAME System\CurrentControlSet\Services\LanManServer\Parameters …
END CATEGORY ; Catégorie 1
6.8.2.4. Policies
Au sein d'une catégorie, on définit ensuite une ou plusieurs "policies", qui seront le cœur des paramètres de base de registre à modifier. Cette opération est réalisée en saisissant le mot clef
"POLICY" suivi d'un espace et de !!variable. On termine une policy par le mot clef "END POLICY".
CATEGORY !!Categorie1
KEYNAME System\CurrentControlSet\Services\LanManServer\Parameters POLICY !!mapolicy1
6.8.2.5. Options de Policy
Dans chaque Policy, on définit alors la ou les valeurs à modifier pour la policy considérée. On utilise pour cela le mot clef "VALUENAME", suivi d'un espace et du nom de la valeur encadré par des doubles-quotes :
CATEGORY !!Categorie1
KEYNAME System\CurrentControlSet\Services\LanManServer\Parameters POLICY !!mapolicy1
VALUENAME "mavaleur1"
…
END POLICY
POLICY !!mapolicy2 VALUENAME "mavaleur2"
…
END POLICY
END CATEGORY ; Catégorie 1
Si rien d'autre n'est spécifié, la valeur définie par VALUENAME sera de type REG_DWORD et sera positionnée à 1 si la boîte est cochée, et à 0 si elle est décochée.
Si l'on souhaite pouvoir définir d'autres types de données ou de valeurs, ou si l'on souhaite pouvoir saisir soi-même la modification à apporter, ou encore si l'on désire faire des contrôles sur les valeurs à saisir, il est nécessaire de positionner la ligne VALUENAME dans une section "PART
!!variable flag", terminée par "END PART", et de spécifier les options à l'aide du langage :
CATEGORY !!Categorie1
135
KEYNAME System\CurrentControlSet\Services\LanManServer\Parameters POLICY !!mapolicy1
6.8.2.6. Autres mots-clefs
Le mot clef PART est employé pour spécifier des options, des listes, des textes, etc. dans la partie basse de l'éditeur de stratégie système. La syntaxe de PART est :
PART !!Mavariable FLAG ...
END PART
Dans laquelle FLAG est un (ou plus) des mots clef suivants : TEXT - Affiche un texte, par exemple :
PART !!MyPolicy TEXT END PART
NUMERIC - Précise que la valeur est de type numérique (REG_DWORD). Par exemple : PART !!MyPolicy NUMERIC
VALUENAME ValueToBeChanged END PART
DROPDOWNLIST - Affiche une liste d'options dans une "selection box" : PART !!MyPolicy DROPDOWNLIST
VALUENAME ValueToBeChanged
EDITTEXT - Précise que la valeur est de type texte (REG_SZ) : PART !!MyPolicy EDITTEXT
VALUENAME ValueToBeChanged END PART
REQUIRED - Génère une erreur si l'utilisateur ne rentre aucune valeur : PART !!MyPolicy EDITTEXT REQUIRED
VALUENAME ValueToBeChanged END PART
EXPANDABLETEXT - Précise que la valeur est de type REG_EXPAND_SZ :
136 VALUENAME ValueToBeChanged
END PART
MAXLEN - Précise la taille maximum d'un texte : PART !!MyPolicy EDITTEXT
VALUENAME ValueToBeChanged MAXLEN 4
END PART
DEFAULT - Précise la valeur par défaut : PART !!MyPolicy EDITTEXT DEFAULT !!MySampleText VALUENAME ValueToBeChanged END PART
ou
PART !!MyPolicy NUMERIC DEFAULT 5
VALUENAME ValueToBeChanged END PART
MIN et MAX - Précisent les valeurs minimales et maximales d'une valeur : PART !!MyPolicy NUMERIC
MIN 100 MAX 999 DEFAULT 55 VALUENAME ValueToBeChanged END PART
Utiliser les mots clefs VALUEOFF et VALUEON pour écrire des valeurs spécifiques selon l'état coché ou décoché de l'option :
POLICY !!MyPolicy KEYNAME ....
VALUENAME ValueToBeChanged
VALUEON “Turned On” VALUEOFF “Turned Off”
END POLICY ou
POLICY !!MyPolicy KEYNAME ....
VALUENAME ValueToBeChanged VALUEON 5 VALUEOFF 10 END POLICY