20 Déc2015
PowerShell : Fonctions O365 de Connexion/déconnexion/Reconnexion
Bonjour à tous,
Dans tous les scripts PowerShell que je fais pour Office 365, je réutilise des fonctions types.
Ici, ce sont des fonctions PowerShell permettant de :
Ces variables sont positionnées dans le bloc Begin {} :
Dans tous les scripts PowerShell que je fais pour Office 365, je réutilise des fonctions types.
Ici, ce sont des fonctions PowerShell permettant de :
- Se connecter à O365 (Connect-ExchangeOnline)
- Se déconnecter proprement d'O365 (Disconnect-ExchangeOnline)
- Se reconnecter à O365 automatiquement si la session a expiré (Reconnect-ExchangeOnline)
Je vais donc vous proposer mes 3 fonctions.
Avant de commencer
Des variables globales sont utilisées afin de les réutiliser dans les fonctions.Ces variables sont positionnées dans le bloc Begin {} :
begin {
$O365_user = "admin_du_tenant@mon_tenant.onmicrosoft.com"
$O365_pass = ConvertTo-SecureString -String <PASSWORD> -AsPlainText -Force
$Global:O365_cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $O365_user,$O365_pass
}
Fonctions
Connect-ExchangeOnline
Function Connect-ExchangeOnline {
Param(
[parameter()]
[boolean]$ProxyEnabled = $False,
[parameter()]
[string]$CommandPrefix = 'OL',
[parameter()]
$Credential = $Global:O365_cred
)
If ($ProxyEnabled) {
$Global:EOLSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid -Credential $Credential -Authentication Basic -AllowRedirection -sessionOption (New-PsSessionOption -ProxyAccessType IEConfig -ProxyAuthentication basic)
}
Else {
$Global:EOLSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid -Credential $Credential -Authentication Basic -AllowRedirection
}
Import-PSSession $Global:EOLSession -DisableNameChecking -AllowClobber | Out-Null
$EOLServiceError = $null
$Global:EOLModule = Import-Module MSOnline
$Global:EOLService = Connect-MsolService -Credential $Credential -ErrorAction:SilentlyContinue -ErrorVariable EOLServiceError
if($EOLServiceError) {
Reconnect-ExchangeOnline
}
}
Disconnect-ExchangeOnline
Function Disconnect-ExchangeOnline {
$Global:EOLModule | Remove-Module -Force
$Global:EOLSession | Remove-PSSession -Confirm:$false
}
Reconnect-ExchangeOnline
Function Reconnect-ExchangeOnline {
if (($Global:EOLSession.state -ne "Opened") -AND ($Global:EOLSession.Availability -ne "Available")) {
Disconnect-ExchangeOnline
Start-Sleep -Seconds 10
Connect-ExchangeOnline
}
}
Mots-clés: office 365,, powershell,
Comments powered by CComment