Tester les relations d’approbations Active Directory avec NLTEST

Dans un environnement Active Directory constitué de plusieurs domaines, les administrateurs doivent parfois mettre en place des relations d’approbations entre les domaines afin d’autoriser l’accès à des ressources communes. NLTEST, un outil en ligne de commande intégré à Windows Server permet de vérifier l’état des canaux de communications entre les domaines et donc des relations d’approbations.

S’applique à : Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016

Documentation officielle : Technet Microsoft

Afficher les options de NLTEST

C:\>nltest /?
 Usage: nltest [/OPTIONS]

/SERVER: - Specify
 /QUERY - Query netlogon service
 /REPL - Force partial sync on BDC
 /SYNC - Force full sync on BDC
 /PDC_REPL - Force UAS change message from PDC
 /SC_QUERY: - Query secure channel for on
 /SC_RESET:[\] - Reset secure channel for on to
 /SC_VERIFY: - Verify secure channel for on
 /SC_CHANGE_PWD: - Change a secure channel password for on
 /DCLIST: - Get list of DC's for
 /DCNAME: - Get the PDC name for
 /DSGETDC: - Call DsGetDcName /PDC /DS /DSP /GC /KDC
 /TIMESERV /GTIMESERV /NETBIOS /DNS /IP /FORCE /WRITABLE /AVOIDSELF /LDAPONLY /BACKG
 /SITE: /ACCOUNT: /RET_DNS /RET_NETBIOS
 /DNSGETDC: - Call DsGetDcOpen/Next/Close /PDC /GC
 /KDC /WRITABLE /LDAPONLY /FORCE /SITESPEC
 /DSGETFTI: - Call DsGetForestTrustInformation
 /UPDATE_TDO
 /DSGETSITE - Call DsGetSiteName
 /DSGETSITECOV - Call DsGetDcSiteCoverage
 /PARENTDOMAIN - Get the name of the parent domain of this machine
 /WHOWILL:* [] - See if will log on
 /FINDUSER: - See which trusted domain will log on
 /TRANSPORT_NOTIFY - Notify netlogon of new transport
 /DBFLAG: - New debug flag
 /USER: - Query User info on
 /TIME: - Convert NT GMT time to ascii
 /LOGON_QUERY - Query number of cumulative logon attempts
 /DOMAIN_TRUSTS - Query domain trusts on
 /PRIMARY /FOREST /DIRECT_OUT /DIRECT_IN /ALL_TRUSTS /V
 /DSREGDNS - Force registration of all DC-specific DNS records
 /DSDEREGDNS: - Deregister DC-specific DNS records for specified DC
 /DOM: /DOMGUID: /DSAGUID:
 /DSQUERYDNS - Query the status of the last update for all DC-specific DNS records
 /BDC_QUERY: - Query replication status of BDCs for
 /SIM_SYNC: - Simulate full sync replication
 /LIST_DELTAS: - display the content of given change log file
 /CDIGEST: /DOMAIN: - Get client digest
 /SDIGEST: /RID: - Get server digest
 /SHUTDOWN: [] - Shutdown for
 /SHUTDOWN_ABORT - Abort a system shutdown

Tester une relation d’approbation entre deux domaines Active Directory

Dans cet exemple nous allons vérifier les domaines approuvés par le domaine LABDOM.COM. Pour cela il suffit de lancer cette commande depuis une machine membre du domaine LABDOM.COM

C:\nltest /trusted_domains
List of domain trusts:
    0: PRODDOM proddom.com (NT 5) (Direct Outbound) (Direct Inbound) ( Attr: quarantined )
    1: DEVDOM devdom.com (NT 5) (Direct Outbound) (Direct Inbound) ( Attr: quarantined )
The command completed successfully

Lister tous les contrôleurs d’un domaine

Nous souhaitons lister tous les DC du domaine LABDOM

C:\nltest /dclist:labdom
   List of DCs in Domain labdom
      \\SRVLAB01 (PDC)
      \\SRVLAB02
      \\SRVLAB03
The command completed successfully

Afficher les canaux sécurisés entre 2 domaines

Soit SRVLAB01 membre du domaine LABDOM et SRVPROD01 membre du domaine PRODDOM. Nous voyons ici qu’un canal sécurisé est établit entre LABDOM et PRODDOM. De plus la requête révèle que ce canal est établit avec le serveur SRVPROD01. Si nous ne connaissions pas le nom d’un contrôleur de ce domaine, c’est maintenant chose faite.

   C:\>nltest /server:SRVLAB01 /sc_query:PRODDOM
   Flags: 0
   Connection Status = 0 0x0 NERR_Success
   Trusted DC Name \\SRVPROD01
   Trusted DC Connection Status Status = 0 0x0 NERR_Success
   The command completed successfully

De la même manière un canal est établit entre SRVLAB02 et SRVPROD01.

   C:\>nltest /server:SRVLAB02 /sc_query:PRODDOM
   Flags: 0
   Connection Status = 0 0x0 NERR_Success
   Trusted DC Name \\SRVPROD01
   Trusted DC Connection Status Status = 0 0x0 NERR_Success
   The command completed successfully

Afficher le canal sécurisé entre une station et un contrôleur de son domaine

Soit STATIONLABDOM01 membre du domaine LABDOM. Cet exemple nous montre qu’il existe un canal sécurisé entre la station et le contrôleur SRVLAB02.

   C:\>nltest /server:STATIONLABDOM01 /sc_query:LABDOM
   Flags: 0
   Connection Status = 0 0x0 NERR_Success
   Trusted DC Name \\SRVLAB02
   Trusted DC Connection Status Status = 0 0x0 NERR_Success
   The command completed successfully

Tester l’authentification d’un compte sur un contrôleur de domaine

Bernard est un compte membre du domaine PRODDOM. Nous allons vérifier qu’il est possible de s’authentifier avec ce compte depuis une station membre du domaine LABDOM.

   C:\>nltest /whowill:PRODDOM bernard
   [14:23:12] Mail message 0 sent successfully (\MAILSLOT\NET\GETDC417)
   [14:23:12] Response 0: S:\\NET1 D:ESS A:bob (Act found)
   The command completed successfully

Cet exemple ne vous semble peut être pas probant. On a tendance à croire qu’une relation d’approbation permet à un compte de s’authentifier sur un autre domaine. Mais pas du tout ! Une relation d’approbation permet à un domaine de relayer une requête d’authentification vers un domaine approuvé ou approuvant. Dans notre exemple la requête a été envoyé depuis un autre domaine que le domaine de Bernard et ça a fonctionné !

Trouver à quel domaine un compte utilisateur appartient

Cet exemple permet de rechercher à quel domaine appartient un compte donné. Seul les domaines approuvés vont répondre bien évidement.

   C:\>nltest /finduser:Bernard
   Domain Name: PRODDOM
   Trusted DC Name \\SRVPROD02
   The command completed successfully

Bernard appartient donc au domaine PRODDOM !

1 commentaire sur “Tester les relations d’approbations Active Directory avec NLTEST”

  1. Excellent article, de plus votre blog est très bien fait. Merci de nous partager tout ça !

Laisser un commentaire