Archive

Articles taggués ‘Filtre’

Filter les MailContacts sur un nom de domaine.

Je souhaite filter les MailContacts qui transferent les messages vers un domaine spécifique.
En cette période de grand ménage, je cherche a exporter la liste des MailContacts obsolètes.

?View Code POWERSHELL
Get-MailContact -ResultSize unlimited | Where-Object { $_.ExternalEmailAddress -like "*@sc.domain.com" } | Select-Object DisplayName,Alias,ExternalEmailAddress | Export-Csv -Path .\Export\Old_MailContacts.csv
Categories: Exchange 2007 Tags: ,

Marquer les boites présentent dans une liste.

Permet de marquer garce aux « Custom Attributes » un liste de boites aux lettres présentent dans un fichier texte.
Cela me permet ensuite de faire des filtres pour des opérations de maintenance.

?View Code POWERSHELL
Import-Csv -Path .\movefromidf_9.txt | foreach {Set-Mailbox -Identity $_.displayname -CustomAttribute4 "movefromidf_9"}

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

Filtrer les boites dans une fourchette de tailles.

Ce filtre affiche les boites de plus de 650MB et moins de 900MB d’une database et qui n’ont pas le CustomAttribute4 renseigné.

Ce filtre me permet ensuite de lancer un move-mailbox afin d’alléger des databases trop chargées.

?View Code POWERSHELL
Get-Mailbox -Database ccr001\DB_SG_Paris_5 | Where-Object { $_.CustomAttribute4 -ne "mailboxwithblackberry" } | foreach { Get-MailboxStatistics -Identity $_.alias | Where-Object { $_.totalitemsize -gt 650mb -and $_.totalitemsize -lt 900Mb }} | ft displayname, database, @{ expression={$_.TotalItemSize.Value.ToMB() } ;label="TotalItemSize (MB)" }

Afficher les boites restreintes par un quota.

Affiche les boites de plus de 500MB qui ont l’héritage de configuration des quotas actif.
J’ai ajouté un filtre sur le serveur et les databases d’une filiale.

?View Code POWERSHELL
Get-MailboxStatistics -Server CCR004| Where {$_.Database -match "paris" -and $_.TotalItemSize -gt 500MB} | ForEach-Object { $size = $_.TotalItemSize ; Get-mailbox -Identity $_.displayname | where-object { $_.UseDatabaseQuotaDefaults -eq "true" }}| Select-Object displayname,alias,database, @{ expression={$size.Value.ToMB() } ;label="TotalItemSize (MB)" }

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)" }

Combien y a t’il de Christophe dans la boite.

Un p’tit truc rapide pour compter ne nombre Christophe dans la boite.

?View Code POWERSHELL
$christophe = get-mailbox *christophe*
$christophe.count

Il y en a tout de même 249. Pas mal…

Lister les destinataires d’un mass mailing.

Permet de lister les destinataires d’un mass mailing et de les exporter dans un fichier.

?View Code POWERSHELL
get-messagetrackinglog -Server TransportServer01 -Sender sender@hotmail.com -Start "16/09/2009 19:30:00" -End "16/09/2009 20:30:00" -EventID Receive | Where-Object { $_.ClientIp -eq "192.168.1.56"} | Select-Object Timestamp,ServerHostname,Sender,MessageSubject,{$_.Recipients} | Export-Csv -Path massmail01.txt

Traiter aléatoirement une liste de compte.

Permet de traiter de façon aléatoire un certain nombre d’utilisateurs dans une listés dans un fichier.

?View Code POWERSHELL
$impfile = ".\impfile.txt"
$resfile = New-Item -ItemType file -Path $impfile -Force
$expfile = ".\expfile.txt"
Get-Mailbox -Identity *christophe* | Select-Object DisplayName,Alias | Export-Csv -Path $expfile
Add-Content -Path $resfile -Value "DisplayName,Alias"
$result = Get-Content -Path $expfile | Get-Random -Count 4
Add-Content -Path $resfile -Value $result
Import-Csv -path $resfile | foreach {
Get-QADUser -Identity $_.alias | Ft Displayname,UserPrincipalName,PasswordAge,PasswordExpires
}
Categories: Powershell 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