Question
[Résolu] Récupérer nom users depuis CSV
- maxime
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 9 ans 10 mois #21741
par maxime
[Résolu] Récupérer nom users depuis CSV a été créé par maxime
Hello tout le monde,
Je débute avec Powershell et mon responsable m'a demandé d'extraire de l'AD les noms des utilisateurs dans l'AD le champs \"Name\" depuis un csv contenant les noms de session.
J'ai essayé pas mal de choses comme
[code:1]Import-Module ActiveDirectory
Import-csv \"C:\Users\Administrateur\Desktop\classeur1.csv\" %{
Get-ADUser -filter * | Select-Object name
} | Export-Csv \"c:\Users\Administrateur\Desktop\results.csv\" -Delimiter \";\" -Encoding UTF8[/code:1]
Ou plus simple :
[code:1]Import-Module ActiveDirectory
Import-csv \"C:\Users\Administrateur\Desktop\classeur1.csv\" | Get-ADUser -filter * | Select-Object name | Export-Csv \"c:\Users\Administrateur\Desktop\results.csv\" -Delimiter \";\" -Encoding UTF8[/code:1]
Mais j'ai toujours des erreurs sur la commande Get-ADUser, en réalité, je ne sais pas comment faire en sorte qu'il utilise les noms de session pour les associer aux noms correspondants.
Auriez-vous une indication ?
Merci d'avance !
<br><br>Message édité par: Arnaud, à: 27/04/16 15:14
Je débute avec Powershell et mon responsable m'a demandé d'extraire de l'AD les noms des utilisateurs dans l'AD le champs \"Name\" depuis un csv contenant les noms de session.
J'ai essayé pas mal de choses comme
[code:1]Import-Module ActiveDirectory
Import-csv \"C:\Users\Administrateur\Desktop\classeur1.csv\" %{
Get-ADUser -filter * | Select-Object name
} | Export-Csv \"c:\Users\Administrateur\Desktop\results.csv\" -Delimiter \";\" -Encoding UTF8[/code:1]
Ou plus simple :
[code:1]Import-Module ActiveDirectory
Import-csv \"C:\Users\Administrateur\Desktop\classeur1.csv\" | Get-ADUser -filter * | Select-Object name | Export-Csv \"c:\Users\Administrateur\Desktop\results.csv\" -Delimiter \";\" -Encoding UTF8[/code:1]
Mais j'ai toujours des erreurs sur la commande Get-ADUser, en réalité, je ne sais pas comment faire en sorte qu'il utilise les noms de session pour les associer aux noms correspondants.
Auriez-vous une indication ?
Merci d'avance !
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 #21751
par Philippe
Réponse de Philippe sur le sujet Re:récupérer nom users depuis csv
salut maskime_31
alors je prend quelques minutes pour te résumé ton pb et une solution
ce qui risque de rendre ma réponse pas très clair
prévient moi si tu comprend pas !
je part sur le principe que quand tu dis que le fichier classeurs.csv contient le nom des session tu nous parle du login utilisateur (l'attribut sAMAccountName dans l'AD)
et donc tu veux le nom de famille correspondant (l'attribut sn dans l'AD)
--> il me manque une info sur le contenue de ton fichier csv ou de la façon donc tu la créé pour pouvoir faire un script plus juste
ton script est bon !! sauf pour get-aduser, il te faut rajouté un filtre !!
[code:1]Import-Module ActiveDirectory
Import-csv \"C:\Users\Administrateur\Desktop\classeur1.csv\" -Header nomsession | foreach {
Get-ADUser -Filter {(sAMAccountName -like $($_.nomsession))} } | Select-Object sn
[/code:1]
comme je connais pas le contenue du csv j'ai considéré qu'il ne contenez qu'une colonne donc je force le nom en \"nomsession\"
j'ai rajout un filtre sur le sAMAccountName avec ce nom
tu doit donc avoir un tableau avec une liste de nom qui s'affiche a l'ecran
il te reste a rajouter l'export-csv apres le select<br><br>Message édité par: 6ratgus, à: 26/04/16 15:32
alors je prend quelques minutes pour te résumé ton pb et une solution
ce qui risque de rendre ma réponse pas très clair
prévient moi si tu comprend pas !
je part sur le principe que quand tu dis que le fichier classeurs.csv contient le nom des session tu nous parle du login utilisateur (l'attribut sAMAccountName dans l'AD)
et donc tu veux le nom de famille correspondant (l'attribut sn dans l'AD)
--> il me manque une info sur le contenue de ton fichier csv ou de la façon donc tu la créé pour pouvoir faire un script plus juste
ton script est bon !! sauf pour get-aduser, il te faut rajouté un filtre !!
[code:1]Import-Module ActiveDirectory
Import-csv \"C:\Users\Administrateur\Desktop\classeur1.csv\" -Header nomsession | foreach {
Get-ADUser -Filter {(sAMAccountName -like $($_.nomsession))} } | Select-Object sn
[/code:1]
comme je connais pas le contenue du csv j'ai considéré qu'il ne contenez qu'une colonne donc je force le nom en \"nomsession\"
j'ai rajout un filtre sur le sAMAccountName avec ce nom
tu doit donc avoir un tableau avec une liste de nom qui s'affiche a l'ecran
il te reste a rajouter l'export-csv apres le select<br><br>Message édité par: 6ratgus, à: 26/04/16 15:32
Connexion ou Créer un compte pour participer à la conversation.
- maxime
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 9 ans 10 mois #21752
par maxime
Réponse de maxime sur le sujet Re:récupérer nom users depuis csv
Hello 6ratgus,
Merci pour ta réponse !
Oui c'est ça, le fichier classeur1.csv ne contient qu'une colonne de nom de session (SamAccountName dans l'AD) et moi j'aimerai arriver à avoir les prénoms et noms (name dans l'AD)des session de classeur1
Par Exemple :
Dans classeur1.csv on a juste
session1
session2
session3
et dans results.csv on arrive à :
session1 Maskime_31
session2 Paul dupond
session3 Pierre dupont
J'ai essayé ton script j'arrive à le comprendre mais Powershell me renvoit toujours une erreur de path :
[code:1]Get-ADUser : Impossible de traiter l’argument car la valeur de l’argument «path» n’est pas valide. Modifiez la valeur de l’argument «path» et
réexécutez l’opération.
Au caractère Ligne:5 : 1
+ Get-ADUser -Filter {(sAMAccountName -like $($_.nomsession))} } | Select-Object ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:«») [Get-ADUser], PSArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:«»System.Management.Automation.PSArgumentException,Microsoft.ActiveDirectory.Management.Commands.Get
ADUser[/code:1]
et le code utilisé :
[code:1]Import-Module ActiveDirectory
Import-csv classeur1.csv -Header nomsession | foreach {
Get-ADUser -Filter {(sAMAccountName -like $($_.nomsession))} } | Select-Object sn[/code:1]
Merci pour ta réponse !
Oui c'est ça, le fichier classeur1.csv ne contient qu'une colonne de nom de session (SamAccountName dans l'AD) et moi j'aimerai arriver à avoir les prénoms et noms (name dans l'AD)des session de classeur1
Par Exemple :
Dans classeur1.csv on a juste
session1
session2
session3
et dans results.csv on arrive à :
session1 Maskime_31
session2 Paul dupond
session3 Pierre dupont
J'ai essayé ton script j'arrive à le comprendre mais Powershell me renvoit toujours une erreur de path :
[code:1]Get-ADUser : Impossible de traiter l’argument car la valeur de l’argument «path» n’est pas valide. Modifiez la valeur de l’argument «path» et
réexécutez l’opération.
Au caractère Ligne:5 : 1
+ Get-ADUser -Filter {(sAMAccountName -like $($_.nomsession))} } | Select-Object ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:«») [Get-ADUser], PSArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:«»System.Management.Automation.PSArgumentException,Microsoft.ActiveDirectory.Management.Commands.Get
ADUser[/code:1]
et le code utilisé :
[code:1]Import-Module ActiveDirectory
Import-csv classeur1.csv -Header nomsession | foreach {
Get-ADUser -Filter {(sAMAccountName -like $($_.nomsession))} } | Select-Object sn[/code:1]
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 #21759
par Philippe
Réponse de Philippe sur le sujet Re:récupérer nom users depuis csv
oui j'oublie parfois ce petit bug pour les filtres !!! 
réessaie comme ça :
[code:1]Import-Module ActiveDirectory
Import-csv classeur1.csv -Header nomsession | foreach {
$login = $_.nomsession
Get-ADUser -Filter {sAMAccountName -eq $login}
} | Select-Object cn
[/code:1]
pour le résultat c'est nom + prénom donc l'attribue cn
Message édité par: 6ratgus, à: 26/04/16 18:22<br><br>Message édité par: 6ratgus, à: 26/04/16 18:23
réessaie comme ça :
[code:1]Import-Module ActiveDirectory
Import-csv classeur1.csv -Header nomsession | foreach {
$login = $_.nomsession
Get-ADUser -Filter {sAMAccountName -eq $login}
} | Select-Object cn
[/code:1]
pour le résultat c'est nom + prénom donc l'attribue cn
Message édité par: 6ratgus, à: 26/04/16 18:22<br><br>Message édité par: 6ratgus, à: 26/04/16 18:23
Connexion ou Créer un compte pour participer à la conversation.
- maxime
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 9 ans 10 mois #21760
par maxime
Réponse de maxime sur le sujet Re:récupérer nom users depuis csv
C'est parfait ! 
Merci beaucoup pour ton aide !
Merci beaucoup pour ton aide !
Connexion ou Créer un compte pour participer à la conversation.
- maxime
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 9 ans 10 mois #21761
par maxime
Réponse de maxime sur le sujet Re:récupérer nom users depuis csv
Je me permet d'abuser, apparemment j'ai des sessions qui doivent être supprimées parce que j'ai pas le même nombre de ligne entre mes deux fichiers. Y'a-t-il une option (dans la même idée qu'un test-path)qui permet soit
de laisser vide la session supprimée ou d'afficher un truc du genre :
Session1 Paul
Session2 Supprimée
Session3 Pierre
ou
Session1 Paul
Session2
Session3 Pierre
J'ai modifié le script comme cela pour avoir les SAMAccountName en face des noms et prénoms des users
[code:1]mport-Module ActiveDirectory
Import-csv \"c:\Users\Administrateur\Desktop\sessionbad.csv\" -Header nomsession | foreach {
$login = $_.nomsession
Get-ADUser -Filter {sAMAccountName -eq $login}
} | Select-Object name,SAMAccountName | Export-Csv \"c:\Users\Administrateur\Desktop\Results-bad.csv\" -Delimiter \";\" -Encoding UTF8[/code:1]
Mais il ne me remonte pas les sessions qu'il ne trouve pas...
Merci encore pour ton aide !
<br><br>Message édité par: maskime_31, à: 27/04/16 09:16
de laisser vide la session supprimée ou d'afficher un truc du genre :
Session1 Paul
Session2 Supprimée
Session3 Pierre
ou
Session1 Paul
Session2
Session3 Pierre
J'ai modifié le script comme cela pour avoir les SAMAccountName en face des noms et prénoms des users
[code:1]mport-Module ActiveDirectory
Import-csv \"c:\Users\Administrateur\Desktop\sessionbad.csv\" -Header nomsession | foreach {
$login = $_.nomsession
Get-ADUser -Filter {sAMAccountName -eq $login}
} | Select-Object name,SAMAccountName | Export-Csv \"c:\Users\Administrateur\Desktop\Results-bad.csv\" -Delimiter \";\" -Encoding UTF8[/code:1]
Mais il ne me remonte pas les sessions qu'il ne trouve pas...
Merci encore pour ton aide !
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.047 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Récupérer nom users depuis CSV