Question
[Résolu] Script modification attributs AD
- gaudefroy
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 32
- Remerciements reçus 0
il y a 7 ans 11 mois #25322
par gaudefroy
Réponse de gaudefroy sur le sujet Re:Script modification attributs utilisateurs AD depu
Merci pour ta réponse donc je ne suis pas si loin que cela. J'ai corrigé mon code en conséquence. Le voici ci dessous. J'ai testé avec en évitant mon csv et en mettant 1 utilisateur qui existe et l'autre qui n'existe pas:
[code:1]Import-Module ActiveDirectory
#$users = Import-Csv -Path C:\users\administrateur\Desktop\Modif_users.csv -delimiter \";\"
$users = \"test.test\", \"tutu.tutu\"
foreach ($user in $users) {
$usersearch = Get-ADUser -Filter {SamAccountName -eq \"$($user.samaccountname)\"}
if (@($usersearch -eq $null).count-eq 0) {
write-host \"l'utilisateur \"$user\" n'existe pas\" -ForegroundColor Red
}
else {
Set-ADUser -Company $($user.Company) `
-Department $($user.Department) `
-Description $($user.Description) `
-office $($user.office)
Write-Host \"Compte modifié pour\"$user\"\" -ForegroundColor green
}
}[/code:1]
Par contre il ne fait pas le script il me demande:
[code:1]applet de commande Set-ADUser à la position 1 du pipeline de la commande
Fournissez des valeurs pour les paramètres suivants :
Identity : [/code:1]
on dirait qu'il attend que je lui donne les \"samaccountname\" qui sont déclarés dans la variable $users (a la place du csv)
As tu une idée du pourquoi ?
[code:1]Import-Module ActiveDirectory
#$users = Import-Csv -Path C:\users\administrateur\Desktop\Modif_users.csv -delimiter \";\"
$users = \"test.test\", \"tutu.tutu\"
foreach ($user in $users) {
$usersearch = Get-ADUser -Filter {SamAccountName -eq \"$($user.samaccountname)\"}
if (@($usersearch -eq $null).count-eq 0) {
write-host \"l'utilisateur \"$user\" n'existe pas\" -ForegroundColor Red
}
else {
Set-ADUser -Company $($user.Company) `
-Department $($user.Department) `
-Description $($user.Description) `
-office $($user.office)
Write-Host \"Compte modifié pour\"$user\"\" -ForegroundColor green
}
}[/code:1]
Par contre il ne fait pas le script il me demande:
[code:1]applet de commande Set-ADUser à la position 1 du pipeline de la commande
Fournissez des valeurs pour les paramètres suivants :
Identity : [/code:1]
on dirait qu'il attend que je lui donne les \"samaccountname\" qui sont déclarés dans la variable $users (a la place du csv)
As tu une idée du pourquoi ?
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 7 ans 11 mois #25323
par Philippe
Réponse de Philippe sur le sujet Re:Script modification attributs utilisateurs AD depu
je suis bête 
j'ai corriger mon script de test par reflex sans te le dire
il faut a set-aduser les donné de l'utilisateur !!
[code:1]$usersearch | Set-ADUser -Company $($user.Company) ` ....[/code:1]<br><br>Message édité par: 6ratgus, à: 17/04/18 18:20
j'ai corriger mon script de test par reflex sans te le dire
il faut a set-aduser les donné de l'utilisateur !!
[code:1]$usersearch | Set-ADUser -Company $($user.Company) ` ....[/code:1]<br><br>Message édité par: 6ratgus, à: 17/04/18 18:20
Connexion ou Créer un compte pour participer à la conversation.
- gaudefroy
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 32
- Remerciements reçus 0
il y a 7 ans 11 mois #25324
par gaudefroy
Réponse de gaudefroy sur le sujet Re:Script modification attributs utilisateurs AD depu
Bon désolé d'encore solliciter ton aide 6ratgus mais ca ne fonctionne pas correctement
J'ai fait le test comme tu l'as indiqué sans le csv et en modifiant quelques lignes et cela fonctionne.
Maintenant quand je prend le csv on dirait que le Get-Aduser n'est pas fait et donc la variable est null et me renvoie que les utilisateurs n'existent pas.
[code:1]Import-Module ActiveDirectory
$users = Import-Csv -Path C:\users\administrateur.LPO\Desktop\Modif_users.csv -delimiter \";\"
#$users = \"test.test\", \"tutu.tutu\"
foreach ($user in $users) {
$usersearch = Get-ADUser -Filter {SamAccountName -eq \"$($user.samaccountname)\" }
if ($usersearch -eq $null) {
write-host \"l'utilisateur \"$user.samaccountname\" n'existe pas\" -ForegroundColor Red
}
else {
$usersearch | Set-ADUser -Company $($user.Company) `
-Department $($user.Department) `
-Description $($user.Description) `
-office $($user.office)
Write-Host \"Compte modifié pour\"$user.samaccountname\"\" -ForegroundColor green
}
[/code:1]}
Vois tu ou se situe l'erreur ? je pense que c'est le get-aduser qui doit avoir un problème de syntax ?
J'ai fait le test comme tu l'as indiqué sans le csv et en modifiant quelques lignes et cela fonctionne.
Maintenant quand je prend le csv on dirait que le Get-Aduser n'est pas fait et donc la variable est null et me renvoie que les utilisateurs n'existent pas.
[code:1]Import-Module ActiveDirectory
$users = Import-Csv -Path C:\users\administrateur.LPO\Desktop\Modif_users.csv -delimiter \";\"
#$users = \"test.test\", \"tutu.tutu\"
foreach ($user in $users) {
$usersearch = Get-ADUser -Filter {SamAccountName -eq \"$($user.samaccountname)\" }
if ($usersearch -eq $null) {
write-host \"l'utilisateur \"$user.samaccountname\" n'existe pas\" -ForegroundColor Red
}
else {
$usersearch | Set-ADUser -Company $($user.Company) `
-Department $($user.Department) `
-Description $($user.Description) `
-office $($user.office)
Write-Host \"Compte modifié pour\"$user.samaccountname\"\" -ForegroundColor green
}
[/code:1]}
Vois tu ou se situe l'erreur ? je pense que c'est le get-aduser qui doit avoir un problème de syntax ?
Connexion ou Créer un compte pour participer à la conversation.
- gaudefroy
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 32
- Remerciements reçus 0
il y a 7 ans 11 mois #25325
par gaudefroy
Réponse de gaudefroy sur le sujet Re:Script modification attributs utilisateurs AD depu
je crois que j'ai trouvé la solution ci dessous en cherchant sur internet:
[code:1]Import-Module ActiveDirectory
$users = Import-Csv -Path C:\users\administrateur\Desktop\Modif_users.csv -delimiter \";\"
foreach ($user in $users) {
$usersearch = Get-ADUser -Filter \"samaccountname -eq '$($user.samAccountName)'\"
if ($usersearch -eq $null) {
write-host \"l'utilisateur \"$user.samaccountname\" n'existe pas\" -ForegroundColor Red
}
else {
$usersearch | Set-ADUser -Company $($user.Company) `
-Department $($user.Department) `
-Description $($user.Description) `
-office $($user.office)
Write-Host \"Compte modifié pour\"$user.samaccountname\"\" -ForegroundColor green
}
}[/code:1]
cela semble fonctionner avec le csv. Par contre je ne comprend pas la syntax du \"samaccountname -eq '$($user.samAccountName)'\". Si tu peux me l'expliquer pour les prochaines fois
[code:1]Import-Module ActiveDirectory
$users = Import-Csv -Path C:\users\administrateur\Desktop\Modif_users.csv -delimiter \";\"
foreach ($user in $users) {
$usersearch = Get-ADUser -Filter \"samaccountname -eq '$($user.samAccountName)'\"
if ($usersearch -eq $null) {
write-host \"l'utilisateur \"$user.samaccountname\" n'existe pas\" -ForegroundColor Red
}
else {
$usersearch | Set-ADUser -Company $($user.Company) `
-Department $($user.Department) `
-Description $($user.Description) `
-office $($user.office)
Write-Host \"Compte modifié pour\"$user.samaccountname\"\" -ForegroundColor green
}
}[/code:1]
cela semble fonctionner avec le csv. Par contre je ne comprend pas la syntax du \"samaccountname -eq '$($user.samAccountName)'\". Si tu peux me l'expliquer pour les prochaines fois
Connexion ou Créer un compte pour participer à la conversation.
- gaudefroy
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 32
- Remerciements reçus 0
il y a 6 ans 10 mois #28871
par gaudefroy
Réponse de gaudefroy sur le sujet Re:Script modification attributs utilisateurs AD depu
Excusez moi mais je déterre ce sujet pour une question complémentaire.
En effet je me sers de ce script pour modifier en masse mes utilisateurs mais lorsque dans mon csv certains champs sont nulles ou vide j'ai un message d'erreur.
Comment peut on adapter ce script pour que lorsque les champs sont vides, le script ne modifie rien et passe à l'utilisateur suivant.
Peut etre auriez vous des idées de syntax.
J'ai vue sur certains sites quelques solutions mais je ne comprends pas le concept.
Merci d'avance
En effet je me sers de ce script pour modifier en masse mes utilisateurs mais lorsque dans mon csv certains champs sont nulles ou vide j'ai un message d'erreur.
Comment peut on adapter ce script pour que lorsque les champs sont vides, le script ne modifie rien et passe à l'utilisateur suivant.
Peut etre auriez vous des idées de syntax.
J'ai vue sur certains sites quelques solutions mais je ne comprends pas le concept.
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 6 ans 10 mois #28873
par Philippe
Réponse de Philippe sur le sujet Re:Script modification attributs utilisateurs AD depu
salut como10
au moment de la lecture du fichier par exemple
ou dans la boucle si tu veux
rien n'est fixe, tu fais au plus simple et au plus lisible pour une relecture plus tard pour une evolution ou correction
par exemple :
pour une ligne completement vide :
[code:1]... import-csv ... | where {$_ -ne \"\"}[/code:1]
pour une ligne avec une valeur vide ou null, le samaccountname du fichier par exemple :
[code:1]... import-csv ... | where {$_.samaccountname -ne \"\" -and $_.samaccountname -ne $null}[/code:1]
il te suffit de mettre un filtre sur des valeurs null ou videEn effet je me sers de ce script pour modifier en masse mes utilisateurs mais lorsque dans mon csv certains champs sont nulles ou vide j'ai un message d'erreur.
au moment de la lecture du fichier par exemple
ou dans la boucle si tu veux
rien n'est fixe, tu fais au plus simple et au plus lisible pour une relecture plus tard pour une evolution ou correction
par exemple :
pour une ligne completement vide :
[code:1]... import-csv ... | where {$_ -ne \"\"}[/code:1]
pour une ligne avec une valeur vide ou null, le samaccountname du fichier par exemple :
[code:1]... import-csv ... | where {$_.samaccountname -ne \"\" -and $_.samaccountname -ne $null}[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.068 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Script modification attributs AD