Suite à l’article sur le PowerShell, nous allons voir différents exercices de mise en application.
Création d’utilisateurs avec un csv, de groupes, affecter des licences, supprimer un utilisateur …
Sommaire
Récupération du template .csv de Microsoft
La première chose est de récupérer le template fourni par Microsoft dans O365.
Aller dans Office 365 Admin Center, puis dans Active Users, puis cliquer sur Import multiple users
Vous pouvez voir les 2 propositions de Microsoft pour les exemples
Je vais prendre le premier fichier comme base.
Puis je vais modifier les entêtes de sort qu’il n’y ai plus d’espace dans les entêtes et compléter avec mes éléments.
Je vous donne mon fichier mis en place: Import_User_AcTechDemo
Connexion au tenant O365
Je reprends donc la connexion depuis l’article précédent.
[cc lang= »powershell »]#Import du module de connection à 0365
Import-module msonline
$cred = Get-Credential
#se connecter au tenant O365
Connect-MsolService -Credential $cred[/cc]
Import de 15 utilisateurs
Voici le code PowerShell pour importer les utilisateurs.
[cc lang= »powershell »]$date = (Get-Date).ToString(‘yyyy-MM-dd_hh-mm’)
#Import du fichier .csv avec export des résultats vers un autre fichier .csv
#Aucun mot de passe n’a été spécifié, de sorte que les mots de passe aléatoires qui ont été générés sont visibles dans le fichier de sortie
Import-Csv -Path C:\PowerShell\Import_User_AcTechDemo.csv | foreach {New-MsolUser -UserPrincipalName $_.UserPrincipalName -FirstName $_.FirstName -LastName $_.LastName -DisplayName $_.DisplayName -Title $_.JobTitle -Department $_.Department -Office $_OfficeNumber -PhoneNumber $_.OfficePhone -MobilePhone $_.MobilePhone -StreetAddress $_.Address -City $_.City -State $_.State -PostalCode $_.ZIP -Country $_.Country -UsageLocation « FR » } | Export-Csv -Path C:\PowerShell\Export_$date.csv[/cc]
Vérifier votre import avec la commande: [cc lang= »powershell »]Get-MsolUser | Sort-Object -property DisplayName[/cc]
Vous pouvez également vérifier tous les paramètres importés pour un utilisateur avec:
[cc lang= »powershell »]Get-MsolUser -UserPrincipalName user06@acsoyez.fr | Select-Object UserPrincipalName,FirstName,LastName,DisplayName,Title,Department,Office,PhoneNumber,MobilePhone,StreetAddress,City,State,PostalCode,Country,UsageLocation[/cc]
Donc mon user a été importé avec les bonnes données.
Allons maintenant voir ce qu’à donner le .csv exporté, dans la première colonne il affiche les mots de passe:
Vérification et affectation des licences
[cc lang= »powershell »]Get-MsolAccountSku[/cc]
Maintenant on va affecter 5 de nos licences à des utilisateurs
[cc lang= »powershell »]#liste des utilisateurs qui doivent recevoir une licence
$UserList = « user01@acsoyez.fr », »user02@acsoyez.fr », »user03@acsoyez.fr », »user04@acsoyez.fr », »user05@acsoyez.fr »
#affectation des licences
Foreach ($user in $UserList)
{
Set-MsolUserLicense -UserPrincipalName $user -AddLicenses « actechdemo:ENTERPRISEPACK »
}[/cc]
On rééxécute la vérification
[cc lang= »powershell »]Get-MsolUser | Sort-Object -property DisplayName[/cc]
Et on voit bien que les utilisateurs sont maintenant avec licence.
Affectation partielle de licences
Maintenant je souhaite affecter seulement le service Exchange à 5 de mes utilisateurs.
Vérifions d’abord les services des licences que j’ai dans mon tenant.
[cc lang= »powershell »]#Vérification des licences
$ServicePlans = Get-MsolAccountSku | Where {$_.SkuPartNumber -eq « ENTERPRISEPACK »}
$ServicePlans.ServiceStatus[/cc]
On va donc créer un définition de licence uniquement avec Exchange
[cc lang= »powershell »]#Création d’une définition Exchange seulement
$ExchangeOnlineSku = New-MsolLicenseOptions -AccountSkuId actechdemo:ENTERPRISEPACK -DisabledPlans SWAY,INTUNE_O365,YAMMER_ENTERPRISE,RMS_S_ENTERPRISE,OFFICESUBSCRIPTION,MCOSTANDARD,SHAREPOINTWAC,SHAREPOINTENTERPRISE[/cc]
Puis l’affecter à 5 utilisateurs:
[cc lang= »powershell »]#affectation de cette définition
$UserExchange = « user06@acsoyez.fr », »user07@acsoyez.fr », »user08@acsoyez.fr », »user09@acsoyez.fr », »user10@acsoyez.fr »
Foreach ($user in $UserExchange)
{
Set-MsolUserLicense -UserPrincipalName $user -AddLicenses actechdemo:ENTERPRISEPACK -LicenseOptions $ExchangeOnlineSku
}[/cc]
On va faire la même chose pour une définition uniquement pack office et l’affecter à 5 autres utilisateurs.
[cc lang= »powershell »]#Création d’une définition Office seulement
$OfficeOnlySku = New-MsolLicenseOptions -AccountSkuId actechdemo:ENTERPRISEPACK -DisabledPlans SWAY,INTUNE_O365,YAMMER_ENTERPRISE,RMS_S_ENTERPRISE,MCOSTANDARD,SHAREPOINTWAC,SHAREPOINTENTERPRISE,EXCHANGE_S_ENTERPRISE
#affectation de cette définition
$UserOffice = « user11@acsoyez.fr », »user12@acsoyez.fr », »user13@acsoyez.fr », »user14@acsoyez.fr », »user15@acsoyez.fr »
Foreach ($user in $UserExchange)
{
Set-MsolUserLicense -UserPrincipalName « user07@acsoyez.fr » -AddLicenses actechdemo:ENTERPRISEPACK -LicenseOptions $OfficeOnlySku
}[/cc]
Création de groupes
Dans un premier temps, j’ai créé un groupe de distribution avec la console d’admin web.
Puis j’ai exécuté cette commande PowerShell pour vérifier le groupe que je venais de créer: Get-MsolGroup
Maintenant allons créé notre groupe avec PowrShell:
[cc lang= »powershell »]New-MsolGroup -DisplayName « Grp-Projet1 » -Description « Grp1 créer avec PowerShell »[/cc]
Et là on s’aperçoit que par défaut, PowerShell crée un groupe de sécurité et non pas une liste de distribution.
Création d’une liste de distribution
Pour effectuer cette action, il va falloir non plus se connecter au tenant 0365 mais à l’Exchange Online de ce tenant.
[cc lang= »powershell »]$365Logon = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $365Logon -Authentication Basic -AllowRedirection
Import-PSSession $Session[/cc]
Création du groupe de distribution
[cc lang= »powershell »]New-DistributionGroup -Name « Grp-PW1 » -DisplayName « Grp-PW1@acsoyez.fr » -Alias Grp-PW1 -Notes « création groupe1 avec PowerShell »[/cc]
Vérification des groupes du tenant
[cc lang= »powershell »]Get-MsolGroup[/cc]
Allons voir dans la console Admin Center, on s’apperçoie que le groupe a été créer avec l’adresse .onmicrosoft.com …
On va donc supprimer le groupe
[cc lang= »powershell »]Remove-DistributionGroup -Identity « Grp-PW1″[/cc]
Et le recréer avec la bonne adresse mail
[cc lang= »powershell »]New-DistributionGroup -Name « Grp-PW1 » -DisplayName « Grp-PW1 » -Alias Grp-PW1 -PrimarySmtpAddress « Grp-PW1@acsoyez.fr »[/cc]
Voilà qui est mieux:
Ajout des utilisateurs aux groupes
Alors maintenant on va ajouter des users dans les groupes que l’on a créé.[cc lang= »powershell »]$ListeGr1 = « user01@acsoyez.fr », »user02@acsoyez.fr », »user03@acsoyez.fr », »user04@acsoyez.fr », »user05@acsoyez.fr »
Foreach ($Usergr1 in $ListeGr1)
{
Add-DistributionGroupMember -Identity « Grp-PW1@acsoyez.fr » -Member $Usergr1
}[/cc]
Vérification des membres du groupe Grp-PW1
[cc lang= »powershell »]Get-DistributionGroupMember -Identity « Grp-PW1@acsoyez.fr »[/cc]
Suppression d’utilisateurs
Code PowerShell pour Supprimer un utilisateur
[cc lang= »powershell »]#Supression d’un utilisateur
Remove-MsolUser -UserPrincipalName « user01@acsoyez.fr »[/cc]
Lors de l’exécution de la commande, un message apparait:
Vérifions encore une fois notre liste d’utilisateur, le user01 n’est plus dans la liste
[cc lang= »powershell »]Get-MsolGroup | Sort-Object -property DisplayName[/cc]
Vérifier la liste à laquelle ce user appartenait, le user01 n’y appartient plus
[cc lang= »powershell »]Get-DistributionGroupMember -Identity « Grp-PW1@acsoyez.fr » | Sort-Object -property DisplayName[/cc]
Si l’utilisateur essaye maintenant de se connecter, on lui indique que ces identifiants sont incorrects.
Suppression de l’utilisateur de la corbeille
ATTENTION: cette manipulation est irréversible
Pour l’exemple, je vais supprimer l’utilisateur user08
[cc lang= »powershell »]Remove-MsolUser -UserPrincipalName « user08@acsoyez.fr »[/cc]
Vérification que l’utilisateur est bien dans la corbeille
[cc lang= »powershell »]Get-MsolUser -All -ReturnDeletedUsers | Sort-Object -property DisplayName[/cc]
On supprime user08 de la corbeille et on revérifie la corbeille
[cc lang= »powershell »]Remove-MsolUser -UserPrincipalName « user08@acsoyez.fr » -RemoveFromRecycleBin[/cc]
On va tenter de restaurer l’utilisateur
[cc lang= »powershell »]Restore-MsolUser -UserPrincipalName « user08@acsoyez.fr »[/cc]
Et là on a bien une erreur comme quoi l’utilisateur n’existe pas
Restauration de l’utilisateur
Pour voir la liste des users suprimés
[cc lang= »powershell »]Get-MsolUser -All -ReturnDeletedUsers[/cc]
On va maintenant restaurer le user01
[cc lang= »powershell »]Restore-MsolUser -UserPrincipalName « user01@acsoyez.fr »[/cc]
Vérifions si l’appartenance au groupe a été restauré en même temps
[cc lang= »powershell »]Get-DistributionGroupMember -Identity « Grp-PW1@acsoyez.fr »[/cc]
Et effectivement c’est bien le cas!
Liste des domaines disponibles
Petite commande pour voir la liste des domains disponible sur votre tenant O365.
[cc lang= »powershell »]Get-MSolDomain[/cc]
A vous de jouer !
C est bon je valide 😆