Envoyer un message en SMTP.

Permet d’envoyer un message SMTP en Powershell.

$expediteur = "sender@doamin.com"
"From : " + $expediteur
$destinataire = "recipient@domain.com"
"To : " + $destinataire
$serveur = "servername"
"By : " + $serveur 
$fichier = "testfile.zip"
$objet = "Test Messagerie by " + $serveur + " at " + [System.DateTime]::Now
"Object : " + $objet
"Date : " + [System.DateTime]::Now
$texte = "--> Message de test <--"
 
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
 
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
 
$client.Send($message)

Categories: Powershell Tags: ,

Enregistrement des cmdlets PowerShell dans des logs.

Commande utile pour logger les opération effectuées dans le powershell.

Démarrage de la prise de log:

Start-Transcript

Créé un fichier de log dans le dossier “Mes documents”

Arrêt de la prise de log:

Stop-Transcript

Categories: Powershell Tags:

Mettre à jour l’OAB.

L’OAB (Offline adress book) est utilisé par les utilisateurs de Outlook utilsant le mode cache.

Outlook 2003 utilise les dossiers publics pour récuperer l’OAB et Outlook 2007 utilise les CAS.

L’OAB créé par le serveur de génération de l’OAB par la commande:

Get-OfflineAddressBook | Update-OfflineAddressBook

L’OAB est stocké dans le dossier public de votre organisation et dans le dossier “C:\Program Files\Microsoft\Exchange Server\ExchangeOAB\6xxxxea-1xxb-4xx4-axx5-8xxxxxxxb du serveur de génération d’OAB.

Attendre l’Event ID: 9107 dans le journal d’application indiquant que la génération de l’OAB est terminé.

L’OAB est ensuite répliquer sur les CAS par la commande:

Get-ClientAccessServer | Update-FileDistributionService -Type "OAB"

Outlook 2003 utilise les dossiers publics pour récuperer l’OAB et Outlook 2007 utilise les CAS.

Dans le dossier “C:\Program Files\Microsoft\Exchange Server\ClientAccess\OAB\6xxxxea-1xxb-4xx4-axx5-8xxxxxxxb.

Le nombre de fichiers dans le dossier de OAB de chaque serveurs doit être identique.

Categories: Exchange 2007 Tags:

Affiche l’état des files d’attente.

Cette commande affiche rapidement l’état de files d’attente de tous les HUB de l’organisation.

Get-ExchangeServer | Where-Object {$_.IsHubTransportServer -eq $True} | Get-Queue | ft Identity, NextHopDomain, MessageCount

Permet de savoir le nombre de messages dans les queues des TransportServer.

Categories: Exchange 2007 Tags: ,

Vérifier la connectivité MAPI sur les Mailbox Database.

Permet de vérifier rapidement la connectivité MAPI à toutes les Mailbox Databases de l’organisation.

Test-MAPIConnectivity | fl

Categories: Exchange 2007 Tags:

Résultat du Online Defrag.

Pour afficher le résultat du jour des online defrag.

$today=Get-date -format d
get-EventLog -LogName Application | where-object {$_.EventID -eq 1221 -and $_.TimeGenerated -match "$today"} | ft Message

Utile pour savoir si un offline defrag est justifié.

Categories: Exchange 2007 Tags:

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.>

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.

$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: ,

Vérification de l’état de réplication de StorageGroup.

Vérifier rapidement l’état des réplications des StorageGroups sur les clusters d’une organisation.Très utile et je conseil de le faire avant de basculé un cluster en CCR.

Get-MailboxServer | Get-StorageGroupCopyStatus | ft Identity, CopyQueueLength, ReplayQueueLength

Cette commande identifie tous les MailboxServer et affiche le StorageGroupCopyStatus pour chacun.

S’assurer que les QueueLenght sont à 0 avant de basculer le nœud actif du cluster.

Categories: Exchange 2007 Tags:

Affiche la taille des mailbox dans une database.

Permet de liste par ordre de taille la liste des mailbox dans une database.

Get-MailboxStatistics -Database "Database Name" | Sort-Object -Property TotalItemSize -Descending | ft displayname, database, @{ expression={$_.TotalItemSize.Value.ToMB() } ;label=”TotalItemSize (MB)}| more