PI Services

Le blog des collaborateurs de PI Services

Active Directory - Comment exporter la chaîne de certification d'un contrôleur de domaine ?

Certaines applications pour pouvoir voir communiquer à travers des protocoles SSL sécurisés telles que LDAPS (port 636) et GC over SSL (3269) doivent avoir l'ensemble de la chaîne de certification d'un certificat d'un contrôleur de domaine (DC). L'export des certificats de la chaîne de certification ainsi que la constitution du certificat finale peut se faire à travers les outils natifs de Windows Server.

Exporter un certificat depuis la console de certification

L'ensemble des manipulations décrites peuvent se faire à distance depuis la console de certificat, mais dans un souci de clarté, les actions décrites sont réalisés directement depuis un contrôleur de domaine.

Depuis une invite de commande, entrer la commande suivante

certlm #cmdlet qui permet d'ouvrir la console de certificats avec le contexte de l'ordinateur local, donc ici le contrôleur de domaine

 

Déployer le dossier Personal puis Certificates

 

Identifier le certificat qui sert à l'authentification des clients du contrôleur de domaine :

  • La colonne Issued To contient habituellement : le FQDN du contrôleur de domaine
  • La colonne Intended Purposes contient habituellement : Client Authentication, Server Authentication
  • La colonne Certificate Template contient habituellement : Domain Controller

 

Faire un click droit sur le certificat > All Tasks > Export...

 

L'utilitaire d'exportation de certificat se lance, choisir de ne pas exporter la clé privée : No, do not export the private key

 

Choisir un format Base-64 encoded X.509 (.CER)

 

Choisir un dossier de destination dans lequel exporter le certificat



Finir l'export du certificat via l'utilitaire

Le certificat du contrôleur de domaine a été exporté, il faut désormais exporter les autres certificats de la chaîne de certification : le certificat racine et les certificats intermédiaires 

 

Exporter chaque certificat de la chaîne de certification

De retour dans la console certlm, faire un click droit sur le certificat > All Tasks > Export...


 

Ouvrir l'onglet Certification Path, l'ensemble des certificats de la chaîne de certification est listé, le premier de la liste étant le certificat racine, le dernier le certificat du contrôleur de domaine, et les certificats entre les deux sont les certificats intermédiaires.

Cliquer sur le certificat racine puis sur View Certificate, le certificat racine s'affiche alors dans son propre onglet, cliquer sur l'onglet Details puis Copy to File...

Le même utilitaire d'export de certificat s'affiche, compléter l'exporter du certificat racine avec les mêmes options que pour le certificat du contrôleur de domaine en donnant un nom explicite au certificat pour pouvoir le différencier.

Exporter de la même façon l'ensemble des certificats intermédiaires.

 

Assembler les certificats de la chaîne de certification

Une fois l'ensemble des certificats de la chaîne de certification exportés, il faut les assembler dans un seul certificat.

  • Créer un fichier texte et remplacer l'extension .txt par .cer, dans cet exemple, on l'appellera DCCertificateFullChain.cer 
  • Ouvrir le certificat racine avec un éditeur de texte comme Notepad et copier coller le contenu dans le certificat jusqu'alors vide DCCertificateFullChain.cer
  • Dans le fichier DCCertificateFullChain.cer faire un saut de ligne après ----END CERTIFICATE----
  • Ouvrir chaque certificat intemédiaire et les copier coller à la suite du certificat racine dans le fichier DCCertificateFullChain.cer en respectant le saut de ligne
  • Finir par le certificat du contrôleur de domaine

Les certificats doivent se suivre comme suit :

 

Le certificat avec l'ensemble de la chaîne de certification est prêt.

 

Active Directory - Comment déléguer l'affichage d'un mot de passe LAPS d'un ordinateur supprimé ?

LAPS ou Local Admin Password Solution est une solution développée par Microsoft qui permet de gérer un mot de passe local de chaque ordinateur d'un domaine Active Directory de façon individuel et autonome. Cet article ne couvrira pas la mise en place de LAPS ni son modèle de délégation, mais se focalisera sur la délégation de la récupération d'un mot de passe LAPS d'un objet ordinateur supprimé.

 

