Le script suivant permet de restaurer une boîte aux lettres pour un utilisateur à partir d’une sauvegarde réalisée. Il mérite toutefois quelques explications complémentaires. Le script de restauration n’utilise pas comme destination la boîte aux lettres de l’utilisateur, mais une boîte de restauration (par exemple : recovery@societe.com)
Script de restauration Exchange
que vous devrez créer dans la console d’administration MOAC. La raison est que la restauration de l’image remet l’état de la boîte aux lettres telle qu’elle était au moment de sa sauvegarde et qu’il n’est pas possible de récupérer uniquement le dossier ou le message que vous souhaitez restaurer.
#
# Microsoft BPOS Script
#
# NAME: Restore-MSOnlineUserMailbox.ps1
#
# AUTHOR: Arnaud Alcabez
# DATE : 20/07/2010
#
# COMMENT: Use this script to restore a backup user mailbox into a temporary mailbox
#
#
#
==============================================================================================
cls
# Enlarge the console to display location results
mode con cols=180
# Load the Exchange Transporter Cmdlets if there are not loaded
$ExCmd = $False
$Modules = Get-PSSnapIn
ForEach ($_.Name in $Modules) {if ($_.Name -eq « Microsoft.Exchange.Transporter ») { $ExCmd = $True
}}
If ($ExCmd -eq $False) {Add-PSSnapin Microsoft.Exchange.Transporter}
If ($ExCmd -eq $False) {Write-Host « Note: Exchange Online Cmdlets loaded… »}
Write-Host
Write-Host ‘┌─────────────────────────────────────────────────┒
-ForegroundColor white -BackgroundColor darkred
Write-Host ‘│ │’ -ForegroundColor white -BackgroundColor darkred
Write-Host ‘│ Enter your Exchange Online Admin ID account │’ -ForegroundColor white
-BackgroundColor darkred
Write-Host ‘│ │’ -ForegroundColor white -BackgroundColor darkred
Write-Host ‘└─────────────────────────────────────────────────┘’
-ForegroundColor white -BackgroundColor darkred
Write-Host
# Get the login ID for the BPOS admin account
$Credlogin = Read-Host ‘Administrator Login ID’
$Credpwd = Read-Host ‘Password’ -AsSecureString
Write-Host
# Form the BPOS encrypted credential information and store it in a variable to be passed to upcoming commands
$Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Credlogin, $Credpwd
Write-Host
Write-Host ‘┌─────────────────────────────────────────────────┒
-ForegroundColor white -BackgroundColor darkblue
Write-Host ‘│ │’ -ForegroundColor white -BackgroundColor darkblue
Write-Host ‘│ Restore service for mailbox users on the │’ -ForegroundColor white -BackgroundColor
darkblue
Write-Host ‘│ EMEA Datacenter for Microsoft Online Services │’ -ForegroundColor white
-BackgroundColor darkblue
Write-Host ‘│ │’ -ForegroundColor white -BackgroundColor darkblue
Write-Host ‘└─────────────────────────────────────────────────┘’
-ForegroundColor white -BackgroundColor darkblue
Write-Host
#Enter the usermailbox or (none) to check all mailboxes
$BkpFile = Read-Host ‘Enter the path and the backuped file name to restore’
Write-Host
$RstMbx = Read-Host ‘Enter the restore mailbox name (FQDN) – The restored mailbox should be active’
$RstPwd = Read-Host ‘Enter a new password for the restore mailbox’
$BkpUser = Read-Host ‘Enter the user name (FQDN) to give access to the restored mailbox’
Write-Host
Write-Host ‘INFO: Username and Backup File verification…’
Write-Host
#Verify Backup File Path and user address
$FileExists = Test-Path $BkpFile
if ($FileExists -eq $false) {
Write-Host ‘WARNING: The backup file’ $Bkpfile ‘doesn »t exist’ -ForegroundColor white
-BackgroundColor darkred
Write-Host
Break
}
Else {
Write-Host ‘INFO: The backup file’ $Bkpfile ‘is checked’
Write-Host
}
$UsrExist = $False
$Colusers = Get-MSOnlineUser -Credential $cred -Enabled -ResultSize 10000
ForEach($User in $Colusers){
If ($User.Identity -eq $BkpUser) {$UsrExist = $True}
}
If ($UsrExist -eq $False) {
Write-Host ‘WARNING: The username doesn »t exist’ -ForegroundColor white -BackgroundColor darkred
Write-Host
Break
}
Else {
Write-Host ‘INFO: The username’ $BkpUser ‘is checked’
Write-Host
}
$RstExist = $False
$Colusers = Get-MSOnlineUser -Credential $cred -Enabled -ResultSize 10000
ForEach($User in $Colusers){
If ($User.Identity -eq $RstMbx) {$RstExist = $True}
}
If ($RstExist -eq $False) {
Write-Host ‘WARNING: The restore mailbox doesn »t exist or is inactive’ -ForegroundColor white
-BackgroundColor darkred
Write-Host
Break
}
Else {
Write-Host ‘INFO: The restore mailbox’ $RstMbx ‘is checked’
Write-Host
}
#Create Give Access Permission on the Restore Mailbox
Add-MSOnlineMailPermission -Identity $RstMbx -TrustedUser $BkpUser –GrantFullAccess:$True
-Credential $Cred | Out-File « .\ChangePassword.log »
Set-MSOnlineUserPassword -Quiet -Identity $RstMbx -Password $RstPwd
-ChangePasswordOnNextLogon:$false -Credential $cred | Out-File « .\ChangePassword.log »
Remove-Item ‘.\ChangePassword.log’
Write-Host
Write-Host ‘INFO: The restore mailbox’ $RstMbx ‘is now enabled for the user’ $BkpUser
Write-Host
Read-Host ‘INFO: Appuyez sur [Entrée] pour démarrer la restauration de la boîte aux lettres’
Import-TransporterBinary -Quiet -Sourcefilename $BkpFile | Add-XsExchangeOnlineItem -identity
$RstMbx -Credential $Cred
#Paramètres du serveur SMTP
$SMTPServer = « smtp.societe.com »
$SMTPCred = « admin@societe.com »
$SMTPPwd = « Password »
$MailFrom = « admin@societe.com »
$Subject = ‘MESSAGE: Votre boîte de restauration est disponible…’
$Body = ‘Pour accéder à votre boîte d »archives, veuillez quitter Outlook. Ouvrez votre profil de
messagerie ‘ + $BkpUser + ‘ (Panneau de configuration / Courrier), sélectionnez votre profil Microsoft Online Services, cliquez sur Modifier et indiquez dans l »onglet Avancé / Ouvrir ces boîtes aux lettres supplémentaires / Ajouter / ‘ + $RstMbx + ‘. Ouvrez à nouveau Outlook et sélectionnez les éléments à récupérer de la boîte de restauration vers votre boîte aux lettres de messagerie en faisant glisser les éléments entre les deux boîtes.’
$mail = new-object Net.Mail.MailMessage
$mail.From = new-object Net.Mail.MailAddress($MailFrom)
$mail.To.Add($BkpUser)
$mail.Subject = $Subject
$mail.Body = $Body
$smtp = new-object Net.Mail.SmtpClient($SMTPserver)
$smtp.Credentials = new-object Net.NetworkCredential($SMTPCred,$SMTPPwd)
$smtp.Send($mail)
Write-Host ‘INFO: La restauration est terminée. Un message a été adressé à l »utilisateur’ $BkpUser ‘pour l »informer de sa disponibilité.’
Write-Host
Le script de restauration utilise donc une boîte aux lettres spécifique, puis donne les droits à l’utilisateur d’ouvrir cette boîte et enfin, lui envoie un message pour lui expliquer comment accéder à sa boîte de recouvrement. Afin de lui envoyer un message, vous devrez adapter les arguments indiqués en rouge de manière à ce qu’ils s’appliquent à votre environnement. Il s’agit des informations correspondant à l’emplacement du service SMTP et des informations d’authentification vous permettant d’envoyer un message. La dernière valeur $MailFrom contient l’identité du champ De: du message qui sera envoyé à l’utilisateur.
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Chiffrements symétrique vs asymétrique
- Et si les clients n’avaient plus le choix ?
Les plus consultés sur iTPro.fr
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- À l’aube de 2026, le SaaS entre dans une nouvelle phase
- Face à l’urgence écologique, l’IT doit faire sa révolution
- IoT et cybersécurité : les bases que chaque décideur doit maîtriser
Articles les + lus
CES 2026 : l’IA physique et la robotique redéfinissent le futur
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
À la une de la chaîne Tech
- CES 2026 : l’IA physique et la robotique redéfinissent le futur
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
- D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
