Question
Requete AD avec détails du manager
- MILS
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 9 ans 10 mois #21774
par MILS
Requete AD avec détails du manager a été créé par MILS
Bonjour à tous,
Je réalise un script qui récupère mes utilisateurs AD avec différents attributs dont le manager. La sortie se fait en CSV ligne par ligne par utilisateur.
Je souhaiterai, lorsque cet attribut est renseigné, que le nom, le prénom, le téléphone et le mail du manager s'affiche à la suite de la ligne de l'utilisateur SANS refaire une requête dans l'AD puisque j'ai déjà toutes informations nécessaire dans le résultat de ma requête.
Pour ce fait, je me suis basé sur un exemple de script de chez Microsoft :
[code:1]
$ADRequest = Get-ADUser -SearchBase DC=DOMAIN,DC=COM `
-LDAPFilter * -Properties *
$ADRequest |
Select-Object @{Label = \"Matricule\";Expression = {$_.cn}},
@{Label = \"Nom\";Expression = {$_.sn}},
@{Label = \"Prénom\";Expression = {$_.givenName}},
@{Label = \"Téléphone fixe\";Expression = {$_.telephoneNumber}},
@{Label = \"E-mail\";Expression = {$_.mail}},
@{Label = \"Manager\";Expression = {%{(Get-AdUser $_.manager -Properties DisplayName).DisplayName}}}
@{Label = \"M_Nom\";Expression = {Select-Object @(Expression=($_.sn -Split ',')[0].substring(3))}},
@{Label = \"M_Prenom\";Expression = {$_.givenName}},
@{Label = \"M_Tel\";Expression = {$_.telephoneNumber}},
@{Label = \"M_mail\";Expression = {$_.mail}}
| Export-Csv -Path $csvfile -NoTypeInformation
[/code:1]
La partie du manager est celle que j’essaie d'améliorer.
J'ai essayé différentes méthodes mais je ne suis pas assez aguerri en powershell pour trouver la réponse moi-même :/
Merci par avance pour votre aide.<br><br>Message édité par: Arnaud, à: 27/04/16 15:17
Je réalise un script qui récupère mes utilisateurs AD avec différents attributs dont le manager. La sortie se fait en CSV ligne par ligne par utilisateur.
Je souhaiterai, lorsque cet attribut est renseigné, que le nom, le prénom, le téléphone et le mail du manager s'affiche à la suite de la ligne de l'utilisateur SANS refaire une requête dans l'AD puisque j'ai déjà toutes informations nécessaire dans le résultat de ma requête.
Pour ce fait, je me suis basé sur un exemple de script de chez Microsoft :
[code:1]
$ADRequest = Get-ADUser -SearchBase DC=DOMAIN,DC=COM `
-LDAPFilter * -Properties *
$ADRequest |
Select-Object @{Label = \"Matricule\";Expression = {$_.cn}},
@{Label = \"Nom\";Expression = {$_.sn}},
@{Label = \"Prénom\";Expression = {$_.givenName}},
@{Label = \"Téléphone fixe\";Expression = {$_.telephoneNumber}},
@{Label = \"E-mail\";Expression = {$_.mail}},
@{Label = \"Manager\";Expression = {%{(Get-AdUser $_.manager -Properties DisplayName).DisplayName}}}
@{Label = \"M_Nom\";Expression = {Select-Object @(Expression=($_.sn -Split ',')[0].substring(3))}},
@{Label = \"M_Prenom\";Expression = {$_.givenName}},
@{Label = \"M_Tel\";Expression = {$_.telephoneNumber}},
@{Label = \"M_mail\";Expression = {$_.mail}}
| Export-Csv -Path $csvfile -NoTypeInformation
[/code:1]
La partie du manager est celle que j’essaie d'améliorer.
J'ai essayé différentes méthodes mais je ne suis pas assez aguerri en powershell pour trouver la réponse moi-même :/
Merci par avance pour votre aide.<br><br>Message édité par: Arnaud, à: 27/04/16 15:17
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 10 mois #21780
par Philippe
Réponse de Philippe sur le sujet Re:Requete AD avec détails du manager
salut dmils
[code:1]
$ADRequest = Get-ADUser -SearchBase \"DC=DOMAIN,DC=COM\" -LDAPFilter * -Properties DisplayName
$ADRequest | foreach {
if ($_.manager) {
$manager = Get-AdUser $_.manager -Properties DisplayName, givenName, sn, mail, telephoneNumber, cn, manager
$_ | Select-Object @{Label = \"Matricule\";Expression = {$_.cn}},
@{Label = \"Nom\";Expression = {$_.sn}},
@{Label = \"Prénom\";Expression = {$_.givenName}},
@{Label = \"Téléphone fixe\";Expression = {$_.telephoneNumber}},
@{Label = \"E-mail\";Expression = {$_.mail}},
@{Label = \"Manager\";Expression = {$manager.DisplayName}},
@{Label = \"M_Nom\";Expression ={$manager.sn}},
@{Label = \"M_Prenom\";Expression = {$manager.givenName}},
@{Label = \"M_Tel\";Expression = {$manager.telephoneNumber}},
@{Label = \"M_mail\";Expression = {$manager.mail}}
}
else {
# crée un objet pour ne pas avoir d'erreur quand il n'y a pas de manager
$_ | Select-Object @{Label = \"Matricule\";Expression = {$_.cn}},
@{Label = \"Nom\";Expression = {$_.sn}},
@{Label = \"Prénom\";Expression = {$_.givenName}},
@{Label = \"Téléphone fixe\";Expression = {$_.telephoneNumber}},
@{Label = \"E-mail\";Expression = {$_.mail}},
@{Label = \"Manager\";Expression = {\"\"}},
@{Label = \"M_Nom\";Expression ={\"\"}},
@{Label = \"M_Prenom\";Expression = {\"\"}},
@{Label = \"M_Tel\";Expression = {\"\"}},
@{Label = \"M_mail\";Expression = {\"\"}}
}
} | Export-Csv -Path $csvfile -NoTypeInformation[/code:1]
[code:1]
$ADRequest = Get-ADUser -SearchBase \"DC=DOMAIN,DC=COM\" -LDAPFilter * -Properties DisplayName
$ADRequest | foreach {
$dsnmanager = $_.manager
$manager = $ADRequest | where {$_.DistinguishedName -eq $dsnmanager}
if ($manager) {
$_ | Select-Object @{Label = \"Matricule\";Expression = {$_.cn}},
@{Label = \"Nom\";Expression = {$_.sn}},
@{Label = \"Prénom\";Expression = {$_.givenName}},
@{Label = \"Téléphone fixe\";Expression = {$_.telephoneNumber}},
@{Label = \"E-mail\";Expression = {$_.mail}},
@{Label = \"Manager\";Expression = {$manager.DisplayName}},
@{Label = \"M_Nom\";Expression ={$manager.sn}},
@{Label = \"M_Prenom\";Expression = {$manager.givenName}},
@{Label = \"M_Tel\";Expression = {$manager.telephoneNumber}},
@{Label = \"M_mail\";Expression = {$manager.mail}}
}
else {
# crée un objet pour ne pas avoir d'erreur quand il n'y a pas de manager
$_ | Select-Object @{Label = \"Matricule\";Expression = {$_.cn}},
@{Label = \"Nom\";Expression = {$_.sn}},
@{Label = \"Prénom\";Expression = {$_.givenName}},
@{Label = \"Téléphone fixe\";Expression = {$_.telephoneNumber}},
@{Label = \"E-mail\";Expression = {$_.mail}},
@{Label = \"Manager\";Expression = {\"\"}},
@{Label = \"M_Nom\";Expression ={\"\"}},
@{Label = \"M_Prenom\";Expression = {\"\"}},
@{Label = \"M_Tel\";Expression = {\"\"}},
@{Label = \"M_mail\";Expression = {\"\"}}
}
} | Export-Csv -Path $csvfile -NoTypeInformation[/code:1]
si ta des questions sur le script n'hésite pas a revenir
tout est possibleJe souhaiterai, lorsque cet attribut est renseigné, que le nom, le prénom, le téléphone et le mail du manager s'affiche à la suite de la ligne de l'utilisateur
voici les modif :J'ai essayé différentes méthodes mais je ne suis pas assez aguerri en powershell pour trouver la réponse moi-même :/
[code:1]
$ADRequest = Get-ADUser -SearchBase \"DC=DOMAIN,DC=COM\" -LDAPFilter * -Properties DisplayName
$ADRequest | foreach {
if ($_.manager) {
$manager = Get-AdUser $_.manager -Properties DisplayName, givenName, sn, mail, telephoneNumber, cn, manager
$_ | Select-Object @{Label = \"Matricule\";Expression = {$_.cn}},
@{Label = \"Nom\";Expression = {$_.sn}},
@{Label = \"Prénom\";Expression = {$_.givenName}},
@{Label = \"Téléphone fixe\";Expression = {$_.telephoneNumber}},
@{Label = \"E-mail\";Expression = {$_.mail}},
@{Label = \"Manager\";Expression = {$manager.DisplayName}},
@{Label = \"M_Nom\";Expression ={$manager.sn}},
@{Label = \"M_Prenom\";Expression = {$manager.givenName}},
@{Label = \"M_Tel\";Expression = {$manager.telephoneNumber}},
@{Label = \"M_mail\";Expression = {$manager.mail}}
}
else {
# crée un objet pour ne pas avoir d'erreur quand il n'y a pas de manager
$_ | Select-Object @{Label = \"Matricule\";Expression = {$_.cn}},
@{Label = \"Nom\";Expression = {$_.sn}},
@{Label = \"Prénom\";Expression = {$_.givenName}},
@{Label = \"Téléphone fixe\";Expression = {$_.telephoneNumber}},
@{Label = \"E-mail\";Expression = {$_.mail}},
@{Label = \"Manager\";Expression = {\"\"}},
@{Label = \"M_Nom\";Expression ={\"\"}},
@{Label = \"M_Prenom\";Expression = {\"\"}},
@{Label = \"M_Tel\";Expression = {\"\"}},
@{Label = \"M_mail\";Expression = {\"\"}}
}
} | Export-Csv -Path $csvfile -NoTypeInformation[/code:1]
La y a plus de travail !!!SANS refaire une requête dans l'AD puisque j'ai déjà toutes informations nécessaire dans le résultat de ma requête.
[code:1]
$ADRequest = Get-ADUser -SearchBase \"DC=DOMAIN,DC=COM\" -LDAPFilter * -Properties DisplayName
$ADRequest | foreach {
$dsnmanager = $_.manager
$manager = $ADRequest | where {$_.DistinguishedName -eq $dsnmanager}
if ($manager) {
$_ | Select-Object @{Label = \"Matricule\";Expression = {$_.cn}},
@{Label = \"Nom\";Expression = {$_.sn}},
@{Label = \"Prénom\";Expression = {$_.givenName}},
@{Label = \"Téléphone fixe\";Expression = {$_.telephoneNumber}},
@{Label = \"E-mail\";Expression = {$_.mail}},
@{Label = \"Manager\";Expression = {$manager.DisplayName}},
@{Label = \"M_Nom\";Expression ={$manager.sn}},
@{Label = \"M_Prenom\";Expression = {$manager.givenName}},
@{Label = \"M_Tel\";Expression = {$manager.telephoneNumber}},
@{Label = \"M_mail\";Expression = {$manager.mail}}
}
else {
# crée un objet pour ne pas avoir d'erreur quand il n'y a pas de manager
$_ | Select-Object @{Label = \"Matricule\";Expression = {$_.cn}},
@{Label = \"Nom\";Expression = {$_.sn}},
@{Label = \"Prénom\";Expression = {$_.givenName}},
@{Label = \"Téléphone fixe\";Expression = {$_.telephoneNumber}},
@{Label = \"E-mail\";Expression = {$_.mail}},
@{Label = \"Manager\";Expression = {\"\"}},
@{Label = \"M_Nom\";Expression ={\"\"}},
@{Label = \"M_Prenom\";Expression = {\"\"}},
@{Label = \"M_Tel\";Expression = {\"\"}},
@{Label = \"M_mail\";Expression = {\"\"}}
}
} | Export-Csv -Path $csvfile -NoTypeInformation[/code:1]
si ta des questions sur le script n'hésite pas a revenir
Connexion ou Créer un compte pour participer à la conversation.
- MILS
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 9 ans 10 mois #21787
par MILS
Réponse de MILS sur le sujet Re:Requete AD avec détails du manager
Bonjour,
Ça marche nickel ! Je m'échinais à essayer de faire les deux parties dans un seul traitement mais c'est effectivement plus simple et plus efficace séparé. Comme le dirais un linuxien \"Keep It Simple Stupid\".
J'ai mis un peu de temps à comprendre la logique mais je pense y être arrivé. Je vais essayer d'ajouter la même chose pour la secrétaire et optimiser le tout.
Merci pour ta réponse rapide et fonctionnelle !
Ça marche nickel ! Je m'échinais à essayer de faire les deux parties dans un seul traitement mais c'est effectivement plus simple et plus efficace séparé. Comme le dirais un linuxien \"Keep It Simple Stupid\".
J'ai mis un peu de temps à comprendre la logique mais je pense y être arrivé. Je vais essayer d'ajouter la même chose pour la secrétaire et optimiser le tout.
Merci pour ta réponse rapide et fonctionnelle !
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.041 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Requete AD avec détails du manager