Important : la corbeille Active Directory doit être activée pour récupérer le mot de passe LAPS d'un ordinateur supprimé.

 

Les méthodes par défaut pour lire le mot de passe LAPS d'un ordinateur supprimé

Par ordre de simplicité, les méthodes classiques sont :

  1. Utiliser la console Active Directory Administative Center
  2. Utiliser la cmdlet PowerShell Get-ADObject avec le paramètre -IncludeDeleteObjects
  3. Utiliser l'utilitaire LDP.exe

Pourquoi ne pas utiliser une de ces méthodes pour lire les mots de passe LAPS des ordinateurs supprimés ? Parce que les droits nécessaires sont Domain Admin. Seul un nombre restreint d'administrateurs doit être membre de ce groupe à haut privilège.

 

 

Déléguer la lecture du mot de passe LAPS d'un ordinateur supprimé

Les tâches suivantes doivent être réalisées avec un utilisateur membre du groupe Domain Admin

 

1. Vérifier que l'utilisateur à la possibilité de voir et modifier les objets dans la corbeille AD

Dans une invite de commande exécuter en tant qu'administrateur, saisir la commande suivante :

dsacls "CN=Deleted Objects,DC=contoso,DC=intern" #Les mots contoso et intern sont à remplacer par le domaine à requêter

#Si le message suivant apparaît, les droits actuels de l'utilisateur sont insuffisants

Insufficient access rights to perform the operation.

The command failed to complete successfully.

 

 

Si le message précédent s'affiche et donc que les permissions ne s'affichent pas, il faut s'approprier la propriété du container Deleted Obects

dsacls "CN=Deleted Objects,DC=contoso,DC=intern" /takeownership #commande qui permet de devenir le propriétaire du container Deleted Objects

#Les permissions s'affichent alors, voici un exemple de permission

Owner: CONTOSO\Domain Admins
Group: NT AUTHORITY\SYSTEM

Access list:
{This object is protected from inheriting permissions from the parent}

Allow BUILTIN\Administrators          SPECIAL ACCESS
                                      LIST CONTENTS
                                      READ PROPERTY
Allow NT AUTHORITY\SYSTEM             SPECIAL ACCESS
                                      DELETE
                                      READ PERMISSONS
                                      WRITE PERMISSIONS
                                      CHANGE OWNERSHIP
                                      CREATE CHILD
                                      DELETE CHILD
                                      LIST CONTENTS
                                      WRITE SELF
                                      WRITE PROPERTY
                                      READ PROPERTY

 

 

 

2. Déléguer la lecture des mots de passe LAPS qui se trouvent dans la corbeille AD

Dans une invite de commande exécuter en tant qu'administrateur, saisir la commande suivante :

dsacls "CN=Deleted Objects,DC=contoso,DC=intern" /G CONTOSO\AD-GROUP-LAPS-DELETED-OBJECTS-READ:LCRP # commande qui permet de donner au groupe AD-GROUP-LAPS-DELETED-OBJECTS-READ les autorisations nécessaires pour lire les mots de passe LAPS des objets supprimés LC = list content et RP = read property

# ces permissions sont alors ajoutés à l'access list qui s'affiche

Allow CONTOSO\AD-GROUP-LAPS-DELETED-OBJECTS-READ
                                      SPECIAL ACCESS
                                      LIST CONTENTS
                                      READ PROPERTY

 

Remarique : il est nécessaire de créer le groupe AD-GROUP-LAPS-DELETED-OBJECTS-READ avant de taper la commande ci-avant, le nom du groupe peut être différent. 



3. Lire le mot de passe LAPS d'un objet ordinateur dans la corbeille AD

Les méthodes habituelles pour lire le mot de passe LAPS tel que LAPS UI ou la console Active Directory Users and Computers ne fonctionnent que sur les ordinateurs présents dans l'Active Directory, il est ainsi recommandé d'utiliser la cmdlet PowerShell Get-ADObject, par exemple :

Get-ADObject -Filter 'msds-LastKnownRDN -like "NameOfTheDeletedComputer"' -IncludeDeletedObjects -Properties ms-mcs-admpwd | Select ms-mcs-admpwd # il faut remplacer NameOfTheDeletedComputer par le nom de l'ordinateur dont le mot de passe LAPS doit être récupéré

