Comment exporter une liste des licences des utilisateurs d’Office 365.

Pour télécharger le référentiel GitHub, veuillez suivre ce lien.

Ce script PowerShell créera un fichier LogonTime.csv dans le répertoire actif.

#===============================================================
# author:	Julien Bonnier 
# file:		getMsolLicenses.ps1
# project:	office365licenses
# version:	1.0.2.20170425.1448
# url:		https://github.com/jbonnier/office365licenses
#===============================================================

$LiveCred = Get-Credential
$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
Connect-MsolService -Credential $LiveCred
Import-PSSession $ExchangeSession
$mailboxes = Get-Mailbox -ResultSize Unlimited | Where {$_.RecipientTypeDetails -Ne "DiscoveryMailbox"} 
$arr = @()
foreach ($mailbox in $mailboxes) {
	$obj = New-Object -TypeName PSObject
	$stats = Get-MailboxStatistics -Identity $mailbox.Identity
	$msolUser = Get-MsolUser -UserPrincipalName $mailbox.UserPrincipalName
	$licenses = ""
	foreach ($license in $msolUser.Licenses) {
		if ($license.AccountSkuId -Like "*:VISIOCLIENT") { $licenses += "Visio, " }
		elseif ($license.AccountSkuId -Like "*:EXCHANGE*") { $licenses += "Exchange, " }
		elseif ($license.AccountSkuId -Like "*:POWER_BI_*") { $licenses += "Power-Bi, " }
		elseif ($license.AccountSkuId -Like "*:OFFICESUBSCRIPTION") { $licenses += "Office, " }
		else { $licenses += "$license.AccountSkuId, "}
	}
	if ($licenses.Length -Ne 0) { $licenses = $licenses.Substring(0, $licenses.Length-2) }
	Add-Member -InputObject $obj -MemberType NoteProperty -Name Identity -Value $mailbox.Identity
	Add-Member -InputObject $obj -MemberType NoteProperty -Name DisplayName -Value $mailbox.DisplayName
	Add-Member -InputObject $obj -MemberType NoteProperty -Name Address -Value $mailbox.PrimarySmtpAddress
	Add-Member -InputObject $obj -MemberType NoteProperty -Name Licensed -Value $msolUser.islicensed
	Add-Member -InputObject $obj -MemberType NoteProperty -Name "License(s)" -Value $licenses
	Add-Member -InputObject $obj -MemberType NoteProperty -Name LastLogonTime -Value $stats.LastLogonTime
	$arr += $obj
} $arr | Export-Csv LogonTime.csv
Remove-PSSession $ExchangeSession

Comment régler les problèmes de connexions refusées sur ps.outlook.com.

Lorsque vous tentez de vous connecter à la console Exchange d’Office 365 en utilisant PowerShell et que vous recevez le message suivant :

New-PSSession : [ps.outlook.com] La connexion au serveur distant ps.outlook.com a échoué avec le message d’erreur suivant: […] Access Denied […].

Office 365 PowerShell Access Denied -2144108477

Assurez-vous d’abord que les informations de connexion sont valides. Si le problème persiste, il est possible que votre utilisateur n’ait pas l’autorisation pour gérer l’organisation; voici comment y remédier.

  1. Ouvrez le portail web d’administration d’Office 365.
    1. https://portal.office.com/
  2. Accédez à l’administration d’Exchange.
  3. Ouvrez l’onglet des autorisations.
  4. Modifier les autorisations pour Organisation Management.
  5. Ajouter l’adresse courriel utilisée pour vous connecter à Office 365 avec PowerShell dans la section Membres.
  6. Enregistrer les changements.

Voilà! Vous devriez pouvoir vous connecter à Office 365 en utilisant PowerShell.

Comment trouver les membres d’une liste de distribution Office 365.

Pour vous savoir comment vous connecter à la console Exchange d’Office 365, veuillez vous référer à cet article.
 
Pour lister les groupes de distribution :

Get-DistributionGroup

Pour lister les membres des groupes de distribution :

Get-DistributionGroup | ForEach-Object { Get-DistributionGroupMember -Identity $_.name }

Pour lister le nom des contacts faisant parti de groupes de distribution avec le nom de ce dernier :

Get-DistributionGroup | ForEach-Object { $name = $_.name; Get-DistributionGroupMember -Identity $_.name } | Where { $_.RecipientType -Eq "MailContact" } | ForEach-Object { Write-Host "$name`t$_.name" }

Comment se connecter à Office 365 Exchange avec PowerShell.

