Ce qui suit concerne la gestion des stratégies de groupe sur une machine locale sous Windows 2000 (Professionnel et serveur isolé), Windows XP (Professionnel et Édition familiale) et Windows 2003 (serveur isolé). Ce chapitre ne traite donc pas-  pour l'instant - des GPO (Group Policy objects) utilisés dans un domaine (Active Directory Services), mais seulement des LGPO (Local Group Policy objects).

Définitions

On désigne par "Stratégie" la configuration logicielle du système par rapport aux utilisateurs.
Par défaut, après installation de Windows, aucune stratégie n'est configurée, et tout est permis (aux restrictions près liées aux groupes prédéfinis d'utilisateurs : Administrateurs, Utilisateurs, Utilisateurs avec pouvoir,...)

Une stratégie sert à mettre en place une ou plusieurs restrictions d'utilisation de Windows et des ses composants principaux.
Par exemple :

Ces paramétrages sont stockés dans la Base de Registres, essentiellement dans les branches :

Cette dualité ...\Policies\Microsoft et ...\Microsoft\...\Policies ne contribue pas à la clarté, et peut être la cause d'erreurs!

On peut y trouver des sous-clefs, pour aboutir à des entrées généralement de type REG_DWORD, ayant la valeur :

Par exemple, dans la clef HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
si  l'entrée NoControlPanel, de type REG_DWORD,  a pour valeur 0x00000001 (1), on ne pourra pas lancer le panneau de configuration.

Mais cela n'est pas une règle absolue!
  Quelques stratégies sont activées pour une valeur de 0 et désactivées pour une valeur de 1.

La Microsoft Management Console "GPEDIT.MSC"

Afin d'éviter à l'utilisateur (administrateur) de manipuler directement la Base de Registres, Microsoft a conçu une Console (MMC) dont le nom du fichier est %systemroot%\system32\gpedit.msc.

Pour l'exécuter, depuis le menu démarrer/exécuter ou dans une fenêtre de commandes, il suffit de taper la commande :
        GPEDIT.MSC

On peut également exécuter GPEDIT à distance, sur un autre ordinateur du réseau, par la commande :
        GPEDIT.MSC /gpcomputer:nom-de-l'ordinateur-distant
 

