Gestion sommaire des GPO depuis le contrôleur de domaine
AttentionDÉPRÉCIÉ
La méthode décrite ici, basée sur des scripts développés localement, va progressivement être abandonnée au profit de l'utilisation des outils officiels fournis par le projet Samba.
Les instructions qui suivent peuvent avoir des effets inattendus, elles sont à utiliser avec précaution, sur un serveur de test par exemple.
Attention
Les commandes gpo-tool policy proposées sur le module sont fournies par le paquet gpo-tool
et ses dépendances et complète partiellement samba-tool.
La commande gpo-tool policy
réplique le fonctionnement du client en ligne de commande samba-tool
.
Elle propose les sous-commandes suivantes :
register
: enregistrement d’une description de règle dans un fichier local servant de stockage à l’usage de la commandegpo-tool
;list
: affichage de la liste des description de règle connues par la commandegpo-tool
(enregistrées dans le fichier de stockage par la commanderegister
). Actuellement, la commandelist
affiche le détail de toutes les descriptions contenues dans le fichier local.add
: association de la règle au GPO ;inspect
: affichage des détails de la description de la règle. L’inspection des règles permet de voir quelles règles seront acceptées par la commandeadd
et quelles variables sont nécessaires.
Associer des règles à un GPO nécessite une édition de l’Active Directory et du répertoire SYSVOL[3]. La nature des modifications du répertoire SYSVOL dépend de la règle à associer de même que les informations à ajouter à l’Active Directory.
Les commandes proposées couvrent la fonctionnalité de création et d’ajout de descriptions de règles (l’ensemble des éléments permettant d’associer la règle à un GPO) et l’association d’un sous-ensemble des règles existantes à un GPO.
Est testé, actuellement, l’ajout des règles suivantes :
association d’un utilisateur ou groupe de l’Active Directory à un groupe local ;
désactivation de la fonctionnalité de changement de mot de passe en passant par l’enchaînement de touches
Ctrl + Alt + Suppr
;la restriction des droits de jonction de machines au domaine, à un compte.
Enregistrement des descriptions de règles
Une description de règle s’ajoute au fichier local avec un appel comme suit :
# gpo-tool policy register <nom unique> <CSE_GUID> <type> <emplacement> <modèle>
Les arguments sont les suivants :
nom unique
: le nom unique servant à identifier la règle (passée en argument de la commande add) ;CSE_GUID
: l’identifiant du composant prenant en charge la règle dans la console d’administration de Windows ;type
: le type de règle déterminant quel traitement est nécessaire pour la mettre en place ;emplacement
: l’emplacement dans le répertoire du GPO, commençant soit parMachine
, soit parUser
;modèle
: contenu du fichier à créer dans le répertoiresysvol
avec emplacement de variables.
Exemple
La commande suivante enregistre une description de la règle permettant l’association d’un utilisateur ou groupe de l’Active Directory à un groupe local :
le nom Groupes restreints ;
un CSE_GUID
{827D319E-6EAC-11D2-A4EA-00C04F79F83A}{803E14A0-B4FB-11D0-A0D0-00A0C90F574B}
;la règle est mise en place sous la forme
GptTmpl.inf
;le fichier est créé dans
Machine/Microsoft/Windows NT/SecEdit
(implique que le contexte d’application estMachine
) ;le contenu est déterminé par
[Group Membership]\n{group}__Memberof = {sup_group}\n{group}__Members = {sub_group}
(la section Group Membership avec les clés {group}__Memberof et {group}__Members) avec les variablesgroup
,sup_group
etsub_group
.
# gpo-tool policy register 'Groupes restreints' '{827D319E-6EAC-11D2-A4EA-00C04F79F83A}{803E14A0-B4FB-11D0-A0D0-00A0C90F574B}' 'GptTmpl.inf' 'Machine/Microsoft/Windows NT/SecEdit' '[Group Membership]\n{group}__Memberof = {sup_group}\n{group}__Members = {sub_group}'
Exemple
La commande suivante enregistre une description de la règle permettant désactivation de la fonctionnalité de changement de mot de passe en passant par l’enchaînement de touches Ctrl + Alt + Suppr
:
le nom identifiant la description
Ctrl + Alt + Suppr
;le CSE_GUID
{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{D02B1F73-3407-48AE-BA88-E8213C6761F1}
;la règle est mise en place sous la forme
Registry.pol
;le fichier est créé dans
User
(implique que le contexte d’application estUser
) ;le contenu est déterminé par
Software\Microsoft\Windows\CurrentVersion\Policies\system;DisableChangePassword;REG_DWORD;4;{value}
avec la variablevalue
.
# gpo-tool policy register 'Ctrl+Alt+Suppr' '{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{D02B1F73-3407-48AE-BA88-E8213C6761F1}' 'Registry.pol' 'User' 'Software\Microsoft\Windows\CurrentVersion\Policies\system;DisableChangePassword;REG_DWORD;4;{value}'
Remarque
Actuellement, seuls deux types sont supportés :
Registry.pol
: format de fichier permettant d’appliquer des clés de registres ;GptTmpl.inf
: format de fichier similaire au format INI[4] permettant de stocker des règles sous la forme clé-valeur.
Le choix du type n’est pas libre mais déterminé par le composant de la console qui prend en charge la règle.
Inspection des descriptions de règles
Exemple
# gpo-tool policy list
Policy: 'Groupes restreints'
- destination: Machine/Microsoft/Windows NT/SecEdit
- variables: group, sup_group, sub_group
Policy: 'Ctrl+Alt+Suppr'
- destination: User
- variables: value
Création d'un GPO
La création d'un GPO s'effectue à l'aide de la commande gpo-tool register
.
Exemple
Le GPO admin_local est créé avec la commande suivante :
# samba-tool gpo create "admin_local" -U administrator%password
GPO 'admin_local' created as {95CBBB90-2941-4AA0-BFFA-491D072EB8DC}
Exemple
Le GPO change_password est créé avec la commande suivante :
# samba-tool gpo create "change_password" -U administrator%password
GPO 'change_password' created as {E542AB9F-626C-4045-8862-F31710A37D07}
Association des règles aux GPO
L’association des règles aux GPO s’effectue avec une commande comme suit :
# gpo-tool policy add <nom du GPO> <nom de la description> [-v clé:valeur …]
Avec les arguments et paramètres suivants :
nom du GPO
: le nom d’affichage (unique du point de vue de Samba) du GPO ;nom de la description
: le nom utilisé pour distinguer la description lors de son enregistrement dans le fichier local (peut-être retrouvé grâce à la commande list) ;-v clé:valeur
: un nombre indéterminé de couples clé, valeur.
Exemple
La règle enregistrée plus tôt peut y être associée de la façon suivante :
# gpo-tool policy add "admin_local" 'Groupes restreints' -v group:*S-1-5-21-2447931902-1787058256-3961074038-5004 -v sup_group:'' -v sub_group:Administrators -U administrator%password
L’utilisateur S-1-5-21-2447931902-1787058256-3961074038-5004 issu de l’Active Directory est associé au groupe local Administrators.
Exemple
La règle enregistrée plus tôt peut y être associée de la façon suivante :
# gpo-tool policy add "change_password" 'Ctrl+Alt+Suppr' -v value :1 -U administrator%password
Remarque
La commande add édite l’Active Directory et le répertoire SYSVOL à travers des connexions ldb et SMB. L’option -U
est nécessaire pour passer le nom d’un compte autorisé à de telles éditions. Le mot de passe peut être ajouté à la suite du compte ou saisi dans le terminal.
Application du GPO au niveau d'une unité organisationnelle
Pour appliquer le GPO, il faut utiliser la commande samba-tool gpo setlink
.
Exemple
# samba-tool gpo setlink "DC=etb1,DC=lan" '{E542AB9F-626C-4045-8862-F31710A37D07}' -U administrator%password
Added/Updated GPO link
GPO(s) linked to DN DC=etb1,DC=lan
GPO : {E542AB9F-626C-4045-8862-F31710A37D07}
Name : change_password
Options : NONE
GPO : {31B2F340-016D-11D2-945F-00C04FB984F9}
Name : Default Domain Policy
Options : NONE
Débogage des GPO sous Windows
Lister les GPO appliquées
Pour commencer, il est recommandé d'actualiser les paramètres de stratégies de groupes du client, dans l'invite de commandes
, saisir :
gpupdate
La commande suivante permet d'obtenir la liste des GPO appliqués pour l'utilisateur connecté :
gpresult /SCOPE USER /V
Pour obtenir les GPO "machine", la commande (à exécuter en tant qu'administrateur) est :
gpresult /SCOPE COMPUTER /V
Exécution de code PowerShell
Si le GPO nécessite des traitements complexes, il est probable qu'il exécutera un programme PowerShell[5].
L'application Windows PowerShell ISE
(exécutée en tant qu'administrateur) permet d'ouvrir et d’exécuter simplement des fichiers .ps1[6].