Question Modification propriétés utilisateurs AD

Plus d'informations
il y a 12 ans 11 mois #14982 par nicolas
Bonjour ayant vu quelque sujet similaire mais pas tous a fait pareil que le mien je me permet de vous demander votre aide pour m'aiguiller.

Je test sur un AD et serveur dédier que pour faire des tests. Pour enfin exécuter ces scripts dans l'AD principal.

Après avoir chercher toutes l'après-midi et trouvant des solutions qui n'a pas solutionné mon problème^^.

Enfaite mon problème n'est pas de modifier la propriété de chaque utilisateurs avec la même information mais la modifier avec une information différente pour chaque utilisateur en partant avec un fichier csv.


Donc j'ai fait un fichier csv avec : Nom,Prenom,Id
1
..
50

La colonne Id à été rajouté après le nom et prénom(fichier qui a servit à créer les utilisateurs)

Voici mon code :

Import-Module ActiveDirectory

#$Users = (Get-ADUSER -filter * -SearchBase 'ou=UtilisateursCH,dc=Test,dc=local') | set-ADUSER -initials $initiale
$Users = Import-Csv c:\TEST_IMPORTER\user.csv

foreach ($User in $Users)

{

$id = $User.Id

(Get-ADUSER -filter * -SearchBase 'ou=UtilisateursCH,dc=Test,dc=local') | set-ADUser -initials $id

}


Mon problème après exécution du script c'est que tous mes utilisateurs on 50 comme initials alors qu'il devrait avoir chaqu'un leurs initiales
différentes comme dans mon fichier csv.



Je pense que c'est dans cette ligne que mon problème ce pose : \"Get-AdUser -filter * -SearchBase 'ou=UtilisateursCH,dc=Test,dc=local' | set-AdUser -initials $id

Ce qui me pose problème je pense surtout -filter * -SearchBase.

En mettant \"| set-AdUser -initials $id\" en commantaire

Je constate que La ligne qui reste en l'occurence : Get-AdUser -filter * -SearchBase 'ou=UtilisateursCH,dc=Test,dc=local'

Va m'afficher 50 fois les propriétés principales de chaque utilisateurs.
Je précise 50 fois le même utilisateur + 50 fois l'utilisateur2 + 50 fois etc jusqu’à mes 50 utilisateurs (Vous comprenez ? lol)

Voila j'espère que j'ai été clair dans mon explication pour ce problème.

Merci par avance et meilleures salutations.<br><br>Message édité par: nicolas10, à: 29/05/13 17:33

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

Plus d'informations
il y a 12 ans 11 mois #14983 par Matthew BETTON
Bonjour,

Une explication...

[code:1]
(Get-ADUSER -filter * -SearchBase 'ou=UtilisateursCH,dc=Test,dc=local') | set-ADUser -initials $id
[/code:1]

Cette commande :

1) Récupère tous les objets Active Directory (user, computer et group) situés sous l'OU 'UtilisateursCH'
2) Chaque objet trouvé est renvoyé via le pipe à la commande Set-ADUser afin de modifier les initiales par la valeur de '$id'

Pour les 50 lignes présentes dans ton fichier csv, ton code effectus les points 1 puis 2.

Chacun des objets présents dans l'OU va donc prendre successivement, comme initiale, les valeurs 1 à 50.

Au final, tu te retrouves avec 50 objets dont la propriété 'initials' vaut '50'.

Je suppose que ce n'est pas ce que tu cherchais à faire, mais cela explique le résultat final que tu observes :)

A mon avis, il manque une information / un filtre sur la cmdlet Get-ADUser, afin de ne récupérer que l'objet user concerné...

Voir l'aide :

[code:1]
Get-Help Get-ADUser
Get-Help Get-ADUser -Detailled
Get-Help Get-ADUser -Full
Get-Help Get-ADUser -Examples
[/code:1]

La dernière commande pour ne visualiser que les exemples.

@+

Matthew

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

Plus d'informations
il y a 12 ans 11 mois #14988 par nicolas
Désolé mais je n'arrive pas résoudre mon problème. Après avoir parcouru le \&quot;Get-help get-aduser -full\&quot;
Je ne comprend toujours pas les paramètres qu'on peut mettre après le filter, enfin je comprend que ceux qui recherche par un prénom ou par mail.

Donc n'y arrivant pas, je me suis dit de recommencer dû départ.

Avec cette commande je récupère qu'une partie des propriétés des utilisateurs:

Mais sa ne me renvoi pas toutes les propriété juste :
DistinguishedName,Enabled,GivenName,Name,ObjectClass,ObjectGUID,SamAccountName,SID,Surname,UserPrincipalName