# le mot de passe LAPS s'affiche en clair

 

Remarque : l'utilisateur qui doit récupérer le mot de passe de l'objet ordinateur supprimé doit être membre du groupe auquel la délégation a été fournie, dans cet exemple CONTOSO\AD-GROUP-LAPS-DELETED-OBJECTS-READ

Remarque 2 : l'utilisateur qui doit récupérer le mot de passe de l'objet ordinateur supprimé devait déjà avoir la possibilité de lire le mot de passe LAPS de l'ordinateur avant sa suppression

Active Directory - Comment afficher les attributs LDAP non-visibles dans l'utilitaire de délégation Active Directory ?

Cela fait 1 h que vous cherchez dans l'utilitaire de délégation de permission d'Active Directory votre attribut, mais impossible de le trouver ?

Dans un premier temps, il faut savoir que les noms affichés dans cet utilitaire sont sous le format "friendly name" qui n'est pas le nom technique dit "LDAP name". Vous pouvez vous référer à l'article suivant qui fait la correspondance entre les 2 représentations pour les attributs les plus utilisés : tableau de correspondance attribut LDAP et friendly name

Si votre attribut n'est toujours pas visible, c'est parce que par défaut certains attributs sont volontairement cachés.

 

Afficher un attribut caché dans l'utilitaire de délégation Active Directory

 

Pour afficher un attribut caché dans l'utilitaire de délégation Active Directory, il faut se connecter à un contrôleur de domaine (DC) et ouvrir le fichier dssec.dat.

Par défaut, celui-ci se trouve sous C:\Windows\System32

Le fichier est divisé par type d'objet LDAP : utilisateur, ordinateur, etc.

Lorsqu'un attribut est égale à 7 l'attribut n'est pas visible dans l'utilitaire de délégation, il faut modifier la valeur à 0 pour le rendre visible.

 

Exemple sur l'attribut "st" dont le friendly name est "State/Province"

Avant :

 

Après :

 

Remarque : les modifications dans le fichier dssec.dat ne sont pas répliqués sur les autres DC, il faut donc réutiliser le même DC pour de futures modifications ou refaire les mêmes manipulations sur le nouveau DC. À noter que cela ne concerne que l'affichage dans l'utilitaire de délégation, toute modification de permission via l'utilitaire est répliquée sur l'ensemble des DC.

Active Directory – Comment afficher la clé de récupération Bitlocker

Lorsque Bitlocker est activé sur le poste de travail / ordinateur portable de votre entreprise, vous devez disposer d’une solution pour obtenir la clé de récupération du disque dur. Dans certains cas, Bitlocker peut demander à l’utilisateur la clé de récupération s’il détecte un comportement spécifique tel que des modifications de partition.

Si vous n'avez pas la solution MBAM (Microsoft BitLocker Administration and Monitoring) en place pour centraliser la gestion de Bitlocker, la solution la plus simple consiste à utiliser soit la console Utilisateurs et ordinateurs Active Directory soit la console de modification ADSI.

Cela ne peut être possible que si vous définissez dans la GPO de stocker la clé de récupération dans Active Directory.

Utilisation de la console Utilisateurs et ordinateurs Active Directory:

Pour utiliser la console Utilisateurs et ordinateurs Active Directory, il faut installer un plug-in pour afficher les informations de clé de récupération Bitlocker. Il est intégré dans les fonctionnalités depuis Windows Server 2008.

Après l’installation, fermez et ouvrez à nouveau Utilisateurs et ordinateurs Active Directory.

Un nouvel onglet est maintenant disponible sur l’objet ordinateur : Bitlocker Recovery

Utilisation de la console de modification ADSI:

Pour afficher la clé de récupération Bitlocker depuis la console de modification ADSI, il suffit d'ouvrir cette dernière avec un compte qui a les droits et chercher le nom d'ordinateur sous l'unité d'organisation cible.

Cliquez sur le nom d'ordinateur concerné, puis double-cliquez sur le dernier objet du volet droit  

Ensuite, cherchez l'attribut msFVE-RecoveryPassword pour avoir la valeur de la clé de récupération Bitlocker

