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) |
Commande utile pour logger les opération effectuées dans le powershell.
Démarrage de la prise de log:
Créé un fichier de log dans le dossier “Mes documents”
Arrêt de la prise de log:
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.
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.
Permet de vérifier rapidement la connectivité MAPI à toutes les Mailbox Databases de l’organisation.
Test-MAPIConnectivity | fl |
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é.
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.>
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
}
} |
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.
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 |