1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| <# Script a utiliser dans un shell Exchange
Le script modifie le champs displayname du compte Exchange d un utilisateur en ajoutant une information
a la suite du displayname
Les comptes a modifier sont presentes dans un .csv (par defaut adresse_mail) sous la forme d une adresse mail
Si le compte n est pas trouve une erreur est levee sinon le compte Exchange est modifie
Les resultats sont enregistres dans trois fichiers de log.
Si le compte a ete modifie : UccessUsers.log
Si le compte n a pas ete trouve : UsersNotExist.log
Si le compte a ete trouve mais n a pas ete modifie : FailedUsers.log
#>
# definition des variables
$Users = Import-Csv C:\adresse_mail.csv
$failedUsers = @()
$usersNotExist =@()
$successUsers = @()
$VerbosePreference = "Continue"
$LogFolder = "C:\Scripts"
ForEach ($User in $Users)
{
$mailAddress = ($User.emailAddress).ToLower()
$value = (Get-User -Filter "WindowsEmailAddress -eq '$mailAddress'").WindowsEmailAddress.IsValidAddress
try {
if ($value -eq $True){
$dn = (Get-User -Filter "WindowsEmailAddress -eq '$mailAddress'").displayname
$dn = $dn + " (MODIFICATION)"
Set-User $User.emailAddress -Displayname $dn
Write-Verbose "[PASS] Compte $dn modifie"
$dn
$successUsers += $dn
$sucessUsers
}
else {
Write-Warning "[WARNING] le compte $dn est inconnu"
$usersNotExist += $dn
}
}
catch {
Write-Warning "[ERROR] impossible de modifier [$dn]"
$failedUsers += $dn
}
}
if ( !(test-path $LogFolder)) {
Write-Verbose "Creation du repertoire [$($LogFolder)] "
new-item $LogFolder -Force
}
Write-verbose "Ecriture logs"
$failedUsers | out-file -FilePath $LogFolder\FailedUsers.log -Force -Verbose
$usersNotExist | out-file -FilePath $LogFolder\UsersNotExist.log -Force -Verbose
$successUsers | out-file -FilePath $LogFolder\SuccessUsers.log -Force -Verbose |