Droits de délégation nécessaire pour afficher la clé de récupération Bitlocker:

Pour visualiser la clé de récupération Bitlocker, il faut avoir des droits administrateur de domaine. Sinon si vous souhaitez donner les droits nécessaires pour afficher ces informations à quelqu'un qui n'est pas administrateur de domaine, il faut lui déléguer certains droits sur l'unité d'organisation ciblée.

  • Faites un clic droit sur l’unité d’organisation ciblée et sélectionnez Delegate Control...
  • Ajoutez des groupes qui doivent afficher la clé de récupération

  • Sélectionnez Create a custom task to delegate

  • Choisissez Only the following objects in the folder: et cochez "msFVE-RecoveryInformation objects"
 

  • Donnez le contrôle total sur cet objet

Sources:

https://www.manishbangia.com/how-to-get-bitlocker-recovery-password-from-active-directory/#jp-carousel-3904 
http://www.alexandreviot.net/2015/06/10/active-directory-how-to-display-bitlocker-recovery-key/ 

ADMT : Contrôleur de domaine à utiliser lors d'une migration ordinateur

Durant une migration ordinateur avec l'outil ADMT d'un domaine source vers un domaine cible, il est possible de rencontrer l’erreur ci-dessous :

ERR3:7075 Failed to change domain affiliation, hr=80070005 Access is denied

Cette erreur sera enregistrée dans le fichier log de migration ADMT sous c:\windows\admt\logs.

Lors de la migration des objets ordinateurs avec ADMT, l'outil demande de choisir les contrôleurs de domaine source et cible à utiliser. Le choix du DC cible est très important !

Il ne faut pas choisir n'importe quel DC cible, il faut plutôt utiliser le nom du DC où la configuration ci-dessous a été faite.

Resolution de l'erreur:

Cette erreur peut être résolue par deux méthodes :

1. Activer la stratégie de groupe (GPO) suivante sur tous les contrôleurs de domaine cible (Default domain policy) :

“Computer Settings\Windows Settings\Security Settings\Local Policies\Security Options\NetWork Access: Named Pipes that can be accessed anonymously” avec au moins les services “netlogon,lsarpc” inclus.

2. Choisir un des contrôleurs de domaine cible (qui sera utilisé lors de la migration ordinateur) et créer la clé de registre suivante : "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\NullSessionPipes" avec les valeurs "netlogon,lsarpc"

Source : https://santhoshsivarajan.wordpress.com/2010/10/30/admt-err37075-failed-to-change-domain-affiliation-access-is-denied/

Explication de l’erreur:

ADMT agents sync the computer with the target domain using anonymous connections to the LSARPC and NETLOGON named pipes on the target domain's DC.

Source : https://social.technet.microsoft.com/Forums/ie/en-US/304f25a2-cb85-4570-b616-669a5a874ba0/admt-computer-migration-failures?forum=winserverMigration

 

Remarque :

Le fait d'installer l'outil ADMT PES (Paswword Export Server) sur un contrôleur de domaine, la clé de registre ci-dessus sera créée automatiquement.

Active Directory - À quels attributs LDAP correspondent les friendly name dans l'AD ?

Vous êtes-vous déjà mordus les doigts dans l'utilitaire de délégation de permissions Active Directory (AD) en essayant désespérément de savoir à quel attribut LDAP correspond tel attribut sous sa forme "friendly" name ?

 

Le tableau de correspondance attribut LDAP et friendly name

 

