Question Récupération info AD

Plus d'informations
il y a 12 ans 8 mois #15276 par cird
Récupération info AD a été créé par cird
Bonjour, bonjour les gentes ^^,

Me voici parmi vous aujourd'hui !! :P
Je vous sollicite votre aide sur un script que je souhaite réaliser mais que je bloque et des essais que j'ai tenté, j'ai eu des problèmes de types :unsure:

Alors, j'ai des dossiers qui sont en partages sur un serveur et j'ai mon AD sur un autre serveur.
Mes dossiers sont nommés avec comme nom le 'SamAccountName'. Ex : l'utilisateur John Doe aura pour SamAccountName, jdoe.
Ce que je souhaite faire, étant qu'aucune liaison est faite, c'est de récupérer l'ensembles de noms de mes dossiers, de comparer avec les noms de mon AD et que ça me retourne les 2 champs \"Name et SamAccountName\" correspondant dans un fichier .csv lorsque ceux-ci correspondent car pas tous les utilisateurs ont leur dossier sur le serveur à part.

Voili voilou, j'espère avoir été plus ou moins clair sinon hésitez pas à me le dire ^^

Merci beaucoup d'avance de votre aide :laugh:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 8 mois #15279 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Récupération info AD
Bonjour,

Tu as déjà travaillé sur le sujet => As tu un bout de script à poster ici ?

Sous quel environnement : Versions OS, AD, ...

As tu accès aux RSAT + module ActiveDirectory ? Sinon, Cmdlets Quest ?

Je peux t'aider, mais pas réaliser complétement ton script.

Il me manque des informations pour pouvoir initier une aide...

@ +

Matthew

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 8 mois #15280 par cird
Réponse de cird sur le sujet Re:Récupération info AD
Bonjour Matthew, merci de ta réponse =)
Je t'apporte les précision comme demandé :

Tu as déjà travaillé sur le sujet => As tu un bout de script à poster ici ?

Pour ce qui est du script, je l'ai amélioré comme j'ai pu, j'en suis arrivé à la :

[code:1]
$Users = Import-Csv -Path \"C:\Users\cmoultanin\Desktop\export_test3.csv\"
$Users1 = Import-Csv -Path \"C:\Users\cmoultanin\Desktop\ntwkprofil.csv\" -Delimiter \",\"

foreach ( $Users1 in $Users )
{
$name = $user.Name
$sam = $user.SamAccountName
$name = $user1.Name
#$type = $user.gettype()
\"| $name | $sam | $name1\"
}
[/code:1]

Résultat : il me retourne que \"| | |\"

Sous quel environnement : Versions OS, AD, ...
Mon poste est sous Seven et l'AD sous 2008R2, le powershell en 2.0 bien sûr.


As tu accès aux RSAT + module ActiveDirectory ? Sinon, Cmdlets Quest ?

Le RSAT est installé, les ActiveRoles ajoutés et les modules AD importés.

Je peux t'aider, mais pas réaliser complétement ton script.

Bine sur, il n'y a pas de souci pour ça, c'est juste un déblocage, une tite précision que j'ai besoin, je te remercie pour cela.


Il me manque des informations pour pouvoir initier une aide...

Voila, j'espère avoir été assez clair dans ma formulation =/

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 8 mois #15285 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Récupération info AD
Bonsoir,

L'instruction ' foreach ' (boucle qui signifie \"pour chaque\") permet de parcourir une collection (un tableau d'éléments) et d'effectuer un traitement sur chaque élément de cette collection.

Voir l'exemple donné dans le précédent lien :

[code:1]
$letterArray = \"a\",\"b\",\"c\",\"d\"
foreach ($letter in $letterArray)
{
Write-Host $letter
}
[/code:1]

Je ne comprends donc pas ce que tu cherches à faire via ton :

[code:1]
$Users = Import-Csv -Path \"C:\Users\cmoultanin\Desktop\export_test3.csv\"

$Users1 = Import-Csv -Path \"C:\Users\cmoultanin\Desktop_CRLF_twkprofil.csv\" -Delimiter \",\"



foreach ( $Users1 in $Users )
[/code:1]


Aussi, l'utilisation du délimiteur ',' via

[code:1]
-Delimiter \",\"
[/code:1]

ne sert à rien puisque la Cmdlet 'Import-Csv' utilise déjà ce délimiteur par défaut, quelque soit la langue d'installation de ton OS.

Quel est le contenu de tes fichiers csv ?

Tu souhaites récupérer et assembler les informations depuis des fichiers csv ou depuis l'AD + le système de fichiers correspondant aux ressources utilisateurs ? (voir ta demande initiale).

@ +

Matthew

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 8 mois #15286 par cird
Réponse de cird sur le sujet Re:Récupération info AD
C'est bien de foreach que j'ai besoin car dans mes 2 csv, c'est une liste d'éléments qu'il parcourt.

Plus en détails, d'un côté, le csv Export_test3, lui, est un fichier généré après une récupération de mes users dans l'AD, et j'ai fait un [code:1]select-object Name,SamAccountName'[/code:1], il me retourne donc mon csv avec que ces 2 champs là.
D'un autre côté, j'ai mon csv ntwprofil qui lui a juste récupéré la liste des noms de dossiers dans mes profils réseaux nommés en SamAccountName. Pour ce csv, j'ai fait un [code:1]select-object Name[/code:1]

Donc je me retrouve avec 2 csv avec des samaccountname, un dans la colonne samaaccountname et l'autre dans la colonne name. Ce que je veux pouvoir faire au final, c'est de dire quand un samaccountname dans export_test3 = name dans ntwprofil, de m'afficher que le samaccountname et le name du export_test3.

Ou plus simplement, je veux bien récupérer et assembler les informations depuis des fichiers csv.

J'espère encore avoir toujours été clair dans ma demande =/

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 12 ans 8 mois #15301 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Récupération info AD
Bonsoir,

C'est bien de foreach que j'ai besoin car dans mes 2 csv, c'est une liste d'éléments qu'il parcourt.


Un 'foreach' permet de parcourir l'un de tes csv, ligne par ligne (un objet par ligne dont les propriétés correspondent aux entêtes de colonne). Un seul foreach ne permet pas de parcourir une première liste par rapport à une seconde liste...

Un exemple :

[code:1]
$FirstCsv = Import-Csv .\UnPremierFichier.csv
$SecondCsv = Import-Csv .\UnSecondFichier.csv

Foreach($element in $FirstCsv){
$Found = $SecondCsv | Where-Object { $_.SamAccountName -eq $element.Name}
if($Found -ne $null){
# ici un traitement ...
# Pour l'exemple, affichage des 2 éléments dont la propriété 'SamAccountName'/'Name' est identique
Write-Host \"Ces deux éléments ont la même propriété 'SamAccountName' = 'Name' :\"
$element
$Found
}
}
[/code:1]

@ +

Matthew BETTON<br><br>Message édité par: Matthew BETTON, à: 4/07/13 18:20

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.050 secondes
Propulsé par Kunena