
J’ai trouvé un script très utile permettant de réduire la taille de toutes les images contenu dans un dossier.
Ça marche nickel.
[reflection.assembly]::LoadWithPartialName("System.Drawing")
$toresize = "..\images"
$SizeLimit=1024 # required size of picture's long side
$logfile="resizelog.txt" # log file for errors
Get-ChildItem -recurse $toresize -include *.jpg | foreach {
$parent = $_.Directory.name
$backupdir = ".\backup\" + $parent + "\"
If (-not (Test-Path $backupdir)) { New-Item -ItemType Directory -Name $backupdir }
$backup = $backupdir + "\" + $_.Name
Copy-Item -Path $_.fullname -Destination $backup
$OldBitmap = new-object System.Drawing.Bitmap $_.FullName # open found jpg
if ($error.count -ne 0) { # error handling
$error | out-file $logfile -append -encoding default
$error[($error.count-1)].TargetObject | out-file $logfile -append -encoding default
echo $_>>$logfile
$error.clear()
}
$LongSide=$OldBitmap.Width # locating long side of picture
if ($OldBitmap.Width -lt $OldBitmap.Height) { $LongSide=$OldBitmap.Height }
if ($LongSide -gt $SizeLimit) { # if long side is greater than our limit, process jpg
if ($OldBitmap.Width -lt $OldBitmap.Height) { # calculate dimensions of picture resize to
$newH=$SizeLimit
$newW=[int]($OldBitmap.Width*$SizeLimit/$OldBitmap.Height)
} else {
$newW=$SizeLimit
$newH=[int]($OldBitmap.Height*$newW/$OldBitmap.Width)
}
$NewBitmap = new-object System.Drawing.Bitmap $newW,$newH # create new bitmap
$g=[System.Drawing.Graphics]::FromImage($NewBitmap)
$g.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic # use high quality resize algorythm
$g.DrawImage($OldBitmap, 0, 0, $newW, $newH) # resize our picture
$name=$_.DirectoryName+"\"+$_.name+".new" # generating name for new picture
$NewBitmap.Save($name, ([system.drawing.imaging.imageformat]::jpeg)) # save newly created resized jpg
$NewBitmap.Dispose() # cleaning up our mess
$OldBitmap.Dispose()
$n=get-childitem $name
if ($n.length -ge $_.length) { # if resized jpg has greater size than original
Write-host -NoNewLine "+" # draw "+"
$n.delete() # and delete it
} else { # if resized jpg is smaller than original
if ($n.Exists -and $_.Exists) {
$name=$_.FullName
$_.Delete() # delete original
$n.MoveTo($name) # rename new file to original name (replace old file with new)
echo ($Name + " " + $LongSide) # write its name for visual control
}
}
} else { # if long side is smaller than limit, draw dot for visual
Write-host -NoNewLine "."
$OldBitmap.Dispose()
}
} |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Voici une commande pour récupérer le top 10 des boites Exchange de votre organistation.
Get-Mailbox -ResultSize unlimited | Get-MailboxStatistics | Sort-Object -Descending -Property TotalItemSize | Select-Object DisplayName,TotalItemSize -First 10 |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
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 |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
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.
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)" } |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Liste les boites d’une database faisant une taille entre 700MB et 900MB.
Get-MailboxStatistics -Database Server1\DB2 | Where-Object { $_.totalitemsize -gt 700mb -and $_.totalitemsize -lt 900Mb } |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Permet d’afficher les taille des boites se trouvant dans une OU.
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)" } |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Liste toutes les boites aux lettres d’une taille supérieure à 1Go dans les database dont le nom contient une chaine de caratère.
La commande renvoi le Display Name, le nom de la mailbox database et le taille de la boite aux lettres.
Get-MailboxDatabase | Where {$_.identity -match "paris" } | Get-MailboxStatistics | Where {$_.TotalItemSize -gt 1GB} | Sort-Object -Property TotalItemSize -Descending | ft displayname, database, @{ expression={$_.TotalItemSize.Value.ToMB() } ;label=”TotalItemSize (MB)” } |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
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 |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Affiche l’espace disque disponible en taille et pourcentage de toutes les partitions sur un serveur.
Get-WmiObject win32_volume -computer "Server Name" | Sort-Object -Property Name | ft SystemName, Name,
@{ e={[math]::round($_.FreeSpace/1GB,2) } ;l="FreeSpace (GB)" },
@{ e={[math]::round(($_.FreeSpace*100)/$_.Capacity) } ;l="PourcentFree" } |
Cet article vous a aidé ou intéressé? Alors partagez-le en cliquant sur les boutons ci-dessous :
Commentaires récents