LDAP_name Friendly_name
c Country Abbreviation
cn Name
co Country
comment Comment
company Company
department Department
description Description
directReports Direct Reports
displayName Display Name
distinguishedName Distinguished Name
division Division
employeeID Employee ID
facsimileTelephoneNumber Fax Number
generationQualifier Generational Suffix
givenName First Name
homeDirectory Home Folder
homeDrive Home Drive
homePhone Home Phone
homePostalAddress Home Address
info Notes
initials Initials
internationalISDNNumber International ISDN Number (Others)
ipPhone IP Phone Number
l City
mail E-Mail Address
manager Manager
memberOf Member Of
middleName Middle Name
mobile Mobile Number
mSDS-PhoneticCompanyName Phonetic Company Name
mSDS-PhoneticDepartment Phonetic Department
mSDS-PhoneticDisplayName Phonetic Display Name
mSDS-PhoneticFirstName Phonetic First Name
mSDS-PhoneticLastName Phonetic Last Name
msRTCSIP-PrimaryHomeServer Office Communications Server
msRTCSIP-PrimaryUserAddress Office Communications Server Address
msRTCSIP-UserEnabled Enabled for Office Communications Server
otherFacsimileTelephoneNumber Fax Number (Others)
otherHomePhone Home Phone Number (Others)
otherIpPhone IP Phone Number (Others)
otherMailbox E-Mail Address (Others)
otherMobile Mobile Number (Others)
otherPager Pager Number (Others)
otherTelephone Phone Number (Others)
pager Pager Number
personalTitle Title
physicalDeliveryOfficeName Office Location
postalCode ZIP/Postal Code
postOfficeBox Post Office Box
primaryInternationalISDNNumber International ISDN Number
primaryTelexNumber Telex Number
samAccountName Logon Name (pre-Windows 2000)
sn Last Name
st State/Province
streetAddress Street Address
telephoneNumber Telephone Number
telexNumber Telex Number (Others)
title Job Title
url Web Page Address (Others)
userPrincipalName Logon Name
userWorkstations Logon Workstations
wWWHomePage Web Page Address

 

Remarque : certains attributs ne sont pas disponibles par défaut dans l'utilitaire de délégation de permission, il faut modifier le fichier dssec.dat sur un contrôleur de domaine

[Azure Active Directory] - Définir le lieu d'utilisation

Lorsque vous synchronisez vos utilisateurs via "Azure AD Connect", que vos utilisateurs sont dans différents pays et que vous utilisez l'audioconférence dans Teams, il semblerait logique que vos utilisateurs se voient attribuer un numéro "locale", plutôt qu'un numéro "Français".

 

Pour ce faire il est important de définir le lieu d'utilisation (Usage Location) dans Azure Active Directory, il est donc important de remplir l'attribut "Country" dans votre Active Directory OnPremise.

La construction est basé sur deux lettres, vous pourrez trouver la correspondance des pays et des lettres dans le lien ci-dessous:

Attention : Vous devrez utiliser les deux lettres en majuscule de la colonne "Language Culture Name"

https://docs.microsoft.com/en-us/previous-versions/commerce-server/ee825488(v=cs.20)?redirectedfrom=MSDN

 

Vous pouvez fixer cet attribut à l'aide de Powershell via la commande ci-dessous (en prenant soin de remplacer "Mathieu" par le nom de votre utilisateur) :

Get-ADUser Mathieu | Set-ADUser -Replace @{‘Country’=”US”}

Ou alors en important un fichier csv pour une modification en masse, exemple de code ci-dessous.

# Import Csv and Set PreferredLanguage Attribute for each user
Import-csv C:\Temp\ToFixed.csv | foreach {
    $SamAccountName = $_.SamAccountName
    $Attribute = $_.Attribute
    Try {
        # Modifying PreferredLanguage Attribute
        Set-ADUser -Identity $SamAccountName -Replace @{‘Country’=$Attribute} -ErrorAction Stop 
        }
    Catch {
        $SamAccountName | Add-Content C:\temp\ErrorUsageLocation.txt
        }
    # Release
    $SamAccountName = $null
    $Attribute = $null
    }

 

[Office 365] - Fixer la langue par défaut pour OneDrive

Lorsque vous synchronisez vos utilisateurs via "Azure Ad Connect" et, que vous avez des utilisateurs dans différents pays, la langue par défaut pour chacun des utilisateurs dépend d'un attribut de votre Active Directory OnPremise, cet attribut est le "preferredLanguage".

Il devra être construit en suivant la nomenclature "Language Culture Name" du lien ci-dessous :

https://docs.microsoft.com/en-us/previous-versions/commerce-server/ee825488(v=cs.20)?redirectedfrom=MSDN

Vous pouvez fixer cet attribut à l'aide de Powershell via la commande ci-dessous (en prenant soin de remplacer "Mathieu" par le nom de votre utilisateur) :

