J'essaie d'écrire un script PowerShell qui cache l'utilisateur des listes d'échange.
J'ai pu trouver la commande suivante: Set-Mailbox -Identity [user id here] -HiddenFromAddressListsEnabled $true
Et cela ne me donne pas un message d'erreur, et quand j'exécute la commande deux fois, je reçois l'avertissement suivant:
AVERTISSEMENT: La commande s'est terminée avec succès, mais aucun paramètre de "[ID utilisateur ici]" n'a été modifié.
Ce qui signifie probablement que la commande a réellement fonctionné.
mais quand je vais à Console de gestion Exchangeet, ouvrez le profil utilisateur, la case "hide user from exchange address lists
" est désactivée.
Quelle pourrait être la raison?
J'utilise cela comme tâche planifiée quotidiennement pour masquer les utilisateurs désactivés dans AD de la liste d'adresses globale
$mailboxes = get-user | where {$_.UserAccountControl -like '*AccountDisabled*' -and $_.RecipientType -eq 'UserMailbox' } | get-mailbox | where {$_.HiddenFromAddressListsEnabled -eq $false}
foreach ($mailbox in $mailboxes) { Set-Mailbox -HiddenFromAddressListsEnabled $true -Identity $mailbox }
Vous pouvez utiliser le script suivant, il suffit de remplacer DOMAIN par le nom de votre domaine. Une fois exécuté, il vous demandera un login utilisateur, puis masque le compte de cet utilisateur dans les listes d'adresses.
$name=Read-Host "Enter login name of user to hide"
Set-Mailbox -Identity DOMAIN\$name -HiddenFromAddressListsEnabled $true
Brian.
J'obtenais exactement la même erreur, mais je l'ai résolue en exécutant d'abord $false
puis $true
.
Vous devrez transmettre l'une des valeurs Identity
valides telles que DN
, domain\user
etc. à l'applet de commande Set-Mailbox
. Actuellement, vous ne passez rien.
"AVERTISSEMENT: la commande a abouti mais aucun paramètre de" [ID utilisateur ici] "n'a été modifié."
Cet avertissement signifie que le paramètre a déjà été défini comme vous le souhaitez. Donc, cela n'a rien changé pour cet objet.