Archive

Archives pour 09/2010

Enlever les petites boites d’un groupe.

L’objectif est d’enlever les boites aux lettres de moins de 400MB d’un groupe qui sert à mettre en place des exclusions de quotas.
La suite de Ajoute de boites aux lettres dans un groupe.

?View Code POWERSHELL
$group = "GR_EXCEPTION_QUOTA"
Get-QADGroupMember -Identity $group | foreach {
$user = $_.UserPrincipalName
$userlt400 = Get-MailboxStatistics -Identity $user -ErrorAction silentlycontinue
	if ( $userlt400.totalitemsize -lt 400MB ) {
	Remove-QADGroupMember -Identity $group -Member $userlt400.LegacyDN
	}
}
Categories: Exchange 2007 Tags: , ,

Configurer un garde fou sur les boites.

Si vos boites n’ont pas de quotas, il est tout de même préférable de configurer un garde fou.
Ce script va configurer un quota automatiquement par rapport à la taille actuelle de la boite.

?View Code POWERSHELL
Get-Mailbox -Server CCR001 -ResultSize unlimited | where-Object { $_.database -match "paris" -and $_.UseDatabaseQuotaDefaults -eq $false -and $_.CustomAttribute6 -ne "NoQuota"} | foreach {
$user = $_.identity
$userstats = Get-MailboxStatistics -Identity $user
$mbsize = $userstats.TotalItemSize
$sendquota = $userstats.TotalItemSize + 500MB
$warquota = $userstats.TotalItemSize + 400MB
 
Write-Host $user.displayname $mbsize $sendquota $warquota -Separator ","
Set-Mailbox -Identity $user -ProhibitSendQuota $sendquota -IssueWarningQuota $warquota
}

Trouver les fichiers datant de plus d’un mois.

Dans la continuité de l’article précédent voici comment afficher tous les fichiers non modifiés depuis plus d’un mois.

?View Code POWERSHELL
$date= (get-date).AddMonths(-1)
Get-ChildItem * | Where-Object {$_.LastWriteTime -lt $date} | Select-Object LastWriteTime,Name,DirectoryName
Categories: Powershell Tags:

Voyager dans le temps.

Pour voyager dans le temps un peu comme McFly.
Il est possible de définir une valeur de temps dans le passé ou le futur par rapport à la date actuelle.

Dans le futur:
Exemple: Ajouter 10 jours à la date actuelle.

?View Code POWERSHELL
$date = (get-date).AddDays(10)

Dans le passé:
Exemple: Ajouter 6 heures à la date actuelle.

?View Code POWERSHELL
$date = (get-date).AddHours(-6)

Il est possible de remplacer « AddDays » par:
AddHours
AddMinutes
AddMonths
AddSeconds
AddYears

Categories: Powershell Tags:

Marquer les boites dont le compte est désactivé.

Ce script permet de d’appliquer un marquage sur les attributs personnalisés des boites dont le compte AD est désactivé.
Il est ensuite possible d’appliquer plus facilement un filtre afin de déplacer toutes ces boites aux lettres.

?View Code POWERSHELL
Get-Mailbox -Database ccr03\is_paris_10 | foreach {
$user = Get-QADUser -Identity $_.alias
if ($user.AccountIsDisabled -eq "true"){
$user
Set-Mailbox -Identity $user.UserPrincipalName -CustomAttribute4 "Disabled_on_Paris_10"
}
}

Envoyer la valeur d’une variable dans un fichier.

Permet de transférer la valeur d’une variable dans un fichier texte.

?View Code POWERSHELL
$christophe = get-mailbox *christophe*
Set-Content christophe.txt $christophe
Categories: Powershell Tags: ,

Modifier le contenu d’un fichier texte.

Voici quelques commandes pour traiter un fichier texte.

Supprimer les lignes contenant une chaine de caractères:

?View Code POWERSHELL
Get-Content .\fichier.txt | where { $_ -notmatch "Ligne à supprimer" }

Conserver les lignes contenant une chaine de caractères:

?View Code POWERSHELL
Get-Content .\fichier.txt | where { $_ -like "Ligne à garder*" }

Remplacer ou supprimer une chaine de caractère dans toutes les lignes:

?View Code POWERSHELL
Get-Content .\fichier.txt | foreach { $_ -replace "Mailbox: ","" }

Supprimer les lignes vides:

?View Code POWERSHELL
Get-Content .\fichier.txt | where { $_ -ne "$null" }
Categories: Powershell Tags:

Exporter une boite aux lettres en PST.

Ce Script automatise l’exportation d’une boite aux lettres dans un fichier PST.

Pour rappel, il y a des pré-requis pour faire des exportations de boites aux lettres.
1- OS 32bits (XP ou Windows Server) (Pas testé sur Seven)
2- Client Outlook. (Outlook 2003 SP2 Minimum)
3- Exchange 2007 Management Tools

?View Code POWERSHELL
$mbal = Read-Host "Please enter the mailbox"
$musr = [Environment]::UserName
 
 
Add-MailboxPermission -Identity $mbal -AccessRights FullAccess -InheritanceType All -User $musr
$pst = "I:\PSTDATA\" + $mbal +".pst"
 
Export-Mailbox -Identity $mbal -PSTFolderPath $pst -Confirm:$false
 
 
Remove-MailboxPermission -Identity $mbal -AccessRights FullAccess -InheritanceType All -User $musr -Confirm:$false

Modifier la base de registre à distance.

Voici comment modifier la base de registre d’un serveur à distance.

?View Code POWERSHELL
$servername = "SRV001"
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $servername)
$regconf = $reg.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters",$true)
#Ecriture de la valeur.
$regconf.SetValue('EnableAuthenticationTraps','0','DWord')
#Verification de la valeur.
$regconf.GetValue('EnableAuthenticationTraps')

Voici les différents types de valeurs.

Unknown
String
ExpandString
Binary
DWord
MultiString
QWord

Categories: Windows Tags: , ,

Supprimer les lignes en double dans un fichier.

Permet de supprimer le doublon de ligne dans un fichier texte.
Si dans un fichier texte, vous avez plusieurs lignes identiques, cette commande ne retourne qu’une seule fois la ligne.

?View Code POWERSHELL
Type .\export-brut.csv | Select -Unique

Pour revoyer le résultat vers un fichier résultat:

?View Code POWERSHELL
Type .\export-brut.csv | Select -Unique > export-nettoye.csv
Categories: Powershell Tags: ,