Get-ADUser Mathieu | Set-ADUser -Replace @{‘preferredLanguage’=”en-US”}

Ou alors en important un fichier csv pour une modification en masse, exemple de code ci-dessous.

# Import Csv and Set PreferredLanguage Attribute for each user
Import-csv C:\Temp\ToFixed.csv | foreach {
    $SamAccountName = $_.SamAccountName
    $Attribute = $_.Attribute
    Try {
        # Modifying PreferredLanguage Attribute
        Set-ADUser -Identity $SamAccountName -Replace @{‘preferredLanguage’=$Attribute} -ErrorAction Stop 
        }
    Catch {
        $SamAccountName | Add-Content C:\temp\ErrorPreferredLanguage.txt
        }
    # Release
    $SamAccountName = $null
    $Attribute = $null
    }

 

Active Directory GPO - Comment modifier les paramètres Internet Explorer

Oh, la belle bleue (même si elle est verte) !

 

Modifier les paramètres Internet Explorer (IE) via GPO permet de simplifier grandement le déploiement d'un paramètre spécifique IE, si tenté que la GPO soit intuitive à configurer..

Rappelons dans un premier temps comment accèder aux settings IE, une fois la GPO ouverte pour modification : User Configuration > Preferences > Control Panel Settings > Internet Settings > New

 

La même fenêtre des options IE que sur une machine local s'affiche avec la particularité d'avoir des paramètres soulignés en vert d'un trait plein et d'autre souligné en rouge d'un trait en pointillé.

 

 

Signification et modification

 

Les codes couleurs fonctionnent comme ceci :

  • Les traits verts correspondent aux paramètres qui sont activés et s'appliqueront sur les machines
  • Les traits rouges correspondent aux paramètres non désactivés et qui ne s'appliqueront pas sur les machines

 

Comment faire pour basculer un paramètre activé à désactivé puisque les raccourcis habituels ne semblent pas fonctionner ?

C'est grâce aux touches F5, F6, F7 et F8 qu'il est possible de changer le statut d'un paramètre :

  • F5 : active tous les paramètres de l'onglet
  • F6 : active uniquement le paramètre qui a été modifié en dernier
  • F7 : désactive uniquement le paramètre qui a été modifié en dernier
  • F8 : désactive tous les paramètres de l'onglet

 

Active Directory - Accéder aux principaux outils d'administration AD en ligne de commande

Marre de devoir attendre que le bureau Windows Server 2016/2019 se charge pour chercher votre console d'administration ou peur que le simple fait d'ouvrir la recherche Windows de Windows Server 2012 freeze votre session ?

Voici la liste des commandes les plus utiles pour accéder aux outils d'administration Windows :

 

Active Directory Domains & Trust DOMAIN.MSC
Active Directory Sites & Services DSSITE.MSC
Active Directory Users & Computers DSA.MSC
Certificates snap-in ERTMGR.MSC
Certification Services CERTSRV.MSC
Command Prompt CMD.EXE
Computer Management COMPMGMT.MSC
Device Manager DEVMGMT.MSC
DHCP Manager DHCPMGMT.MSC
Disk Defragmenter DFRG.MSC
Disk Management DISKMGMT.MSC
Distributed File System DFSGUI.MSC
DNS Manager DNSMGMT.MSC
Domain Controller Security Policy DCPOL.MSC
Domain Security Policy DOMPOL.MSC
Event Viewer EVENTVWR.MSC
Hardware and software configuration information MSINFO32.EXE
Internet Authentication Service IAS.MSC
Internet Information Service (\Windows\system32\inetsrv) INETMGR
local Group Policy Editor GPEDIT.MSC
Local Security Policy SECPOL.MSC
Local Users and Groups LUSRMGR.MSC
Microsoft Management Console MMC.EXE
Performance Monitor PERFMON.MSC
Remote Desktop MSTSC
Resultant Set of Policy RSOP.MSC
Routing and Remote Access RRASMGMT.MSC
Run Registry Editor REGEDIT.EXE
Service Configuration SERVICES.MSC
Shared Folders FSMGMT.MSC
Terminal Services TSCC.MSC