Question
[Résolu]changer Proxyaddresses
- rhiwotar
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 111
- Remerciements reçus 2
il y a 4 ans 4 mois #29502
par rhiwotar
[Résolu]changer Proxyaddresses a été créé par rhiwotar
Bonjour,
Ma question à peut-être une réponse évidente mais rien me vient comme ça
Je cherche à modifier les valeurs proxyaddresses dans l'AD,
Quand je tape ça
[code:1]$InfoUser = Get-ADUser test -Properties mail,proxyaddresses
$InfoUser.proxyaddresses
[/code:1]
je récupère
[code:1]SMTP:test@test1.com
smtp:test@test2.fr[/code:1]
comment je peux cibler une des adresses en particulier pour la supprimer ou la modifier sans impacter l'autre en sachant que je n'ai pas de nom de colonne donc le where marche pas
Pour une vue d'ensemble, on cherche à remplacer nos adresses mail d'un domaine vers un autre, en conservant l'ancienne adresse et celles (s'ils y en a) déjà présente dans les proxyaddresses
Toutes idées sont les bienvenues !!
Merci d'avance.<br><br>Message édité par: rhiwotar, à: 14/01/20 15:31
Ma question à peut-être une réponse évidente mais rien me vient comme ça
Je cherche à modifier les valeurs proxyaddresses dans l'AD,
Quand je tape ça
[code:1]$InfoUser = Get-ADUser test -Properties mail,proxyaddresses
$InfoUser.proxyaddresses
[/code:1]
je récupère
[code:1]SMTP:test@test1.com
smtp:test@test2.fr[/code:1]
comment je peux cibler une des adresses en particulier pour la supprimer ou la modifier sans impacter l'autre en sachant que je n'ai pas de nom de colonne donc le where marche pas
Pour une vue d'ensemble, on cherche à remplacer nos adresses mail d'un domaine vers un autre, en conservant l'ancienne adresse et celles (s'ils y en a) déjà présente dans les proxyaddresses
Toutes idées sont les bienvenues !!
Merci d'avance.<br><br>Message édité par: rhiwotar, à: 14/01/20 15:31
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 4 mois #29503
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:changer Proxyaddresses
Salut,
si je me souviens bien le contenu de cet attribut est un tableau ou une chaine.
Voici un peu de code brut de fonderie, consulte Get-SMTPAddress :
[code:1]
New-Variable PatternSMTPAddress -Option ReadOnly -Value 'target.TRUC.Bidule'`
-Description \"Adresse SMTP à vérifier.\" -EA SilentlyContinue
New-Variable PatternTargetAddress -Option ReadOnly -Value 'source.Machin.com'`
-Description \"Attribut TargetAddress à vérifier.\" -EA SilentlyContinue
#Expressions régulière à valider
$ValidationRegex=@{
# Pas de test sur la casse car une adresse est aussi une clé unique
# Paramètre la regex par substitution
Smtp=\"^SMTP:.*@$($PatternSMTPAddress)`$\";
#Paramètre la regex par substitution
TargetAddressTRUCCORP=\"^.*@$($PatternTargetAddress)`$\";
TargetAddressTRUC='^.*@target.TrucCorp.tld$';
#ex: o=truc/ou=PARIS/cn=Configuration/cn=Servers/cn=UnServeur
ExchServerName='^.*cn=(?<ServerName>.*)$'
}
function Test-Regex {
#Valide une regex et renvoie $true ou $false
param(
[Parameter(Mandatory=$true,ValueFromPipeline = $true)]
[ValidateNotNullOrEmpty()]
[string] $Value,
[Parameter(Position=0, Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string] $Pattern
)
$Value -Match $Pattern
}#Test-Regex
function Test-SMTPAddress {
#test si une addresse mail est bien dans un format attendu
param(
[Parameter(Position=0, Mandatory=$true)]
#La liste d'addresse doit être renseignée,
# car on suppose la BAL existante
[ValidateNotNullOrEmpty()]
[string[]] $SMTPSource
)
Foreach($CurrentAddr in $SMTPSource)
{
$Result=Test-Regex -Pattern $ValidationRegex.SMTP -value $CurrentAddr
if ($result)
{ break }
}
$Result
}#Test-SMTPAddress
function Get-SMTPAddress {
#renvoie l'addresse mail répondant à un format attendu ou $null.
param(
[Parameter(Position=0, Mandatory=$true)]
[AllowNull()]
[AllowEmptyString()]
$SMTPSource
)
if ([string]::IsNullOrEmpty($SMTPSource))
{ $null}
elseif (($SMTPSource -isnot [System.String]) -and ($SMTPSource -is [System.Collections.IEnumerable]))
{
Foreach($CurrentAddr in $SMTPSource)
{
if ($CurrentAddr -cmatch '^SMTP:«»(.*)$')
{
$matches[0]
break
}
}
}
else
{
if ($SMTPSource -cmatch '^SMTP:«»(.*)$')
{$matches[0]}
else
{$null}
}
}#Get-SMTPAddress
#L'appel étant
Get-SMTPAddress $CurrentAccount.ProxyAddresses
[/code:1]
A toi de voir si cela peut t'aider.<br><br>Message édité par: Laurent Dardenne, à: 4/12/19 17:52
si je me souviens bien le contenu de cet attribut est un tableau ou une chaine.
Voici un peu de code brut de fonderie, consulte Get-SMTPAddress :
[code:1]
New-Variable PatternSMTPAddress -Option ReadOnly -Value 'target.TRUC.Bidule'`
-Description \"Adresse SMTP à vérifier.\" -EA SilentlyContinue
New-Variable PatternTargetAddress -Option ReadOnly -Value 'source.Machin.com'`
-Description \"Attribut TargetAddress à vérifier.\" -EA SilentlyContinue
#Expressions régulière à valider
$ValidationRegex=@{
# Pas de test sur la casse car une adresse est aussi une clé unique
# Paramètre la regex par substitution
Smtp=\"^SMTP:.*@$($PatternSMTPAddress)`$\";
#Paramètre la regex par substitution
TargetAddressTRUCCORP=\"^.*@$($PatternTargetAddress)`$\";
TargetAddressTRUC='^.*@target.TrucCorp.tld$';
#ex: o=truc/ou=PARIS/cn=Configuration/cn=Servers/cn=UnServeur
ExchServerName='^.*cn=(?<ServerName>.*)$'
}
function Test-Regex {
#Valide une regex et renvoie $true ou $false
param(
[Parameter(Mandatory=$true,ValueFromPipeline = $true)]
[ValidateNotNullOrEmpty()]
[string] $Value,
[Parameter(Position=0, Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string] $Pattern
)
$Value -Match $Pattern
}#Test-Regex
function Test-SMTPAddress {
#test si une addresse mail est bien dans un format attendu
param(
[Parameter(Position=0, Mandatory=$true)]
#La liste d'addresse doit être renseignée,
# car on suppose la BAL existante
[ValidateNotNullOrEmpty()]
[string[]] $SMTPSource
)
Foreach($CurrentAddr in $SMTPSource)
{
$Result=Test-Regex -Pattern $ValidationRegex.SMTP -value $CurrentAddr
if ($result)
{ break }
}
$Result
}#Test-SMTPAddress
function Get-SMTPAddress {
#renvoie l'addresse mail répondant à un format attendu ou $null.
param(
[Parameter(Position=0, Mandatory=$true)]
[AllowNull()]
[AllowEmptyString()]
$SMTPSource
)
if ([string]::IsNullOrEmpty($SMTPSource))
{ $null}
elseif (($SMTPSource -isnot [System.String]) -and ($SMTPSource -is [System.Collections.IEnumerable]))
{
Foreach($CurrentAddr in $SMTPSource)
{
if ($CurrentAddr -cmatch '^SMTP:«»(.*)$')
{
$matches[0]
break
}
}
}
else
{
if ($SMTPSource -cmatch '^SMTP:«»(.*)$')
{$matches[0]}
else
{$null}
}
}#Get-SMTPAddress
#L'appel étant
Get-SMTPAddress $CurrentAccount.ProxyAddresses
[/code:1]
A toi de voir si cela peut t'aider.<br><br>Message édité par: Laurent Dardenne, à: 4/12/19 17:52
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- rhiwotar
- Auteur du sujet
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 111
- Remerciements reçus 2
il y a 4 ans 4 mois #29504
par rhiwotar
Réponse de rhiwotar sur le sujet Re:changer Proxyaddresses
Merci!
Je viens de le tester, ça retourne le SMTP principal, faut que je vois comment l'appliquer en pratique.
Je viens de le tester, ça retourne le SMTP principal, faut que je vois comment l'appliquer en pratique.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 4 mois #29505
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:changer Proxyaddresses
rhiwotar écrit:
Dans ton cas je pense qu'il te faut une fonction qui renvoit tjr un objet tableau d'adresse à partir des données de $Account.ProxyAddresses. C'est peut être ce qui manquait dans mon traitement d'origine.
Réutilise les contrôles de type déclarés dans la fonction 'Get-SMTPAddress'
Ensuite il s'agira de manipuler ce tableau (ajout, supression).
Disons que cela retourne la première occurrence de la regex.ça retourne le SMTP principal, faut que je vois comment l'appliquer en pratique.
Dans ton cas je pense qu'il te faut une fonction qui renvoit tjr un objet tableau d'adresse à partir des données de $Account.ProxyAddresses. C'est peut être ce qui manquait dans mon traitement d'origine.
Réutilise les contrôles de type déclarés dans la fonction 'Get-SMTPAddress'
Ensuite il s'agira de manipuler ce tableau (ajout, supression).
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.071 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- [Résolu]changer Proxyaddresses