Question
[RESOLU] Récupérer Name, SamAccountName, MemberOf
- Calvino
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 10 ans 2 mois #21323
par Calvino
[RESOLU] Récupérer Name, SamAccountName, MemberOf a été créé par Calvino
Bonjour à tous,
Me voilà de retour pour un autre script ayant pour but de lister:
-soit la liste de tous les groupes avec les utilisateurs qui sont membres
-soit la liste de tous les utilisateurs avec les groupes dont ils sont membres
J'ai commencer la solution numéro 2 avec la commande
[code:1]Get-ADUser -SearchBase \"OU=HPPS,DC=HPPS,DC=FR\" -Filter * -Properties Name,SamAccountName,MemberOf | select Name,SamAccountName,MemberOf | Export-Csv \"C:\test.csv\"[/code:1]
Le problème c'est que dans mon .csv j'obtient
[code:1]\"Name\",\"SamAccountName\",\"MemberOf\"
\"f.bana\",\"fbana.psv\",\"Microsoft.ActiveDirectory.Management.ADPropertyValueCollection\"
\"b.dupont\",\"b.dupont.psv\",\"Microsoft.ActiveDirectory.Management.ADPropertyValueCollection\"
\"m.jaco\",\"m.jaco\",\"Microsoft.ActiveDirectory.Management.ADPropertyValueCollection\"[/code:1]
Je pense connaitre le problème mais pas la solution !
MemberOf retourne des valeur multiples et un fichier CSV ne le gère pas.
Je dois fait ce script pour l'entreprise dans laquelle je suis en stage (comme mon précédent post) et je viens d'apprendre que je dois le rendre dans 2 jours
J'espère avoir bien expliquer mon problème
Merci par avance de vos réponses<br><br>Message édité par: NounoursAlpha, à: 27/01/16 12:00
Me voilà de retour pour un autre script ayant pour but de lister:
-soit la liste de tous les groupes avec les utilisateurs qui sont membres
-soit la liste de tous les utilisateurs avec les groupes dont ils sont membres
J'ai commencer la solution numéro 2 avec la commande
[code:1]Get-ADUser -SearchBase \"OU=HPPS,DC=HPPS,DC=FR\" -Filter * -Properties Name,SamAccountName,MemberOf | select Name,SamAccountName,MemberOf | Export-Csv \"C:\test.csv\"[/code:1]
Le problème c'est que dans mon .csv j'obtient
[code:1]\"Name\",\"SamAccountName\",\"MemberOf\"
\"f.bana\",\"fbana.psv\",\"Microsoft.ActiveDirectory.Management.ADPropertyValueCollection\"
\"b.dupont\",\"b.dupont.psv\",\"Microsoft.ActiveDirectory.Management.ADPropertyValueCollection\"
\"m.jaco\",\"m.jaco\",\"Microsoft.ActiveDirectory.Management.ADPropertyValueCollection\"[/code:1]
Je pense connaitre le problème mais pas la solution !
MemberOf retourne des valeur multiples et un fichier CSV ne le gère pas.
Je dois fait ce script pour l'entreprise dans laquelle je suis en stage (comme mon précédent post) et je viens d'apprendre que je dois le rendre dans 2 jours
J'espère avoir bien expliquer mon problème
Merci par avance de vos réponses<br><br>Message édité par: NounoursAlpha, à: 27/01/16 12:00
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 10 ans 2 mois #21328
par Philippe
Réponse de Philippe sur le sujet Re:Récupérer Name, SamAccountName, MemberOf
salut NounoursAlpha
cadeau :
[code:1]
# \"*\" = tous les utilisateurs de l'OU ou de l'AD
# \"test*\" = tous les utilisateurs qui commence par test
# \"test\" = que l'utilisateur test
$utilisateur = \"*\"
$ou = \"OU=HPPS,DC=HPPS,DC=FR\"
$resultat = Get-ADuser -Filter {name -like $utilisateur} -Searchbase $ou -properties enabled, MemberOf | where {$_.enabled -eq $true} | foreach {
$user = $_.name
$SamAccountName = $_.SamAccountName
$_.MemberOf | select @{n=\"Name\";e={$($user)}}, @{n=\"SamAccountName\";e={$($SamAccountName)}}, @{n=\"groupe\";e={($_ -split \"CN=([\w- \(\)\!\'\.]+)[, ]+OU=\"«»)[1]}}
}
$resultat | ft -a
[/code:1]
j'avais déjà fais la même chose pour ma boite
il y a en plus :
- un filtre pour avoir que les utilisateurs actifs
- un split sur le memberof qui est au format \"DistinguishedName\" dans l'AD
ATTENTION : ça ne liste pas les utilisateurs sans groupes
pour l'autre liste regarde \"Get-ADGroupMember\" avec l'option \"-Recursive\"
après tout dépend de la liste que tu cherche :
- avec les sous groupes
- sans les sous groupes
exact !MemberOf retourne des valeur multiples et un fichier CSV ne le gère pas.
cadeau :
[code:1]
# \"*\" = tous les utilisateurs de l'OU ou de l'AD
# \"test*\" = tous les utilisateurs qui commence par test
# \"test\" = que l'utilisateur test
$utilisateur = \"*\"
$ou = \"OU=HPPS,DC=HPPS,DC=FR\"
$resultat = Get-ADuser -Filter {name -like $utilisateur} -Searchbase $ou -properties enabled, MemberOf | where {$_.enabled -eq $true} | foreach {
$user = $_.name
$SamAccountName = $_.SamAccountName
$_.MemberOf | select @{n=\"Name\";e={$($user)}}, @{n=\"SamAccountName\";e={$($SamAccountName)}}, @{n=\"groupe\";e={($_ -split \"CN=([\w- \(\)\!\'\.]+)[, ]+OU=\"«»)[1]}}
}
$resultat | ft -a
[/code:1]
j'avais déjà fais la même chose pour ma boite
il y a en plus :
- un filtre pour avoir que les utilisateurs actifs
- un split sur le memberof qui est au format \"DistinguishedName\" dans l'AD
ATTENTION : ça ne liste pas les utilisateurs sans groupes
pour l'autre liste regarde \"Get-ADGroupMember\" avec l'option \"-Recursive\"
après tout dépend de la liste que tu cherche :
- avec les sous groupes
- sans les sous groupes
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 10 ans 2 mois #21329
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Récupérer Name, SamAccountName, MemberOf
Salut,
NounoursAlpha écrit:
[code:1]
$o=get-process Powershell
$o|select name,Modules|export-csv c:\temp\t.csv
type c:\temp\t.csv
# #TYPE Selected.System.Diagnostics.Process
# \"Name\",\"Modules\"
# \"powershell\",\"System.Diagnostics.ProcessModuleCollection\"
$OldOFS,$OFS=$Ofs,','
$ofs=',';$o|select name,@{n='Modules';e={\"$($_.Modules.ModuleName)\"}}|export-csv c:\temp\t.csv
type c:\temp\t.csv
# #TYPE Selected.System.Diagnostics.Process
# \"Name\",\"Modules\"
# \"powershell\",\"powershell.exe,ntdll.dll,kernel32.dll,KERNELBASE.dll,ADVAPI32.dll,...
$OFS=$OldOFS
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 20/01/16 13:25
NounoursAlpha écrit:
Le CSV les gére, il faut utiliser une chaine ou construire une propriété calculée, consulte l'aide en ligne du cmdlet Select-Object :MemberOf retourne des valeur multiples et un fichier CSV ne le gère pas.
[code:1]
$o=get-process Powershell
$o|select name,Modules|export-csv c:\temp\t.csv
type c:\temp\t.csv
# #TYPE Selected.System.Diagnostics.Process
# \"Name\",\"Modules\"
# \"powershell\",\"System.Diagnostics.ProcessModuleCollection\"
$OldOFS,$OFS=$Ofs,','
$ofs=',';$o|select name,@{n='Modules';e={\"$($_.Modules.ModuleName)\"}}|export-csv c:\temp\t.csv
type c:\temp\t.csv
# #TYPE Selected.System.Diagnostics.Process
# \"Name\",\"Modules\"
# \"powershell\",\"powershell.exe,ntdll.dll,kernel32.dll,KERNELBASE.dll,ADVAPI32.dll,...
$OFS=$OldOFS
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 20/01/16 13:25
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Calvino
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 10 ans 2 mois #21343
par Calvino
Réponse de Calvino sur le sujet Re:Récupérer Name, SamAccountName, MemberOf
Merci pour vos réponses
6ratgus, c'est exactement ce que je voulais mais si je le fait ressortir dans un csv aucune valeur ne ressort correctement.
J'ai pas compris ce que fait [code:1]$resultat | ft -a[/code:1]
J'ai besoin de le faire sortir dans un CSV car le service informatique doit présenter ces données dans un fichier lisible sur excel et faire le tri si nécessaire.
6ratgus, c'est exactement ce que je voulais mais si je le fait ressortir dans un csv aucune valeur ne ressort correctement.
J'ai pas compris ce que fait [code:1]$resultat | ft -a[/code:1]
J'ai besoin de le faire sortir dans un CSV car le service informatique doit présenter ces données dans un fichier lisible sur excel et faire le tri si nécessaire.
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 10 ans 2 mois #21344
par Philippe
FT n'est pas France Telecom mais Format-Table
c'est un alias que tu peux retrouvé comme ça :
[code:1]get-alias ft
CommandType Name ModuleName
----
Alias ft -> Format-Table [/code:1]
DESCRIPTION
L'applet de commande Format-Table met en forme la sortie d'une commande sous forme de tableau présentant les propriétés sélectionnées de l'objet dans chaque colonne. Le type d'objet détermine la disposition par défaut et les propriétés qui sont affichées dans chaque colonne, mais vous pouvez utiliser le paramètre Property pour sélectionner les propriétés que vous souhaitez voir.
Réponse de Philippe sur le sujet Re:Récupérer Name, SamAccountName, MemberOf
peut tu me montrer comment tu fais ton export car pour moi j'ai pas de problème pour relire le fichier sous Excelc'est exactement ce que je voulais mais si je le fait ressortir dans un csv aucune valeur ne ressort correctement.
désolé j'évite les alias dans les forum d'habitude mais la j'ai oubliéJ'ai pas compris ce que fait
[code:1] $resultat | ft -a[/code:1]
FT n'est pas France Telecom mais Format-Table
c'est un alias que tu peux retrouvé comme ça :
[code:1]get-alias ft
CommandType Name ModuleName
----
Alias ft -> Format-Table [/code:1]
DESCRIPTION
L'applet de commande Format-Table met en forme la sortie d'une commande sous forme de tableau présentant les propriétés sélectionnées de l'objet dans chaque colonne. Le type d'objet détermine la disposition par défaut et les propriétés qui sont affichées dans chaque colonne, mais vous pouvez utiliser le paramètre Property pour sélectionner les propriétés que vous souhaitez voir.
Connexion ou Créer un compte pour participer à la conversation.
- Calvino
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 10 ans 2 mois #21345
par Calvino
Réponse de Calvino sur le sujet Re:Récupérer Name, SamAccountName, MemberOf
Je viens de me rendre compte que j'avait mis l'export au niveau de [code:1]$resultat | ft -a | Export-csv \"c:\test.csv\"[/code:1]
Sans export avec
[code:1]$_.MemberOf | select @{n=\"Name\";e={$($user)}}, @{n=\"SamAccountName\";e={$($SamAccountName)}}, @{n=\"groupe\";e={($_ -split \"CN=([\w- \(\)\!\'\.]+)[, ]+OU=\"«»)[1]}} [/code:1]
J'obtient:
[code:1]Name SamAccountName groupe
----
f.bana fbana.psv Informatique.psv
b.dupont b.dupont.psv Informatique.psv
m.jaco m.jaco Informatique.psv
m.jaco m.jaco Administration.psv
[/code:1]
Mais si je met un export
[code:1]$_.MemberOf | select @{n=\"Name\";e={$($user)}}, @{n=\"SamAccountName\";e={$($SamAccountName)}}, @{n=\"groupe\";e={($_ -split \"CN=([\w- \(\)\!\'\.]+)[, ]+OU=\"«»)[1]}} | export-csv \"c:\test.csv\" -notype -encoding utf8[/code:1]
Il me manque f.bana et b.dupont
[code:1]\"Name\",\"SamAccountName\",\"groupe\"
\"m.jaco\",\"m.jaco\",\"Informatique.psv\"
\"m.jaco\",\"m.jaco\",\"Administration.psv\"[/code:1]
Je suppose que j'ai mal placer l'export ? A cause de la boucle il efface les anciennes données ?
Sans export avec
[code:1]$_.MemberOf | select @{n=\"Name\";e={$($user)}}, @{n=\"SamAccountName\";e={$($SamAccountName)}}, @{n=\"groupe\";e={($_ -split \"CN=([\w- \(\)\!\'\.]+)[, ]+OU=\"«»)[1]}} [/code:1]
J'obtient:
[code:1]Name SamAccountName groupe
----
f.bana fbana.psv Informatique.psv
b.dupont b.dupont.psv Informatique.psv
m.jaco m.jaco Informatique.psv
m.jaco m.jaco Administration.psv
[/code:1]
Mais si je met un export
[code:1]$_.MemberOf | select @{n=\"Name\";e={$($user)}}, @{n=\"SamAccountName\";e={$($SamAccountName)}}, @{n=\"groupe\";e={($_ -split \"CN=([\w- \(\)\!\'\.]+)[, ]+OU=\"«»)[1]}} | export-csv \"c:\test.csv\" -notype -encoding utf8[/code:1]
Il me manque f.bana et b.dupont
[code:1]\"Name\",\"SamAccountName\",\"groupe\"
\"m.jaco\",\"m.jaco\",\"Informatique.psv\"
\"m.jaco\",\"m.jaco\",\"Administration.psv\"[/code:1]
Je suppose que j'ai mal placer l'export ? A cause de la boucle il efface les anciennes données ?
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.051 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [RESOLU] Récupérer Name, SamAccountName, MemberOf