Voici comment vous pouvez vous connecter à Exchange Online en utilisant PowerShell.
Les étapes 2, 3 et 7 sont optionnelles.
 

  1. Ouvrir PowerShell, sur un ordinateur utilisant Windows.
    • En utilisant le menu démarrer.
      • Ouvrir le menu démarrer,
      • Accéder à Tous les programmes,
      • Ouvrir le dossier Accessoires,
      • Cliquer sur Windows PowerShell.
    • En utilisant l’utilitaire Exécuter
      • Appuyer sur Windows+R,
      • Tapper : PowerShell
  2. Dans la fenêtre PowerShell, vérifier que vous pouvez exécuter les scripts RemoteSigned.
    Get-ExecutionPolicy

    Si la valeur retournée est différente de « RemoteSigned », vous devez changer la valeur telle que décrite à l’étape 3, sinon, vous pouvez passer directement à l’étape 4.

  3. Pour activer les scripts RemoteSigned dans PowerShell, taper la commande suivante :
    Set-ExecutionPolicy RemoteSigned
  4. Connecter PowerShell au service infonuagique, taper les commandes suivantes.
    $LiveCred = Get-Credential
    
    # Note : En saisissant cette commande, une boîte de dialogue de connexion s’ouvrira. Vous devez entrer les informations de connexion d’un compte administrateur de votre <em>Office 365</em>.
    
    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
    
    Import-PSSession $Session
  5. Effectuer les travaux que vous avez à faire sur la console d’Exchange Office 365.
  6. Fermer la connexion au service infonuagique.
    Remove-PSSession $Session
  7. Vous pouvez ensuite rétablir la valeur de Get-ExecutionPolicy modifiée à l’étape 3 par la valeur obtenue à l’étape 2 (optionnel).
    Set-ExecutionPolicy "Valeur obtenue à l’étape 2"

    Vous devrez remplacer « Valeur obtenue à l’étape 2 » par la valeur que vous avez obtenue précédemment. Les guillemets ne doivent pas être entrés dans cette commande, ils ne servent, ici, qu’à simplifier la lecture.

Voilà!

Comment masquer une liste de distribution de la liste d’adresses globale sur Exchange Online.

Voici une procédure étape par étape pour masqué une liste de distribution de la liste d’adresses globale sur Exchange Online en utilisant PowerShell.

 

  1. Ouvrir PowerShell, sur un ordinateur utilisant Windows.
    • En utilisant le menu démarrer.
      • Ouvrir le menu démarrer,
      • Accéder à Tous les programmes,
      • Ouvrir le dossier Accessoires,
      • Cliquer sur Windows PowerShell.
    • En utilisant l’utilitaire Exécuter
      • Appuyer sur Windows+R,
      • Tapper : PowerShell
  2. Dans la fenêtre PowerShell, vérifier que vous pouvez exécuter les scripts RemoteSigned.
    Get-ExecutionPolicy

    Si la valeur retournée est différente de « RemoteSigned », vous devez changer la valeur telle que décrite à l’étape 3, sinon, vous pouvez passer directement à l’étape 4.

  3. Pour activer les scripts RemoteSigned dans PowerShell, taper la commande suivante :
    Set-ExecutionPolicy RemoteSigned
  4. Connecter PowerShell au service infonuagique, taper les commandes suivantes.
    $LiveCred = Get-Credential
    
    # Note : En saisissant cette commande, une boîte de dialogue de connexion s’ouvrira. Vous devez entrer les informations de connexion d’un compte administrateur de votre <em>Office 365</em>.
    
    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
    
    Import-PSSession $Session
  5. Entrer la commande suivante en remplaçant <nom-du-groupe> par l’identifiant de la liste à masquer.
    Set-DistributionGroup -Identity <nom-du-groupe> -HiddenFromAddressListsEnabled $true
  6. Fermer la connexion au service infonuagique.
    Remove-PSSession $Session
  7. Vous pouvez ensuite rétablir la valeur de Get-ExecutionPolicy modifiée à l’étape 3 par la valeur obtenue à l’étape 2 (optionnel).
    Set-ExecutionPolicy "Valeur obtenue à l’étape 2"

    Vous devrez remplacer « Valeur obtenue à l’étape 2 » par la valeur que vous avez obtenue précédemment. Les guillemets ne doivent pas être entrés dans cette commande, ils ne servent, ici, qu’à simplifier la lecture.

Voilà, la liste choisie ne devrait devrait plus apparaître dans la liste d’adresses globale.

Comment effacer le contenu d’une boîte courriel Exchange Online.

