Question
Découvrir le domaine automatiquement
- Patrick Berthon
-
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 100
- Remerciements reçus 0
il y a 17 ans 1 mois #3857
par Patrick Berthon
Réponse de Patrick Berthon sur le sujet Re:Découvrir le domaine automatiquement
$env:USERDNSDOMAIN
voir même :
[code:1]
\"DC=\"+$($($env:USERDNSDOMAIN).tolower()).Replace(\".\",\",DC=\"«»)
[/code:1]<br><br>Message édité par: Zylwee, à: 29/01/09 17:28
voir même :
[code:1]
\"DC=\"+$($($env:USERDNSDOMAIN).tolower()).Replace(\".\",\",DC=\"«»)
[/code:1]<br><br>Message édité par: Zylwee, à: 29/01/09 17:28
Connexion ou Créer un compte pour participer à la conversation.
- Pazefur
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 32
- Remerciements reçus 0
il y a 17 ans 1 mois #3858
par Pazefur
Réponse de Pazefur sur le sujet Re:Découvrir le domaine automatiquement
Effectivement bien joué, j'ai beaucoup à apprendre à ce que je vois
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 17 ans 1 mois #3865
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Découvrir le domaine automatiquement
Et si l'utilisateur dont on veut récupérer des infos n'est pas l'utilisateur en cours, on peut utiliser le préfixe \"GC://\" au lieu de \"LDAP://\". La requête va alors interroger le Global Catalog, qui contient les attributs principaux de tous les objets de l'AD.
Janel
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 17 ans 1 mois #3868
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Découvrir le domaine automatiquement
Petite précision: si on utilise \"GC://\" il faut alors interroger un domaine parent. Si le compte n'est pas dans le domaine de l'utilisateur qui fait la requête, la requête ne retournera rien.
Pour info, je m'étais fait un script pour retrouver des utilisateurs dans l'organisation AD de ma boîte:
[code:1]
# Returns AD properties for user.
#
# Use: get-ADUser -username <string> [-domain <string>]
param ($username, $domain)
$ldapPath = ([ADSI]\"\"«»).Parent -replace \"LDAP://\",\"$1\"
if ($domain)
{
$ldapPath = \"DC=$domain,$ldapPath\"
}
$ldapPath = \"GC://$ldapPath\"
$adEntry = new-object system.directoryservices.directoryEntry($ldapPath)
$adSearcher = new-object system.directoryservices.directorySearcher($adEntry)
$adSearcher.Filter=\"(&(|(objectClass=group)(objectClass=user))(samaccountname=$userName))\"
$adRecordset = $adSearcher.FindAll()
foreach ($item in $adRecordset)
{
$item
}
[/code:1]
La logique de ce script repose sur une organisation où l'ensemble des utilisateurs sont dans des domaines tous enfants d'un même domaine racine.
Ce domaine racine est récupéré par [ADSI]\"\".Parent, et c'est un GC de ce domaine racine que j'interroge pour m'assurer que je peux retrouver des utilisateurs de tous les domaines enfants.
Si on connait le domaine de recherche, on peut le passer en paramètre, ça optimisera les temps de requête.
Le petit inconvénient d'interroger un GC (en dehors des problèmes éventuels de performance) c'est que les objets dans un GC n'ont qu'un sous-ensemble des propriétés affectées aux mêmes objets dans leur domaine d'origine. Mais en général les propriétés publiées dans le GC me suffisent amplement.
Janel
Pour info, je m'étais fait un script pour retrouver des utilisateurs dans l'organisation AD de ma boîte:
[code:1]
# Returns AD properties for user.
#
# Use: get-ADUser -username <string> [-domain <string>]
param ($username, $domain)
$ldapPath = ([ADSI]\"\"«»).Parent -replace \"LDAP://\",\"$1\"
if ($domain)
{
$ldapPath = \"DC=$domain,$ldapPath\"
}
$ldapPath = \"GC://$ldapPath\"
$adEntry = new-object system.directoryservices.directoryEntry($ldapPath)
$adSearcher = new-object system.directoryservices.directorySearcher($adEntry)
$adSearcher.Filter=\"(&(|(objectClass=group)(objectClass=user))(samaccountname=$userName))\"
$adRecordset = $adSearcher.FindAll()
foreach ($item in $adRecordset)
{
$item
}
[/code:1]
La logique de ce script repose sur une organisation où l'ensemble des utilisateurs sont dans des domaines tous enfants d'un même domaine racine.
Ce domaine racine est récupéré par [ADSI]\"\".Parent, et c'est un GC de ce domaine racine que j'interroge pour m'assurer que je peux retrouver des utilisateurs de tous les domaines enfants.
Si on connait le domaine de recherche, on peut le passer en paramètre, ça optimisera les temps de requête.
Le petit inconvénient d'interroger un GC (en dehors des problèmes éventuels de performance) c'est que les objets dans un GC n'ont qu'un sous-ensemble des propriétés affectées aux mêmes objets dans leur domaine d'origine. Mais en général les propriétés publiées dans le GC me suffisent amplement.
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Pazefur
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 32
- Remerciements reçus 0
il y a 17 ans 1 mois #3870
par Pazefur
Réponse de Pazefur sur le sujet Re:Découvrir le domaine automatiquement
Par curiosité, qu'est qu'un GC?
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 17 ans 1 mois #3871
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Découvrir le domaine automatiquement
GC = Global Catalog.
Dans les grandes lignes, on peut ajouter à un contrôleur de domaine le rôle de GC pour que ce serveur ait une copie de l'ensemble des objets présents dans l'annuaire de la forêt et permettre de répondre à des requêtes sur ces objets sans aller interroger les contrôleurs des autres domaines.
Mais pour limiter le volume des informations répliquées entre les différents GC d'une forêt, pour chaque objet c'est seulement une partie de ses propriétés (ou attributs) qui sont transmises. Si une requête est faite sur une propriété qui n'est pas stockée dans le Global Catalog, la requête sera transmise à un contrôleur du domaine concerné.
Si je me souviens bien, la liste des propriétés répliquées par les GC est configurable, de telle sorte qu'on peut optimiser le trafic réseau de l'entreprise en fonction de la nature des requêtes les plus courantes (et/ou les plus consommatrices).
Voilà, vraiment en très gros.
Janel<br><br>Message édité par: janel, à: 30/01/09 21:55
Dans les grandes lignes, on peut ajouter à un contrôleur de domaine le rôle de GC pour que ce serveur ait une copie de l'ensemble des objets présents dans l'annuaire de la forêt et permettre de répondre à des requêtes sur ces objets sans aller interroger les contrôleurs des autres domaines.
Mais pour limiter le volume des informations répliquées entre les différents GC d'une forêt, pour chaque objet c'est seulement une partie de ses propriétés (ou attributs) qui sont transmises. Si une requête est faite sur une propriété qui n'est pas stockée dans le Global Catalog, la requête sera transmise à un contrôleur du domaine concerné.
Si je me souviens bien, la liste des propriétés répliquées par les GC est configurable, de telle sorte qu'on peut optimiser le trafic réseau de l'entreprise en fonction de la nature des requêtes les plus courantes (et/ou les plus consommatrices).
Voilà, vraiment en très gros.
Janel<br><br>Message édité par: janel, à: 30/01/09 21:55
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.084 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Découvrir le domaine automatiquement