Archives par étiquette : Databases

Exporter la taille des boites d’un groupe.

Cette commande exporte la taille des boites aux lettres membre d’un groupe, il indique la base de données où se trouve la boite.

Get-QADGroupMember -Identity "Groupe_Compta" -SizeLimit 0 | foreach { Get-MailboxStatistics
 -Identity $_.dn -ErrorAction silentlycontinue | ft Displayname, Database, @{ expression={$_.TotalIt
emSize.Value.ToMB() } ;label="TotalItemSize (MB)" } } > Compta_group_size.csv

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.

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
}

Afficher le chemin des DB et SG Exchange 2007.

Permet d’afficher rapidement l’emplacement des Databases et Storage Groups.

Databases:
Afficher la liste complète des Databases:

Get-MailboxDatabase | ft Name,Identity,EdbFilePath

Filter la liste pour certains lecteurs:

Get-MailboxDatabase | where-object { $_.EdbFilePath -match "i:" } | ft Name,Identity,EdbFilePath

Storages Groups:
Afficher la liste complète des Storage Groups:

Get-StorageGroup | ft Identity,Name,LogFolderPath,SystemFolderPath

Filter la liste pour certains lecteurs:

Get-StorageGroup | where-object { $_.LogFolderPath -match "i:" -or $_.SystemFolderPath -match "i:" } | ft Identity,name,LogFolderPath,SystemFolderPath

Créer une Database sur un CCR Exchange.

Créer en Powershell une nouvelle Database sur un cluster Exchange 2007 en CCR.
Le cluster CCR impose un Storage Group pour une Database.

Créer le Storage group:

New-StorageGroup -Server CCR001 -Name SG_Paris_02 -SystemFolderPath G:\Log_Paris_02 -LogFolderPath G:\Log_Paris_02

Créer la Database:

New-MailboxDatabase -StorageGroup CCR001\SG_Paris_02 -Name DB_Paris_02 -EdbFilePath G:\Data_Paris_02\DB_Paris_02.edb

Configuration des quotas:

Set-MailboxDatabase -Identity CCR001\DB_Paris_02 -ProhibitSendQuota 500MB -IssueWarningQuota 400MB -ProhibitSendReceiveQuota Unlimited

Monter la Database:

Mount-Database CCR001\DB_Paris_02

Déplacement de boites aux lettres en masse.

J’ai beaucoup de boites aux lettres à déplacer ce soir.
L’opération consiste à déplacer des boites aux lettres de différentes Databases sources vers différentes Databases cibles, je me suis donc prévu un petit plan.
Un fois que j’ai préparé un beau p’tit fichier d’import qui définit qui va où, je positionne un « CustomAttribute » pour définir la Database cible sur les boites aux lettres à traiter.

Import-Csv -Path .\Move_Lundi.txt | Foreach { Set-Mailbox -Identity $_.displayname -CustomAttribute4 $_.target }

Je vérifie que tout est OK.

Import-Csv -Path .\Move_Lundi.txt | Foreach { Get-Mailbox -Identity $_.displayname | ft DisplayName,Database,CustomAttribute4 }

Pour pouvoir lancer plus déplacement en parallèle, je vais traiter les databases sources une par une.

Get-Mailbox -Database SRV001\DB_IDF_2 | Where-Object { $_.CustomAttribute4 -eq "Target_Monday_IDF_7" } | Move-Mailbox -TargetDatabase SRV001\DB_IDF_7

J’en lance plusieurs à la fois.

Get-Mailbox -Database SRV001\DB_IDF_3 | Where-Object { $_.CustomAttribute4 -eq "Target_Monday_IDF_7" } | Move-Mailbox -TargetDatabase SRV001\DB_IDF_5

Voila, c’est parti, j’attends la fin en gardant un oeuil sur les disques de logs.

Lister les boites d’une OU dans une databases.

Cette commande permet d’afficher les boites d’une OU se trouvant dans des mailbox databases qui ne correspondent pas.
Dans un gros environnement, cela peut arriver et avoir des conséquences sur la gestion des quotas et limites.

Get-Mailbox -ResultSize Unlimited | Where-Object { $_.OrganizationalUnit -match "OU_Comptabilite" -and $_.database -match "MDB_Direction" } | Ft DisplayName,Alias,Database

Afficher le status des Mailbox Database.

Affiche le status de toutes la mailbox database de l’organisation.

Get-Mailboxdatabase -status | Ft Name, BackupInProgress, Mounted, LastFullBackup, LastIncrementalBackup

Utile pour connaitre le status, savoir si la mailbox database est en “Backup in progress” et la date de la dernière sauvegarde.>

Calcul de la taille des bases edb.

Liste la taille du fichier .edb de chaque bases de votre organisation.

Liste tous les serveurs mailbox, identifie le chemin de la base pour chaque mailboxdatabase et calcul la taille du fichier.

$exchangeservers = Get-ExchangeServer |where-object {$_.admindisplayversion.major -eq 8 -and $_.IsMailboxServer -eq $true }
foreach ($server in $exchangeservers)
{
$db = Get-MailboxDatabase -server $server
foreach ($objItem in $db)
{
$edbfilepath = $objItem.edbfilepath
$path = "`\`\" + $server + "`\" + $objItem.EdbFilePath.DriveName.Remove(1).ToString() + "$"+ $objItem.EdbFilePath.PathName.Remove(0,2)
$dbsize = Get-ChildItem $path
$ReturnedObj = New-Object PSObject
$ReturnedObj | Add-Member NoteProperty -Name "Server\StorageGroup\Database" -Value $objItem.Identity
$ReturnedObj | Add-Member NoteProperty -Name "Size (MB)" -Value ("{0:n2}" -f ($dbsize.Length/1024KB))
Write-Output $ReturnedObj
}
}