Question Rennomer des comptes dans l'Active Directory

Plus d'informations
il y a 10 ans 1 mois #20773 par Martin Cyrille
Bonjour tout le monde,

Je suis depuis peu salarié dans un organisme (dont je ne citerai pas le nom) où je réalise des scripts PowerShell :)
Je suis novice dans ce domaine, la programmation n'est pas mon fort mais j'avance doucement ;)

Dans cet organisme les utilisateurs ont deux comptes particuliers, un compte internet et un compte particulier de l'organisme.
Mais le problème c'est que le login des deux comptes est différent donc certains personnes les inverse ce qui entraîne le blocage de leur compte ou autre.

Mont but est donc de réaliser un script qui permettra de rennomer les comptes internet en les faisant correspondre au compte spécifique de l'organisme pour chaque utilisateur. Bien sur tout ceci est lié à l'Active Directory.

Dans un premier temps je dois réaliser un script qui me permet d'extraire les infos des utilisateurs de l'AD suivant leur OU.
Je dois récupérer ces 4 valeurs :
- DisplayName
- SamAccountName
- UserAccountControl
- AdsPath

Je dois extraire ces infos dans un fichier csv avec pour séparateur le \";\"

J'aimerai donc avoir une aide ou une première piste sur ce projet car c'est pour moi un projet d'envergure qui me fait légèrement peur :blink:

Cordialement,
Cyrille MARTIN.

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

Plus d'informations
il y a 10 ans 1 mois #20777 par Matthew BETTON
Bonsoir,

Un début (pour un compte utilisateur) :

[code:1]
# Import du module Active Directory, nécessaire à l'utilisation de Cmdlets AD

Import-Module ActiveDirectory

# Récupère un objet de type utilisateur dans l'AD. On spécifie les propriétés que l'on souhaite récupérer pour cet objet

$User = Get-ADUser toto -properties DisplayName, SamAccountName, UserAccountControl, AdsPath

# Exporte les informations vers un fichier csv

$User |
Select-Object DisplayName, SamAccountName, UserAccountControl, AdsPath |
Export-Csv -Path D:\User.csv -Delimiter \";\" -NoTypeInformation -Encoding UTF8
[/code:1]

La Cmdlet 'Select-Object' permet de donner l'ordre des propriétés exportées dans le fichier CSV.
(Bon, à partir de la v3 de powershell il existe d'autres solutions...).

On peut également le faire en une seule ligne (en dehors de l'import du module) :

[code:1]Get-ADUser toto -properties DisplayName, SamAccountName, UserAccountControl, AdsPath |
Select-Object DisplayName, SamAccountName, UserAccountControl, AdsPath |
Export-Csv -Path D:\User.csv -Delimiter \";\" -NoTypeInformation -Encoding UTF8[/code:1]

A partir de Windows 7 / 2008 R2 : Le module AD se trouve dans les RSAT (Remote Server Administration Tools) ou sur un contrôleur de domaine AD.

Sinon, il y a d'autres solutions. Par exemple, si on n'a pas le module ActiveDirectory à disposition :

[Fonction] Recherche objets Active Directory

Je te laisse voir avec ces quelques informations, réfléchir et ... n'hésites pas à poser d'autres questions ;)

Matthew<br><br>Message édité par: Matthew BETTON, à: 30/09/15 22:12

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

Plus d'informations
il y a 10 ans 1 mois #20779 par Martin Cyrille
Bonjour,

Je tiens premièrement à vous remercier pour votre réponse compréhensible et très claire.

Quand je remplace le \&quot;toto\&quot; par le nom d'utilisateur de mon domaine Active Directory, l'exécution du script me dit qu'il est impossible de trouver l'objet &lt;alexis&gt; sous mon domaine.

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

Plus d'informations
il y a 10 ans 1 mois #20783 par Martin Cyrille
Re bonjour,

J'ai donc réussi à extraire dans un fichier .csv les informations de mes membres.

Mais j'ai seulement réussi pour DisplayName, SamAccountName,UserAccountControl.

Pour AdsPath il me dit :


Get-ADUser : Une ou plusieurs propriété ne sont pas valides.
Nom du paramètre AdsPath

Si je met Get-ADUser toto -properties DisplayName, SamAccountName, UserAccountControl en enlevant le AdsPath cela fonctionne.

Il y a t-il un mot dans les paramètres de -proporties qui fait référence à AdsPath ???

Cordialement,
Cyrille MARTIN.

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

Plus d'informations
il y a 10 ans 1 mois #20784 par Martin Cyrille
C'est bon j'ai réussi à extraire les 4 informations pour les deux (le compte internet et le compte particulier)

J'ai remplacé le AdsPath par DistinguishedName, je me suis aidé de l'aide.

Je dois maintenant mettre en commun ceci et à l'aide des deux fichiers crées précédemment, générer un fichier texte séparateur \&quot;;\&quot; concernant les informations :

DisplayName (internet)
SamAccountName (comtpe particulier)
AdsPath=DinstinguishedName (compte particulier)
OU d'appartenance au compte particulier

Les deux comptes qui sont deux OU de mon domaine possèdent chacuns d'entre eux 3 utilisateurs.


A la suite de ça, j'ai une dernière étape qui est de renommer les comptes internet en fonction du login du compte particulier.

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

Plus d'informations
il y a 10 ans 1 mois #20787 par Matthew BETTON
Cyrille59 écrit:

Pour AdsPath il me dit :


Get-ADUser : Une ou plusieurs propriété ne sont pas valides.
Nom du paramètre AdsPath

Si je met Get-ADUser toto -properties DisplayName, SamAccountName, UserAccountControl en enlevant le AdsPath cela fonctionne.

Il y a t-il un mot dans les paramètres de -proporties qui fait référence à AdsPath ???


Effectivement, mais tu as trouvé tout seul ;-)

Je t'avais donné une piste mais je ne me souviens pas toujours par cœur des noms de propriétés qui sont disponibles, pour pouvoir récupérer les attributs des objets AD :P

Par contre, à défaut de ne pas toujours se souvenir de tout, on peut au moins connaître le moyen de retrouver l'information.

[code:1]
Get-ADUser toto -properties *
[/code:1]

Et pour quelques informations complémentaires, cette commande te dira comment utiliser le paramètre '-properties'.

[code:1]
Get-Help Get-ADUser -Parameter properties
[/code:1]

A propos de AdsPath (provider LDAP, chaîne composée du DN, ...).

Les deux comptes qui sont deux OU de mon domaine possèdent chacuns d'entre eux 3 utilisateurs.


Je ne comprends pas :/

A la suite de ça, j'ai une dernière étape qui est de renommer les comptes internet en fonction du login du compte particulier.


Un truc à savoir : dans un AD il y a des valeurs d'attributs qui sont uniques. Le 'SamAccountName' (login ou matricule de l'utilisateur) en fait partie. On ne peut pas avoir 2 comptes utilisateurs avec le même login.

D'autres informations à ce sujet :

User Naming Attributes

Understanding unique attributes in Active Directory

Reste à savoir et à comprendre ce que tu cherches à faire au final...

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

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