PowerShell – Désactiver ActiveSync & OWA sur Exchange 2010

Le PowerShell est à Windows ce que le script bash est à Linux, ça simplifie la vie et ca fais gagner du temps, donc j’en use et j’en abuse.

D’ailleur je vais vous présenter deux petits scripts bien utile qui permettent de désactiver l’ActiveSync et l’OWA pour tout le parc sauf les users d’un groupe.

Exchange-Server-PowerShell

La première chose à faire et de créer nos groupes, pour l’OWA ca sera « OWA Enabled » et pour l’ActiveSync « ActiveSync Enabled », et d’y ajouter les utilisateur qui pourront accéder, rien de bien compliqué. La seconde étape et de créer les fichier Powershell et de les exécuter via le Shell Exchange.


ActiveSync.ps1

#Load User Group
$asUsers = get-group "ActiveSync Enabled"
#Load All Users
$allUsers = Get-Mailbox -resultsize Unlimited

foreach ($user in $allUsers) {
#Set tmpUserCas variable to CasMailbox object of the user
$tmpUserCas = Get-CASMailbox $user

#Check if user is a member of the group
if($asUsers.Members -Contains $User.DistinguishedName) {
#Enable ActiveSync
if ($tmpUserCas.ActiveSyncEnabled -ne $true) {
$user | Set-CASMailbox -ActiveSyncEnabled $true
Write-Host $user.Name "Is part of" $asUsers.Name "||| User's ActiveSync Enabled"
}
else {Write-Host $user.Name "Is part of" $asUsers.Name "||| User's ActiveSync Already Enabled" }
}
else {
#Check if User's ActiveSync is enabled
if ($tmpUserCas.ActiveSyncEnabled -eq $true) {
#Turn off user's activesync
$user | Set-CASMailbox -ActiveSyncEnabled $false
Write-Host $user.Name "Is NOT part of" $asUsers.Name "||| User's ActiveSync Disabled"
}
else { Write-Host $user.Name "Is NOT part of" $asUsers.Name "||| User's ActiveSync Already Disabled"}
}
}

OWA.ps1

#Load User Group
$asUsers = get-group "OWA Enabled"
#Load All Users
$allUsers = Get-Mailbox -resultsize Unlimited

foreach ($user in $allUsers) {
#Set tmpUserCas variable to CasMailbox object of the user
$tmpUserCas = Get-CASMailbox $user

##Check if user is a member of the group
if($asUsers.Members -Contains $User.DistinguishedName) {
#Enable OWA
if ($tmpUserCas.OWAEnabled -ne $true) {
$user | Set-CASMailbox -OWAEnabled $true
Write-Host $user.Name "Is part of" $asUsers.Name "||| User's OWA Enabled"
}
else {Write-Host $user.Name "Is part of" $asUsers.Name "||| User's OWA Already Enabled" }
}
else {
#Check if User's OWA is enabled
if ($tmpUserCas.OWAEnabled -eq $true) {
#Turn off user's OWA
$user | Set-CASMailbox -OWAEnabled $false
Write-Host $user.Name "Is NOT part of" $asUsers.Name "||| User's OWA Disabled"
}
else { Write-Host $user.Name "Is NOT part of" $asUsers.Name "||| User's OWA Already Disabled"}
}
}

Si vous avez besoin de scheduler une tache quotidienne qui executera ces scripts, il faut dans un premier temps ajouter au début des PS1 cette ligne, elle permet d’ajouter le snap-in pour interpréter les commandes Exchange 2010 (Différent pour Exchange 2007)

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010

Ensuite nous pourrons appeler un fichier batch contenant ces deux lignes :

Powershell -command "& {E:\ActiveSync.ps1 }" Powershell -command "& {E:\OWA.ps1 }"


...BofBienTrès BienTop ! (Soit le premier à voter)
Loading...

Mathieu

Je suis actuellement Ingénieur Système spécialisé dans le design d'environnements cloud virtualisés. Adepte des technologies de VMware, Nutanix, Citrix ou Microsoft je propose à travers ce blog diverses astuces de troubleshooting.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *