Question
Modifier l'attribut ProxyAddresses, Mail et Groupes
- LACHARI
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 9 mois 1 semaine #33948
par LACHARI
Modifier l'attribut ProxyAddresses, Mail et Groupes a été créé par LACHARI
Hello la Communauté,
Je sollicite votre aide sur un script, je ne sais pas si c'est bon :
1. Je dois supprimer les valeurs de l'attribut ProxyAddresses contenant plusieurs entrées
2. Repeupler ce même attribut avec une nouvelle valeur
3. Modifier l'attribut Mail avec la même valeur que celui du ProxyAddresses
4. Supprimer le groupe AD de l'utilisateur contenant les mots GAPPS-INT par le groupe AD GAPPS-PRD-USR
Voilà ce que j'ai fait :
Merci à vous
Je sollicite votre aide sur un script, je ne sais pas si c'est bon :
1. Je dois supprimer les valeurs de l'attribut ProxyAddresses contenant plusieurs entrées
2. Repeupler ce même attribut avec une nouvelle valeur
3. Modifier l'attribut Mail avec la même valeur que celui du ProxyAddresses
4. Supprimer le groupe AD de l'utilisateur contenant les mots GAPPS-INT par le groupe AD GAPPS-PRD-USR
Voilà ce que j'ai fait :
#Fichier CSV contenant la liste des Utilisateurs (un en-tête contenant samAccountName, ProxyAddresses et Mail)
$csv = "C:\Scripts\ListeUtilisateurs.csv"
$ListeUtilisateurs = Import-Csv -Path $csv -Delimiter ";" -Encoding UTF8
ForEach ($Utilisateur in $ListeUtilisateurs)
{
$User = $_."samAccountName"
$Proxy = $_."ProxyAddresses"
$Email = $_."Mail"
# Sauvegarde des valeurs de ProxyAddresses dans un fichier
Get-ADUser $_.samAccountName -Properties ProxyAddresses | Select-Object Name, @{L = "ProxyAddresses"; E = {$_.ProxyAddresses -join ";"}} | Export-Csv -Path "C:\Scripts\ProxyAddresses.csv" -NoTypeInformation
# Suppression des valeurs de ProxyAddresses
Set-ADUser $_.samAccountName -Remove @{ProxyAddresses=$Proxy}
# Ajout du nouveau ProxyAddresses
$NewProxy = "SMTP:" + "$_.samAccountName" + "@tmp.toto.com"
Set-ADUser $_.SamAccountName -Add @{ProxyAddresses = $NewProxy}
# Remplacer la valeur de l'attribut Mail par ProxyAddresses
Set-ADUser $_.SamAccountName -EmailAddress $NewProxy
#Supprimer le groupe AD contenant les mots GAPPS-INT et ajouter le groupe GAPPS-PRD-USR
$GroupeINT = Get-ADGroup -Filter "Name -like '*GAPPS-INT*'"
$GroupePRD = Get-ADGroup -Identity GAPPS-PRD-USR
Remove-ADGroupMember -Identity $GroupeINT -Members $_.SamAccountName
Add-ADGroupMember -Identity $GroupePRD -Members $_.SamAccountName
}
Merci à vous
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 9 mois 1 semaine - il y a 9 mois 1 semaine #33949
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Modifier l'attribut ProxyAddresses, Mail et Groupes
Bonjour David,
Sois le bienvenu dans notre forum et dans la communauté PowerShell Francophone !
Déjà tu ne nous dit pas ce qui ne fonctionne pas . A première vue, je dirais que globalement ton script me semble plutôt bien écrit.
Je note un problème cela dit, qui fait que ça ne peut pas marcher. Dans ta boucle Foreach tu déclares la variable $Utilisateur et dans la suite de ton code tu fais référence à $_ au lieu de $Utilisateur...
Je note un 2e problème selon moi relatif à la suppression et à l'ajout de membre dans les groupes.
Si tu écris ceci :
Il faut t'attendre à recevoir un ou plusieurs résultats et donc un tableau dans ta variable $GroupeINT. Il te faudra donc traiter $GroupeINT avec un Foreach afin de traiter chaque groupe; ce que tu ne fais pas.
Mais je pense que ce n'est pas exactement ce que tu souhaites faire.
A mon avis il manque un test pour vérifier si l'utilisateur fait partie d'un groupe contenant les mot GAPPS-INT.
Je pense que tu devrais lister tous les groupes dont l'utilisateur est membre et vérifier si l'un des groupes match le pattern "GAPPS-INT".
Je te donne un exemple :
Je n'ai pas testé l'entièreté de mon code. Il se peut que les retraits/ajouts de membres aux groupes ne fonctionnent pas. Mais l'idée est là je pense.
Dis-moi si ça va ou si je suis complètement à côté de la plaque .
Arnaud
Sois le bienvenu dans notre forum et dans la communauté PowerShell Francophone !
Déjà tu ne nous dit pas ce qui ne fonctionne pas . A première vue, je dirais que globalement ton script me semble plutôt bien écrit.
Je note un problème cela dit, qui fait que ça ne peut pas marcher. Dans ta boucle Foreach tu déclares la variable $Utilisateur et dans la suite de ton code tu fais référence à $_ au lieu de $Utilisateur...
Je note un 2e problème selon moi relatif à la suppression et à l'ajout de membre dans les groupes.
Si tu écris ceci :
$GroupeINT = Get-ADGroup -Filter "Name -like '*GAPPS-INT*'"
Il faut t'attendre à recevoir un ou plusieurs résultats et donc un tableau dans ta variable $GroupeINT. Il te faudra donc traiter $GroupeINT avec un Foreach afin de traiter chaque groupe; ce que tu ne fais pas.
Mais je pense que ce n'est pas exactement ce que tu souhaites faire.
A mon avis il manque un test pour vérifier si l'utilisateur fait partie d'un groupe contenant les mot GAPPS-INT.
Je pense que tu devrais lister tous les groupes dont l'utilisateur est membre et vérifier si l'un des groupes match le pattern "GAPPS-INT".
Je te donne un exemple :
# Récupération des groupes dont l'utlisateur Arnaud est membre
$groupesGAPPS-INT = (Get-ADUser -Identity arnaud -Properties *).memberof -match 'GAPPS-INT'
# Retrait de l'utilisateur Arnaud des groupes qui contiennent GAPPS-INT
$GroupesGAPPS-INT | foreach { Remove-ADGroupMember -Identity $_ -Member 'Arnaud' }
# Ajout de l'utilisateur Arnaud dans le groupe GAPPS-PRD-USR
if ($groupesGAPPS-INT.count -gt 0) {
Add-AdGroupMember -Identity GAPPS-PRD-USR -Member Arnaud
}
Je n'ai pas testé l'entièreté de mon code. Il se peut que les retraits/ajouts de membres aux groupes ne fonctionnent pas. Mais l'idée est là je pense.
Dis-moi si ça va ou si je suis complètement à côté de la plaque .
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Dernière édition: il y a 9 mois 1 semaine par Arnaud Petitjean.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.103 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Modifier l'attribut ProxyAddresses, Mail et Groupes