Pour une raison assez étrange, cette console n'est pas fournie dans Windows XP HOME.
Néanmoins  elle fonctionne très bien sous XP HOME si on la recopie (avec d'autres fichiers) depuis un PC où XP PRO est installé.
 
Il faut d'abord copier les fichiers suivants :
 
       %systemroot%\system32\gpedit.msc
%systemroot%\system32\
gpedit.dll
%systemroot%\system32\gptext.dll
%systemroot%\system32\fde.dll
%systemroot%\system32\fdeploy.dll
%systemroot%\system32\appmgr.dll
%systemroot%\system32\appmgmts.dll

%systemroot%\inf\conf.adm
%systemroot%\inf\system.adm
%systemroot%\inf\inetres.adm
%systemroot%\inf\\wuau.adm (éventuellement. ce fichier sert à définir les stratégies Windows Update)

les fichiers .adm sont aussi présents dans le dossier
%systemroot%\system32\GroupPolicy\Adm
 
Ensuite, il faut enregistrer les composants par les commandes:
 
  regsvr32 %systemroot%\system32\gpedit.dll
regsvr32 %systemroot%\system32\gptext.dll
regsvr32 %systemroot%\system32\fde.dll
regsvr32 %systemroot%\system32\fdeploy.dll
regsvr32 %systemroot%\system32\appmgr.dll
 

Elle se présente ainsi  :
 

Windows 2000 Windows XP

Dans le panneau de gauche on trouve deux arborescences à la suite :

Dans le panneau de droite on trouve les stratégies relatives à la branche sélectionnée à gauche.
Un double-clic sur l'une des stratégies provoque l'ouverture d'une boite dialogue à 2 onglets :

le 1er permet d'activer ou désactiver la stratégie le 2ème affiche de l'aide sur la stratégie Sous Windows XP, l'aide peut être affichée en permanence si l'on choisit l'onglet étendu au lieu de standard :

 GPEDIT puise ses informations :

Les fichiers de résultats REGISTRY.POL

Ces fichiers définis précédemment ont la structure suivante :

Enregistrements Taille
(octets)
Commentaires
Signature 4 Chaîne "PReg" (0x67655250)
Version 4 Actuellement définie à 1 (0x00000001),
incrémentée à chaque nouveau format de fichier.
Suite de sous-structures : [clef;entrée;type;taille;données]
les caractères "[", ";" et "]" figurent explicitement
Si les champs entrée, type, taille, données sont manquants ou nuls, la clef est créée
Clef Variable Chaîne UNICODE contenant le nom de la clef sans le nom de branche
P.ex.: "Software\Policies\Microsoft\SystemCertificates\EFS" 
Entrée Variable Chaîne UNICODE contenant le nom de l'entrée
P.ex.: "EFSBlob"
Certaines chaînes ont une signification spéciale
**DeleteValues Suivie d'une liste d'entrées à supprimer, séparées par un point-virgule
P.ex.: "**DeleteValues;DisabletaskMgr;WarnUser"
**Del.nom d'entrée Supprime une seule entrée
P.ex.: "**Del.NoLogoff" 
**DelVals Supprime toutes les entrées de la clef
**DeleteKeys Supprime toutes les sous-clefs de la clef
**SecureKey=x Définit les autorisations d'accès à la clef
**SecureKey=1 donne un accès total au système et aux administrateurs
**SecureKey=0 réinitialise toutes les autorisations
Type 4 Définit le type d'entrée :
0x00000001 : REG_SZ
0x00000002 : REG_EXPAND_SZ
0x00000003 : REG_BINARY
0x00000004 : REG_DWORD
0x00000007 : REG_MULTI_SZ
Taille 4 Taille des données en octets
Données Variable Valeur de l'entrée

Comment appliquer des stratégies locales sauf aux administrateurs

Les stratégies définies à l'aide de GPEDIT s'appliquent à tous les utilisateurs, administrateurs inclus., ce qui peut s'avérer très gênant!
Voici une méthode pour remédier à ce problème :

  1. Ouvrir une session en tant qu'administrateur.
  2. Lancer GPEDIT.MSC, et définir les stratégies voulues (en étant prudent cependant, afin qu'ultérieurement on ne se trouve pas en situation de blocage total. Par exemple l'accès à MMC.EXE ne devra en aucun cas être interdit!) .
  3. Quitter GPEDIT.
  4. Fermer la session.
  5. Répéter pour TOUS les comptes (administrateur compris) la séquence suivante :
    1. Ouvrir une session.
      En effet, le fait d'ouvrir une session provoque l'application des stratégies (et inversement, tant qu'un compte n'a pas ouvert de session, les stratégies ne sont pas encore appliquées).
    2. Fermez la session
  6. Ouvrir une session en tant qu'administrateur.
  7. Copier le fichier %Systemroot%\System32\GroupPolicy\User\Registry.pol dans un dossier quelconque (autre partition,  disquette, ...).
  8. Relancer GPEDIT.MSC, et annuler les stratégies définies au point 2 que l'on ne veut pas voir appliquées aux comptes administrateurs.
  9. Quitter GPEDIT
  10. Copier le fichier Registry.pol sauvegardé au point 7 dans le dossier %Systemroot%\System32\GroupPolicy\User. Cette opération va écraser le fichier créé lors de la désactivation des stratégies au point 8. Si le système demande de confirmer le remplacement du fichier existant, répondre Oui.
  11. Fermer la session.
  12. Ouvrir une session en tant qu'administrateur. Les stratégies définies au point 2 ne sont pas appliquées.
  13. Fermer la session.
  14. Ouvrir une session en tant qu'utilisateur ordinaire. Les stratégies définies au point 2 sont appliquées. 

Restauration des stratégies locales d'origine

Pour supprimer les stratégies (pour tous les utilisateurs) :

  1. Ouvrir une session en tant qu'administrateur.
  2. Déplacer, renommer ou supprimer le fichier %Systemroot%\System32\GroupPolicy\User\Registry.pol. Un autre fichier Registry.pol par défaut sera créé par le système de protection des fichiers Windows lors de la fermeture de session.
  3. Lancer GPEDIT.MSC, et définir à "non configuré" toutes les stratégies.
  4. Fermer la session
  5. Répéter pour TOUS les comptes (administrateur compris) la séquence suivante :
    1. Ouvrir une session.
    2. Fermez la session.

Les fichiers modèles .ADM

Comme cela a été exposé précédemment, ces fichiers servent de modèles à la création de stratégies.

Ces fichiers texte (ANSI ou UNICODE) comportent plusieurs sections, à structure arborescente, chaque section et sous-section étant identifiée par un mot-clef. On peut trouver également des directives conditionnelles liées à la version du système d'exploitation en cours.

Quelques règles syntaxiques :

Exemple commenté (extrait du fichier system.adm de Windows XP)

Ligne Rôle Commentaires
#if version >= 3 Directive conditionnelle
(facultative)
Tout ce qui suit ne s'applique que pour les Système de version supérieure ou égale à 3. Les versions sont ainsi numérotées :
2 : Windows NT4
3 : Windows 2000
4 : Windows XP et 2003
La portée de cette directive cesse dès qu'apparaît la directive #endif
Si la directive conditionnelle n'est pas vérifiée, toutes les lignes comprises entre #if version... et #endif  sont ignorées.
CLASS MACHINE Début de stratégies
(obligatoire)
La directive CLASS est suivie de l'un des 2 mots-clefs :
  • USER : stratégies relatives à l'utilisateur
    clef HKCU
  • MACHINE : stratégies relatives à l'ordinateur
    clef HKLM

Elle sert à définir le contexte dans lequel sont définies les stratégies qui vont suivre. Ce contexte est conservé tant que n'apparaît pas une autre directive CLASS

CATEGORY !!AdministrativeServices Début de catégorie
(obligatoire)
La directive CATEGORY est suivie d'un nom arbitraire (ici on a utilisé une variable de chaîne, dont le contenu est égal à "Système")
Elle sert à afficher un noeud ayant le même nom ("Système") dans l'arborescence du panneau de gauche de GPEDIT
POLICY !!NoSecurityMenu Début de stratégie La directive POLICY est suivie d'un nom arbitraire (ici on a utilisé une variable de chaîne, dont le contenu est égal à "Supprimer l'option Sécurité du menu Démarrer (Terminal Server uniquement)")
Elle sert à afficher une description rapide de la stratégie dans le panneau de droite de GPEDIT
KEYNAME "Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" Nom de clef La directive KEYNAME est suivie du nom de la clef concernée par la stratégie (sans le nom de branche HKCU ou HKLM).
EXPLAIN !!NoSecurityMenu_Help Aide contextuelle La directive EXPLAIN est suivie d'une chaîne  arbitraire (ici on a utilisé une variable de chaîne) contenant un texte d'aide affiché dans la boite de dialogue associée à la stratégie. Ce texte peut comporter un grand nombre de lignes
VALUENAME "NoNTSecurity" Nom d'entrée La directive VALUENAME est suivie du nom de l'entrée concernée par la stratégie.
END POLICY Fin de stratégie  
END CATEGORY Fin de catégorie  
...    
[strings] Début de section
de variables chaînes
Cette section est placée à la fin du fichier.
...    
AdministrativeServices="Système" Définition de variable chaîne  
...    
NoSecurityMenu="Supprimer l'option Sécurité du menu Démarrer (Terminal Server uniquement)" Définition de variable chaîne  
NoSecurityMenu_Help="Supprime l'élément Sécurité Windows du menu Paramètres sur les clients Terminal Server.\n\nSi vous activez cette stratégie, l'élément Sécurité Windows n'apparaît pas dans le menu Paramètres du menu Démarrer. En conséquence, les utilisateurs doivent taper une séquence d'attention de sécurité, telle que Ctrl+Alt+Fin, pour ouvrir la boîte de dialogue Sécurité Windows sur un client Terminal Server.\n\nCette stratégie est conçue pour empêcher les utilisateurs peu expérimentés de se connecter aux services Terminal Server par inadvertance." Définition de variable chaîne  

L'arborescence dans le panneau de gauche de GPEDIT est obtenue par imbrication des catégories les unes dans les autres.

CATEGORY !!AdministrativeServices
   CATEGORY !!Login_Policies
    ...
    END CATEGORY
    CATEGORY !!DiskQuota
    ...
    END CATEGORY
...
END CATEGORY
CATEGORY !!WindowsComponents
    CATEGORY !!WindowsExplorer
        CATEGORY !!Comdlg
        ...
        END CATEGORY
    ...
    END CATEGORY
...
END CATEGORY
Par défaut, et dans la plupart des cas, à une stratégie correspond dans la BDR une seule entrée de type REG_WORD, et de valeur
0x00000000 : stratégie désactivée
0x00000001 : stratégie activée

Mais il peut exister des stratégies traduites par :

Pour cela on utilise des mots-clefs supplémentaires dans le fichier .adm, que l'on va commenter à l'aide d'exemples extraits du fichier system.adm :

Ligne Rôle Commentaires
CATEGORY !!RegionalOptions
   POLICY !!RestrictUILangSelect
      KEYNAME "Software\Policies\Microsoft\Control Panel\Desktop"
      EXPLAIN !!RestrictUILangSelect_Help
  On se trouve dans la catégorie "Options régionales" (de la catégorie "Panneau de configuration")
La stratégie est "Restreindre la sélection des menus Windows 2000 et des langues de dialogue"
      PART !!UILangSelect DROPDOWNLIST NOSORT REQUIRED Début de composant supplémentaire de stratégie La directive PART est suivie d'un nom arbitraire, servant à définir le composant de stratégie. Elle est suivie d'un mot clef définissant le type de saisie.
Ici DROPDOWNLIST indique une liste déroulante, non triée (NOSORT) et  à sélection requise (REQUIRED)
      VALUENAME "MultiUILanguageID"
   
Nom d'entrée Nom de l'entrée concernée par la stratégie.
         ITEMLIST
        
Type de composant (Liste) Indicateur de début de liste
         NAME !!UILang1 VALUE 00000409 DEFAULT      
         NAME !!UILang2 VALUE 00000411
         ...
         NAME !!UILang7 VALUE 0000040c
         NAME !!UILang8 VALUE 00000c0a
         NAME !!UILang9 VALUE 00000410
         ...
Éléments de Liste La directive NAME est suivie :
  • d'une valeur affichée dans la liste déroulante (P.ex. !!UILang7 contient "Français")
  • du mot clef VALUE suivi de la valeur qui sera stockée dans la BDR
  • du mot-clef éventuel DEFAULT indiquant laséelction par défaut
         END ITEMLIST
 
Fin de liste Indicateur de fin de liste
      END PART
 
Fin de composant Indicateur de fin de composant
  END POLICY
END CATEGORY ;;RegionalOptions
   
Aspect de la boite de dialogue   Résultats dans la BDR

 

 En plus de DROPDOWNLIST, on dispose des types de composants suivants :

Types Rôle Exemple
CHECKBOX Case à cocher
EDITTEXT Saisie de texte
TEXT Texte statique (aucune entrée associée)
COMBOBOX Fusion de DROPDOWNLIST (liste déroulante) et de EDITTEXT (texte éditable)
LISTBOX Liste d'items, modifiable par le biais d'une boite de dialogue servant à ajouter ou retirer un item
Action sur Afficher :

Ajout d'un fichier ADM à GPEDIT.MSC

Il s'effectue à partir du menu contextuel Modèles d'administration Ajout/Suppression de modèles...

 mais si le fichier adm que l'on ajoute concerne des clefs autres que :

les stratégies qu'il décrit n'apparaîtront pas (par défaut) dans GPEDIT!

Il faut paramétrer l'affichage de GPEDIT en conséquence.
Ce paramétrage diffère un peu suivant les versions de Windows :

Version Emplacement Commentaires
Windows 2000
 
Décocher les items :
  • Ne montrer que les stratégies
  • Ne montrer que les stratégies configurées
Windows XP (et +)

 
Sélectionner Filtrage
puis décocher les cases
  • Afficher uniquement les paramètres de stratégies configurés
  • N'afficher que les paramètres de stratégie pouvant être entièrement gérés

Suivant qu'une stratégie concerne ou non les clefs "standard", la couleur de l'icône est différente :

Type de stratégie Aspect Clefs
Stratégie "système"
(clefs non standard)

(en rouge)

HKCU\Control panel\keyboard\InitialKeyboardIndicators
Stratégie "standard"

(en bleu)

HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoStartMenuSubFolders

Outil SHOWADM d'affichage des fichiers modèles .adm

SHOWADM est un script VBS dont le but est d'expliciter de façon synthétique le contenu de un ou plusieurs fichiers .adm.
Il utilise deux contrôles ActiveX additionnels :

Il fait appel à EXCEL (obligatoire) pour y créer de façon totalement automatique un tableau énumérant :

Sa mise en oeuvre se limite à copier les fichiers showadm.vbs, comctl32.ocx et jcb.ocx dans un dossier quelconque.
Ensuite il suffit d'exécuter le script showadm.vbs depuis une fenêtre de commandes, l'explorateur ou le menu Démarrer/Exécuter

Un formulaire (dans Internet Explorer) s'ouvre alors
 

Pour modifier la liste de fichiers .adm, appuyer sur le bouton "Liste fichiers ADM"

Cela provoque l'ouverture d'une boite dialogue affichant la liste des fichiers actuellement retenus.

Deux boutons Ajouter et Supprimer permettent de modifier cette liste (le bouton Supprimer n'est actif que si on a sélectionné un fichier dans la liste)

L'action sur Ajouter provoque l'ouverture de la boite de dialogue habituelle de sélection de fichiers.

 

 

Appuyer sur OK, puis recommencer éventuellement l'ajout de fichiers.

La liste est alors actualisée dans le formulaire initial.

 

Appuyer sur Afficher

Le formulaire se ferme alors, et quelques instants plus tard s'affiche un classeur EXCEL à 2 onglets (Machine et Utilisateur), qui se remplit peu à peu. A la fin on obtient ceci :
En tête du classeur est affichée la liste des fichiers , ainsi que la branche concernée (HKCU ou HKLM)
Les cellules de la colonne Stratégie sont dotées de commentaires, affichés dans une fenêtre "popup"

 

On peut faire appel à toutes les fonctions de EXCEL, par exemple celle de recherche d'une chaîne :
On voit qu'il existe plusieurs stratégies répondant à ce critère, dont "Activer l'écran de veille"
On peut voir que la clef correspondante est  Software\Policies\Microsoft\Windows\Control Panel\Desktop\ScreenSaveActive, ce qui est confirmé par l'ouverture automatique de REGEDIT :
Téléchargements
  SHOWADM.VBS script VBS
  JCB.OCX  contrôle ActiveX (JCB)
  COMCTL32.OCX contrôle ActiveX (Microsoft)
  SHOWADM.ZIP   contient les 3 fichiers précédents
  ADM.ZIP Comme GPEDIT n'existe pas sous XP HOME,
les fichiers .adm principaux n'existent pas sous ce système.

Ce fichier compressé contient les 4 fichiers :
  • system.adm
  • inetres.adm
  • conf.adm
  • wuau.adm

Il doit être décompressé dans le dossier
%systemroot%\inf

Usage entièrement gratuit !

Outil STRATEDIT d'édition de stratégies pour un compte donné

A venir prochainement...