Ensuite j'ai éssayé cette commande :

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

Plus d'informations
il y a 12 ans 11 mois #14989 par nicolas
Désolé mais je n'arrive pas résoudre mon problème. Après avoir parcouru le \&quot;Get-help get-aduser -full\&quot;
Je ne comprend toujours pas les paramètres qu'on peut mettre après le filter, enfin je comprend que ceux qui recherche par un prénom ou par mail.

Donc n'y arrivant pas, je me suis dit de recommencer dû départ.

Avec cette commande je récupère qu'une partie des propriétés des utilisateurs : Get-aduser -filter * -SearchBase 'ou=UtilisateursCH,dc=Test,dc=local'

Mais sa ne me renvoi pas toutes les propriété juste :
DistinguishedName,Enabled,GivenName,Name,ObjectClass,ObjectGUID,SamAccountName,SID,Surname,UserPrincipalName

Ensuite j'ai éssayé cette commande : $user = New-Object DirectoryServices.DirectoryEntry(‘LDAP://TINFSI07/cn=DSI Stagiaire,ou=UtilisateursCH,ou=blabla.fr,dc=blabla,dc=fr’)

Avec cette commande je récupère bien toutes les propriétés de l'utilisateurs mais que d'un seul forcement vu le chemin. Et à cause du \&quot;New-object\&quot;

Existe d'il un New-.. pour l'OU? (OU = collection?)

Je suis désolé mais je débute en powershell^^' et je ne maitrise pas bien le vocabulaire de PS et les explications qui donne en console malgrès le tas d'info qui nous donne, je n'arrive pas traité je pense les bonnes informations.

Je me suis renseigner aussi sur internet et il donne des filtres du genre : ($(objectCategory=User)(Department=UtilisateursCH))\&quot;
Il me semble qu'on utilisait ceci avant l'apparition de la balise \&quot;filter\&quot; non?
Dans le department il faut bien mettre l'OU où on veut que sa filtre ?

Je m'excuse encore pour toutes ces questions, je pense que j'essaye de comprendre trop de choses a la fois.

Merci par avance et meilleures salutations.

PS : Excuser moi par ce Double message, internet à eu un petit soucis^^\&quot;

Message édité par: nicolas10, à: 30/05/13 16:04

Message édité par: nicolas10, à: 30/05/13 16:06<br><br>Message édité par: nicolas10, à: 31/05/13 09:09

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

Plus d'informations
il y a 12 ans 11 mois #14991 par Philippe
salut nicolas10

comme tu dis, reprenont depuis le depart.

ta demande est clair et ton script proche du bon resultat !

ta trouver ou ete le probleme soit : get-aduser
et aussi en parti pourquoi : le filtre

pour chaque utilisateurs tu veux changer les initiales,
tu a fait une boucle faire le tour de tous tes utilisateurs dans ton fichiers cvs.
donc le filtre de get-user doit filtrer qu'un seul utilisateur !

et va pas te perdre avec cette commande qui rajoute de la complexité a un script qui peut etre simplement resolu avec get-aduser :
$user = New-Object DirectoryServices.DirectoryEntry(‘LDAP://TINFSI07/cn=DSI Stagiaire,ou=UtilisateursCH,ou=chtroyes.fr,dc=chtroyes,dc=fr’)

si j'ai bien lu tu est stagiaire donc je te donne deux info qui vont fortement t'aider (on retient mieux ce que l'on trouve par soi meme) :
- dans le dernier exemple (le 4) de get-aduser il y a le filtre que tu cherche pour un filtrer un utilisateur
- toujour dans le dernier exemple (le 4) il y a -Properties que tu dois utiliser pour les initials (mais ca devrait etre inutile pour ton cas automatique passer en pipeline a set-aduser)

si tu bloque encore on te donnera la solution
mais tes bien parti car les filtre sur l'ad, c'est pas evident au debut<br><br>Message édité par: 6ratgus, à: 30/05/13 18:32

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

Plus d'informations
il y a 12 ans 11 mois #14992 par nicolas
Merci !! Beaucoup ouf enfin j'y suis arrivé^^.

Voici mon code : [code:1]import-module activedirectory
$Users = Import-Csv c:\Importation\user.csv
foreach($user in $Users){
$nom = $user.Nom
$id =$user.Id

get-AdUser -Filter {sn -eq $nom} -SearchBase 'ou=UtilisateursCH,dc=Test,dc=local' | set-ADUser -initials $id
}[/code:1]

Je n'ai jamais vue de forum aussi réactif que le votre, merci à vous.

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

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