En passant à la version Online d’Exchange, l’utilisation de PowerShell devient nécessaire pour effectuer plusieurs tâches. Voici donc une procédure étape par étape pour effacer le contenu d’une boîte Exchange Online (Courriels, contacts, calendriers, tâches) en utilisant PowerShell.

 

  1. Ouvrir PowerShell, sur un ordinateur utilisant Windows.
    • En utilisant le menu démarrer.
      • Ouvrir le menu démarrer,
      • Accéder à Tous les programmes,
      • Ouvrir le dossier Accessoires,
      • Cliquer sur Windows PowerShell.
    • En utilisant l’utilitaire Exécuter
      • Appuyer sur Windows+R,
      • Tapper : PowerShell
  2. Dans la fenêtre PowerShell, vérifier que vous pouvez exécuter les scripts RemoteSigned.
    Get-ExecutionPolicy

    Si la valeur retournée est différente de « RemoteSigned », vous devez changer la valeur telle que décrite à l’étape 3, sinon, vous pouvez passer directement à l’étape 4.

  3. Pour activer les scripts RemoteSigned dans PowerShell, taper la commande suivante :
    Set-ExecutionPolicy RemoteSigned
  4. Connecter PowerShell au service infonuagique, taper les commandes suivantes.
    $LiveCred = Get-Credential
    
    # Note : En saisissant cette commande, une boîte de dialogue de connexion s’ouvrira. Vous devez entrer les informations de connexion d’un compte administrateur de votre <em>Office 365</em>.
    
    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
    
    Import-PSSession $Session
  5. Entrer la commande suivante en remplaçant MailboxID par l’identifiant de la boîte à réinitialiser.
    Search-Mailbox -Identity MailboxID -DeleteContent -Force

    Note : Si vous obtenez le message d’erreur suivant, veuillez vous référer à cet article.

    Le terme « Search-Mailbox » n’est pas reconnu comme nom d’applet de commande, fonction, fichier de script ou programme exécutable. Vérifiez l’orthographe du nom, ou si un chemin d’accès existe, vérifiez que le chemin d’accès est correct et réessayez.

  6. Fermer la connexion au service infonuagique.
    Remove-PSSession $Session
  7. Vous pouvez ensuite rétablir la valeur de Get-ExecutionPolicy modifiée à l’étape 3 par la valeur obtenue à l’étape 2 (optionnel).
    Set-ExecutionPolicy "Valeur obtenue à l’étape 2"

    Vous devrez remplacer « Valeur obtenue à l’étape 2 » par la valeur que vous avez obtenue précédemment. Les guillemets ne doivent pas être entrés dans cette commande, ils ne servent, ici, qu’à simplifier la lecture.

Voilà, la boîte choisie devrait avoir été réinitialisée. Il est toutefois conseillé de se connecter à la boîte Exchange afin de s’assurer quelle est bel et bien vide.

PowerShell retourne l’erreur « Search-Mailbox » n’est pas reconnu comme nom d’applet.

Lors de la connexion à Exchange Online d’Office 365 avec PowerShell, la commande Search-Mailbox vous retourne le message d’erreur suivant :

Le terme « Search-Mailbox » n’est pas reconnu comme nom d’applet de commande, fonction, fichier de script ou programme exécutable. Vérifiez l’orthographe du nom, ou si un chemin d’accès existe, vérifiez que le chemin d’accès est correct et réessayez.

Pour régler ce problème, veuillez suivre les étapes suivantes.

  1. Vous connecter au portail Office 365 en tant qu’administrateur.
  2. Dans le menu Administrateur, cliquer sur Exchange. « Search-Mailbox » n'est pas reconnu comme nom d'applet.
  3. Dans le menu, cliquer sur Autorisation. « Search-Mailbox » n'est pas reconnu comme nom d'applet.
  4. Sur la nouvelle page, sélectionner Organization Management, puis sur le crayon pour modifier les paramètres.
  5. Dans la liste des rôles, cliquer sur le plus (+) pour ajouter des rôles. « Search-Mailbox » n'est pas reconnu comme nom d'applet.
  6. Dans la nouvelle fenêtre, mettre en surbrillance Mailbox Import Export et Mailbox Search, puis cliquer sur Ajouter. « Search-Mailbox » n'est pas reconnu comme nom d'applet.
  7. Cliquer sur OK.
  8. Dans la fenêtre Organization Management, cliquer sur Enregistrer. « Search-Mailbox » n'est pas reconnu comme nom d'applet.

 

Vous devriez maintenant être capable d’exécuter les commandes voulues dans PowerShell.