Description : Vous êtes en charge de l’administration d’une infrastructure de messagerie Office 365. La connexion aux services Exchange Online s’opère via des lignes de commande bien distinctes, et ces dernières peuvent être placé à l’intérieure d’un script pour automatiser la connexion. Cependant, afin d’éviter de stocker votre mot de passe en claire dans votre script PowerShell, vous pouvez crypter ce dernier afin qu’il ne soit sécuriser.
Pré-requis :
– PowerShell V2.0 minimum
– Posséder des droits d’administration aux services Exchange Online
1/ Premièrement, il faut taper son mot de passe de connexion afin qu’il soit crypté dans un fichier texte en local sur l’ordinateur :
### Demander à l’utilisateur de saisir son mot de passe de connexion aux services Exchange Online
$secure = Read-Host -assecureString
### Crypter le mot de passe
$encrypted = ConvertFrom-SecureString -secureString $secure -key (1..16)
### Stocker le mot de passe crypté dans le fichier encrypted.txt
$encrypted | Set-Content encrypted.txt
2/ Il faut ensuite enregistrer son mot de passe dans la variable de sécurité système de l’ordinateur (System.Security.SecureString) :
$secure2 = Get-Content encrypted.txt | ConvertTo-SecureString -key (1..16)
3/ On peut désormais utiliser le script suivant pour initialiser la connexion aux services Exchange Online – Office 365 :
if ($MsolDomain -eq $Null){
### Importer le module Exchange Online
Import-Module MSOnline
### Importer le module Active Directory
Import-Module ActiveDirectory
### Renseignez son nom d’utilisateur (UPN) dans la variable $O365User
$O365User = « aasimane@infonovice.priv »
### Le mot de passe crypté est enregistré dans la variable $O365pw
$o365pw = $secure2
### Renseignez les identifiants de connexion Login/password dans la variable $credO365
$credO365 = New-Object System.Management.Automation.PSCredential($O365User,$O365pw)
Connect-MsolService -Credential $credO365
### L’applet de commande Get–MsolDomain permet de récupérer les domaines de société
$MsolDomain = Get-MsolDomain
}
$SessionOption = New-PSSessionOption -ProxyAccessType IEConfig
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $credO365 -Authentication Basic –AllowRedirection -SessionOption $SessionOption
### Importer les commandes (CmdLet, Alias, Fonctions) à partir de la session Exchange Online vers la session PowerShell local
Import-PSSession $session