Archive

Articles taggués ‘Mailbox’

Modification des droits sur les Databases.

Certaines applications connectées aux serveurs Exchange nécessite des droits pour intéragir avec les boites aux lettres.
C’est le cas d’applications type messagerie unifiées Astraa, Cisco… qui utilisent le connecteur IMAP pour déposer des messages et vérifier si le message vocal a été lu.

?View Code POWERSHELL
Get-MailboxDatabase -Server CCR004 | Where-Object { $_.name -match "IDF"} | foreach {
$dn = $_.DistinguishedName
Add-ADPermission -Identity $dn -User "messucp.idf" -ExtendedRights Send-As
Add-ADPermission -Identity $dn -User "messucp.idf" -ExtendedRights Receive-As
}

Exporter une boite aux lettres en PST.

Ce Script automatise l’exportation d’une boite aux lettres dans un fichier PST.

Pour rappel, il y a des pré-requis pour faire des exportations de boites aux lettres.
1- OS 32bits (XP ou Windows Server) (Pas testé sur Seven)
2- Client Outlook. (Outlook 2003 SP2 Minimum)
3- Exchange 2007 Management Tools

?View Code POWERSHELL
$mbal = Read-Host "Please enter the mailbox"
$musr = [Environment]::UserName
 
 
Add-MailboxPermission -Identity $mbal -AccessRights FullAccess -InheritanceType All -User $musr
$pst = "I:\PSTDATA\" + $mbal +".pst"
 
Export-Mailbox -Identity $mbal -PSTFolderPath $pst -Confirm:$false
 
 
Remove-MailboxPermission -Identity $mbal -AccessRights FullAccess -InheritanceType All -User $musr -Confirm:$false

Espace disque libre sur les serveurs de BAL.

Ce script affiche la taille et le pourcentage d’espace disque libre sur tous les volumes montés sur les serveurs de boites aux lettres.

?View Code POWERSHELL
$mbserver = Get-MailboxServer 
Foreach ($server in $mbserver) { 
"___________" 
"" 
$server.name 
"___________" 
"" 
Get-WmiObject win32_volume -ComputerName $server.name | Sort-Object -Property capacity | Format-Table  @{e={$_.systemname};n="Server" }, @{e={$_.name};n="Volume" }, @{ e={[math]::round($_.Capacity/1GB,2)};n="Capacity (GB)" }, @{ e={[math]::round($_.FreeSpace/1GB,2)};n="FreeSpace (GB)" }, @{ e={[math]::round(($_.FreeSpace*100)/$_.Capacity) };n="PourcentFree" } }

Collecter les events logs à distance.

Ce script permet de collecter dans un fichier Excel les events log des résultats des online defrag sur tous les serveurs de boites aux lettres de l’organisation.
Un fois que vous avez le résultat des défragmentation online, vous pouvez évaluer si il est pertinent d’effectuer une défragmentation offline sur certaines Databases.

?View Code POWERSHELL
$a = New-Object -comobject Excel.Application
 
$a.Visible = $True
 
$b = $a.Workbooks.Add()
$c = $b.Worksheets.Item(1)
 
$col = 1
$ligne = 1
 
$c.Cells.Item(1,1) = "Server"
$c.Cells.Item(1,2) = "Database"
$c.Cells.Item(1,3) = "Date"
$c.Cells.Item(1,4) = "Free space"
 
$ligne++
 
$ExchServer = Get-MailboxServer
foreach ($Server in $ExchServer){
 
$WmidtQueryDT = [System.Management.ManagementDateTimeConverter]::ToDmtfDateTime([DateTime]::Now.AddDays(-1))
$1221 = Get-WmiObject -computer $Server -query ("Select * from Win32_NTLogEvent Where Logfile='Application' and Eventcode = '1221' and TimeWritten >='" + $WmidtQueryDT + "'")
 
foreach ($event in $1221){
$database = $event.message.split('"')[1]
$size = $event.message.split('"')[2].split(" ")[2]
$date = $event.ConvertToDateTime($event.timewritten)
 
	$col = 1
	$c.Cells.Item($ligne,$col) = [string]$Server
	$col++
	$c.Cells.Item($ligne,$col) = [string]$database
	$col++
	$c.Cells.Item($ligne,$col) = [string]$date
	$col++
	$c.Cells.Item($ligne,$col) = [string]$size
	$ligne++
 
}
}
Categories: Exchange 2007 Tags: , , ,

Créer une DL pour les boites d’une database.

Permet de créer rapidement un groupe de distribution pour la communication aux boites d’une database.

?View Code POWERSHELL
New-DistributionGroup -OrganizationalUnit "domain.local/OU02_Paris" -Name OU02-DB_Paris_5-BAL -Type Security -SamAccountName OU02-DB_Paris_5-BAL
Get-Mailbox -Database CCR001\DB_Paris_5 | foreach { Add-DistributionGroupMember -Identity OU02-DB_Paris_5-BAL -Member $_.DistinguishedName }

Exporter les boites avec forwards.

Export des boites aux lettres qui ont des forwards actifs.

?View Code POWERSHELL
$resfile = New-Item -ItemType file -Path liste_forwards.csv -Force
 
Add-Content -Path $resfile -Value "MailboxDisplayName,MailboxAlias,MailContactDisplayName,MailcontactOrganizationalUnit,MailcontactExternalEmailAddress"
 
 
get-mailbox -ResultSize unlimited | Where-Object { $_.ForwardingAddress -ne $null } | ForEach-Object { 
$forward = Get-Recipient -Identity $_.ForwardingAddress
	if ( $forward.RecipientType -eq "MailContact") {
	$mailc = Get-MailContact -Identity $forward.alias
	Add-Content -Path $resfile -Value "$($_.name),$($_.alias),$($mailc.displayname),$($mailc.OrganizationalUnit),$($mailc.ExternalEmailAddress)"
	}
	else {}
 
}

Lister les boites entre deux tailles.

Liste les boites d’une database faisant une taille entre 700MB et 900MB.

?View Code POWERSHELL
Get-MailboxStatistics -Database Server1\DB2 | Where-Object { $_.totalitemsize -gt 700mb -and $_.totalitemsize -lt 900Mb }
Categories: Exchange 2007 Tags: , ,

Affiche la taille des boites d’une OU.

Permet d’afficher les taille des boites se trouvant dans une OU.

?View Code POWERSHELL
Get-Mailbox -OrganizationalUnit "domain.local/OU_FI00/OU_Compta" | Get-MailboxStatistics | Sort-Object -Property TotalItemSize -Descending | ft displayname, database, @{ expression={$_.TotalItemSize.Value.ToMB() } ;label="TotalItemSize (MB)" }

Exchange User Monitor.

Exmon est un outil permetant de visualiser en temps réelle l’utilisation du serveur de boites aux lettres par les utilisateurs.

exmon02

A télécharger ici.

Il m’est arrivé d’avoir des problème pour le lancer.

Message: Unknown StartTrace Error (183)

En passant les commandes suivantes, j’ai réussi à resoudre le problème.

Tracelog -l
Tracelog -stop "Exchange Event Trace"

Tracelog à télécharger ici.

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.

?View Code POWERSHELL
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
}
Categories: Exchange 2007 Tags: , ,