Archive

Articles taggués ‘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.

?View Code POWERSHELL
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.

?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
}

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:

?View Code POWERSHELL
Get-MailboxDatabase | ft Name,Identity,EdbFilePath

Filter la liste pour certains lecteurs:

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

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

?View Code POWERSHELL
Get-StorageGroup | ft Identity,Name,LogFolderPath,SystemFolderPath

Filter la liste pour certains lecteurs:

?View Code POWERSHELL
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:

?View Code POWERSHELL
New-StorageGroup -Server CCR001 -Name SG_Paris_02 -SystemFolderPath G:\Log_Paris_02 -LogFolderPath G:\Log_Paris_02

Créer la Database:

?View Code POWERSHELL
New-MailboxDatabase -StorageGroup CCR001\SG_Paris_02 -Name DB_Paris_02 -EdbFilePath G:\Data_Paris_02\DB_Paris_02.edb

Configuration des quotas:

?View Code POWERSHELL
Set-MailboxDatabase -Identity CCR001\DB_Paris_02 -ProhibitSendQuota 500MB -IssueWarningQuota 400MB -ProhibitSendReceiveQuota Unlimited

Monter la Database:

?View Code POWERSHELL
Mount-Database CCR001\DB_Paris_02
Categories: Exchange 2007 Tags:

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.

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

Je vérifie que tout est OK.

?View Code POWERSHELL
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.

?View Code POWERSHELL
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.

?View Code POWERSHELL
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.

Appliquer un quota sur plusieurs databases.

Permet d’appliquer les quotas sur toutes les databases d’une filiale.

?View Code POWERSHELL
Get-MailboxDatabase -Server CCR001 | Where-Object { $_.name -match "paris" } | Set-MailboxDatabase -IssueWarningQuota 400MB -ProhibitSendQuota 500MB
Categories: Exchange 2007 Tags: ,

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.

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

Compter le nombre de BAL par MailboxDatabase

Utile pour voir rapidement le nombre de boites aux lettres dans une mailbox database.

?View Code POWERSHELL
$mbnumber=0
Get-Mailbox -ResultSize Unlimited | where-object {$_.Database -match "database"} | ForEach-Object{ if ($_.DisplayName -ne $null) {$mbnumber++}}
$mbnumber
Categories: Exchange 2007 Tags: ,

Afficher le status des Mailbox Database.

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

?View Code POWERSHELL
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.>

Categories: Exchange 2007 Tags: ,

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.

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