Apr 15 2012

Powershell: Autoriser ActiveSync pour un groupe d’utilisateurs AD via une tache planifiée

Nous allons décrire dans ce post comment restreindre l’accès mobile à votre messagerie Exchange 2010 à certains utilisateurs de votre entreprise. Seuls les utilisateurs faisant partie du groupe Active Directory LDAP389-ACTIVESYNC pourront utiliser le protocole ActiveSync et paramétrer leur compte de messagerie sur leur Smartphone. Les autorisations ActiveSync seront mises en place grâce à un script PowerShell lancé par une tâche planifiée.

Le groupe LDAP389-ACTIVESYNC est composé de deux groupes, un pour les utilisateurs situés à Paris et un autre pour ceux situés à Londres, la gestion de ces groupes est déléguée aux équipes informatiques de chaque site:

Pour récupérer les boîte aux lettres des utilisateurs autorisés à utiliser ActiveSync nous allons donc parcourir de manière récursive les utilisateurs membres du groupe LDAP389-ACTIVESYNC:

$groupDN = "CN=LDAP389-ACTIVESYNC,OU=Groups,OU=HQ,DC=ldap389,DC=local"
$members = Get-ADGroupMember -Identity $groupDN -Recursive | Get-ADUser -Properties mail

Nous allons aussi récupérer les comptes de messagerie pour lesquels ActiveSync est autorisé:

$allcas = get-mailbox -ResultSize:unlimited | Get-CASMailbox
$users= $allcas | where-object {$_.ActiveSyncEnabled -eq $true}

Notre script va dans un premier temps parcourir les utilisateurs autorisés pour ActiveSync ($users), si un de ces utilisateurs n’est pas membre du groupe LDAP389-ACTIVESYNC alors ActiveSync lui est interdit grâce au Cmdlet Set-CASMailbox et le paramètre ActiveSyncEnabled.

Dans un second temps nous allons parcourir les membres du groupe LDAP389-ACTIVESYNC ($members), si pour un de ces utilisateurs ActiveSync n’est pas activé alors nous activons la fonctionalité, toujours avec le cmdlet Set-CASMailbox.

Pour télécharger le script complet c’est ici:

Nous allons ensuite paramétrer, notre tâche planifiée, celle-ci sera lancée par un compte de service, ce compte devra avoir les droits suivants:

  • Lecture sur l’AD.
  • Administrateur local du serveur sur lequel sera lancé la tâche planifiée.
  • Avoir un role RBAC dédié, ceci afin de restreindre les droits de ce compte de service au niveau Exchange.

Nous allons dédailler comment créer le rôle “Disable ActiveSync”, il est tout d’abord copié à partir du rôle “Mail Recipients”:

New-ManagementRole -Parent "Mail Recipients" -Name "Disable ActiveSync"

Notre script ne lance que les cmdlets: Get-Mailbox, Get-CASMailbox, Set-CASMailbox. Nous retirons donc tous les autres cmdlets au rôle “Disable ActiveSync”:

Get-ManagementRoleEntry "Disable ActiveSync\*" | Where { (($_.Name -ne "Get-Mailbox") -and ($_.Name -ne "Set-CASMailbox") -and ($_.Name -ne "Get-CASMailbox")) } | Remove-ManagementRoleEntry

On enlève tous les paramètres autorisés au cmdlet Set-casmailbox pour le role “Disable ActiveSync”, sauf ceux utilisés par nôtre script:

Set-ManagementRoleEntry "Disable ActiveSync\Set-CASMailbox" -Parameters Identity,ActiveSyncEnabled,whatif,confirm

On créé un groupe “EnableMobileAccess” et on lui assigne le rôle “Disable ActiveSync”.

New-RoleGroup -Name EnableMobileAccess
New-ManagementRoleAssignment -Name ManageMobileAccess -Role "Disable ActiveSync" -SecurityGroup EnableMobileAccess

Il nous reste ensuite à ajouter notre compte de service au groupe “EnableMobileAccess” et paramétrer notre tâche planifiée Exchange, pour que celle ci tourne avec le compte de service. La connexion au PowerShell Exhange étant incluse dans le script.

La tâche planifiée est paramétrée et se lance avec un compte de service qui n’a que les droits nécessaires à réaliser l’opération.

This post is also available in: Anglais

No Comments

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

*

WordPress Themes

Blossom Icon Set

Software Top Blogs