Archives par étiquette : Quotas

Modification des paramètres de quota.

Lors de la modification des paramètres de quota sur une boite aux lettres, on constate que le paramétrage prend longtemps avant d’être appliquer.

Il s’agit d’une délais d’application par défaut de deux heures dans le configuration de Exchange 2007.

Le seul moyen de contourner ce délais est de redémarrer le service MSExchangeIS. Et ca, c’est pas cool, surtout pour les 5000 autres utilisateurs du serveur.

Je conseil donc d’être vigilent lors des modifications et diplomate lorsque votre PDG se retrouve bloqué.

Pour les impatients, j’ai trouvé un article ici qui propose de modifier le délais d’attente. (J’ai pas testé.)

Enlever les petites boites d’un groupe.

L’objectif est d’enlever les boites aux lettres de moins de 400MB d’un groupe qui sert à mettre en place des exclusions de quotas.
La suite de Ajoute de boites aux lettres dans un groupe.

$group = "GR_EXCEPTION_QUOTA"
Get-QADGroupMember -Identity $group | foreach {
$user = $_.UserPrincipalName
$userlt400 = Get-MailboxStatistics -Identity $user -ErrorAction silentlycontinue
	if ( $userlt400.totalitemsize -lt 400MB ) {
	Remove-QADGroupMember -Identity $group -Member $userlt400.LegacyDN
	}
}

Configurer un garde fou sur les boites.

Si vos boites n’ont pas de quotas, il est tout de même préférable de configurer un garde fou.
Ce script va configurer un quota automatiquement par rapport à la taille actuelle de la boite.

Get-Mailbox -Server CCR001 -ResultSize unlimited | where-Object { $_.database -match "paris" -and $_.UseDatabaseQuotaDefaults -eq $false -and $_.CustomAttribute6 -ne "NoQuota"} | foreach {
$user = $_.identity
$userstats = Get-MailboxStatistics -Identity $user
$mbsize = $userstats.TotalItemSize
$sendquota = $userstats.TotalItemSize + 500MB
$warquota = $userstats.TotalItemSize + 400MB

Write-Host $user.displayname $mbsize $sendquota $warquota -Separator ","
Set-Mailbox -Identity $user -ProhibitSendQuota $sendquota -IssueWarningQuota $warquota
}

Traiter les membres d’un groupe

Permet d’effectuer une tache d’administration sur les membres d’un groupe.

Get-Group -Identity "Group_Name" |
	ForEach-Object {
		$groupdn=("LDAP://"+$_.DistinguishedName)
		$group = ([ADSI]$groupdn)
		""
		"Nom du groupe"
		"-------------"
		$_.DistinguishedName
		""
		"Liste des membres du groupe"
		"---------------------------"

		ForEach ($member in $group.member){
		
			$member
#	Desactivation du quota *EXCEPTION_QUOTA*
			Set-Mailbox -Identity $member -IssueWarningQuota Unlimited -ProhibitSendQuota Unlimited -ProhibitSendReceiveQuota Unlimited -UseDatabaseQuotaDefaults $false 
		}
	}

Afficher les boites restreintes par un quota.

Affiche les boites de plus de 500MB qui ont l’héritage de configuration des quotas actif.
J’ai ajouté un filtre sur le serveur et les databases d’une filiale.

Get-MailboxStatistics -Server CCR004| Where {$_.Database -match "paris" -and $_.TotalItemSize -gt 500MB} | ForEach-Object { $size = $_.TotalItemSize ; Get-mailbox -Identity $_.displayname | where-object { $_.UseDatabaseQuotaDefaults -eq "true" }}| Select-Object displayname,alias,database, @{ expression={$size.Value.ToMB() } ;label="TotalItemSize (MB)" }

Ajoute de boites aux lettres dans un groupe.

Permet d’ajouter les boites de plus de 400MB dans un groupe d’exclusion.
Couplé avec Désactive l’héritage du quota sur un groupe. permet la mise en place des quota en douceur.

Get-MailboxStatistics -Server ServerMB001| Where {$_.Database -match "compta" -and $_.TotalItemSize -gt 400MB} | ForEach-Object {
$user = Get-Mailbox -Identity $_.identity
Add-QADGroupMember -Identity GR_EXCEPTION_QUOTA -Member $user.UserPrincipalName
}

Désactive l’héritage du quota sur un groupe.

Ce script à lancer régulièrement, désactive le quota sur les membres d’un groupe et l’active sur tous les autres.

#	Liste des comptes sans héritage et replace l'heritage si l'utilisateur n'est pas dans le groupe "no_quota".

Get-Mailbox -ResultSize Unlimited |
Where-Object { $_.UseDatabaseQuotaDefaults -eq $false } |
	ForEach-Object {
		$User = get-qaduser -samaccountname $_.Alias
		if ($User.memberof -match "no_quota")
		{}
		else
			{
			$User.samaccountname
			Set-Mailbox $User.samaccountname -UseDatabaseQuotaDefaults $true
			}
	}
#	Recherche des groupes "no_quota" et enlève l'héritage si l'utilisateur est dans ce groupe.

Get-Group -Identity no_quota |
	ForEach-Object {
		$groupdn=("LDAP://"+$_.DistinguishedName)
		$group = ([ADSI]$groupdn)

		ForEach ($member in $group.member){
			Set-Mailbox -Identity $member -IssueWarningQuota Unlimited -ProhibitSendQuota Unlimited -ProhibitSendReceiveQuota Unlimited -UseDatabaseQuotaDefaults $false
		}
	}