Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierSharePoint & Products Technologies

Identifier les comptes inutilisés

Hi folks,

Souvent on me demande s’il est possible de trouver les comptes des utilisateurs non utilisés, je vous propose ici de voir cela avec un exemple des comptes invités qui sont en grande partie non utilisés sur les environnements, ou bien qui sont utilisés très ponctuellement.

Notre objectif est donc de les identifier et les gérer, notamment en les ajoutant à un groupe pour faciliter leur suppression ou autre action. Mais surtout pas de tous les supprimer… Après vous avez la sauvegarde peut-être sinon c’est dans la corbeille Entra ID pour 30 jours.

1. Créer un groupe cible

  • Créez une liste de distribution ou un groupe Microsoft 365 pour regrouper les comptes invités inactifs.
  • Vous pouvez utiliser le centre d’administration Exchange/Microsoft 365 ou des cmdlets PowerShell tels que :
    • New-DistributionGroup pour une liste de distribution.
    • New-UnifiedGroup pour un groupe Microsoft 365.

2. Identifier les comptes invités inutilisés :

  • Utilisez le cmdlet Get-MgUser du Microsoft Graph PowerShell SDK pour récupérer les comptes invités.
  • Filtrez les comptes :
    • Ceux qui n’ont pas signé depuis plus d’un an.
    • Ceux qui n’ont jamais signé (optionnel) mais souvent le cas.
  • Exemple de script pour filtrer :
    • $CheckDate = (Get-Date).AddYears(-1)
    • [array]$InactiveGuests = Get-MgUser -All -PageSize 500 -Filter "signInActivity/lastSignInDateTime le $($Checkdate.ToUniversalTime().ToString("yyyy-MM-ddThh:mm:ssZ"))" -Property Id, Mail, displayName, userPrincipalName, signInactivity, UserType
    • $InactiveGuests = $InactiveGuests | Where-Object {$_.userType -eq 'Guest'}
  • Éliminez les faux positifs en filtrant les comptes sans adresse e-mail.
    • $InactiveGuests = $InactiveGuests | Where-Object {$null -ne $_.Mail}

3. Ajouter les comptes inutilisés à un groupe :

  • Pour une liste de distribution :
    • ForEach ($Id in $InactiveGuests.Id) { Add-DistributionGroupMember -Identity Inactive.Guests.DL -Member $Id -ErrorAction SilentlyContinue }
  • Pour un groupe Microsoft 365 :
    • Add-UnifiedGroupLinks -Identity Inactive.Guests.Group -Links $InactiveGuests.Id -LinkType Member
  • Désactivez les messages de bienvenue pour éviter de confondre les utilisateurs :
    • Set-UnifiedGroup -Identity Inactive.Guests.Group -UnifiedGroupWelcomeMessageEnabled:$False

4. Automatisation et suivi :

  • Planifiez un traitement régulier (par exemple, via un runbook Azure Automation) pour maintenir la liste des invités inactifs à jour.

Suppression des comptes :

  • Avant de supprimer, examinez les comptes pour éviter de retirer des comptes importants (par exemple, ceux utilisés uniquement pour des échanges par e-mail).
  • Exportez les données dans un fichier CSV pour validation avant suppression.
  • Exemple de script pour suppression :
    • [array]$InactiveGuests = Import-CSV "c:\temp\GuestAccountsToRemove.csv" ForEach ($Account in $InactiveGuests) { Remove-MgUser -UserId $Account.Id }

Remarques :

  • Tous les comptes inactifs ne doivent pas être supprimés automatiquement. Certains peuvent avoir une raison valable d’être inactifs.
  • La suppression est réversible pendant 30 jours via l’interface Entra Admin Center.
  • MAIS SURTOUT – Pensez a mettre en place de la gouvernance des identités.

Stay tuned !

PowerShell & Microsoft 365

Hello folks,

Microsoft continue la sécurisation de ces environnements et par extension du votre, en effet depuis le 9 Septembre 2024, vous ne pourrez plus vus connecter “facilement” nous allons voir ensemble comment s’y connecter :

Step 1 : Enregistrement de l’application dans EntraID

Register-PnPEntraIDAppForInteractiveLogin -ApplicationName “PnP Rocks” -Tenant [votretenant].onmicrosoft.com -Interactive

Step 2 : La connexion

Connect-PnPOnline -Url https://%5Bvotretenant%5D.sharepoint.com/sites/demo -Interactive -ClientId 61[….]36e

source : https://pnp.github.io/powershell/articles/registerapplication.html

Au temps dire que ce mode de connexion nécessitera la connaissance du clientID de l’application ou bien d’un certificat, le MFA étant devenu de rigueur pour tous. En tout cas les règles de déploiement de connexion par certificats vont revenir à l’ordre du jour, tout comme le fait d’appuyer encore sur les règles d’accès conditionnel.

Stay tuned & have fun !

PowerShell & MacOS

Hi Folks,

Oui le PShell c’est possible avec un Mac… pas sans quelques difficultés d’installation, mais je vous partage ici la méthode qui a fonctionné pour moi.

Pour commencer vous allez avoir besoin de ce lien : Installer PowerShell on MacOS

Etape 1 : Installation de HomeBrew (Lien) depuis le terminal.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Etape 2 : Ajouter Brew a votre chemin par défaut (Attention chez vous le path change surement…<username>)

 echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/username/.zprofile

 eval "$(/opt/homebrew/bin/brew shellenv)"

Etape 3 : On vérifie avec une commande que tout va bien

Brew update

Si tout vas bien normalement vous avez cela :

Etape 4 : Installation de PowerShell

brew install powershell

Etape 5 : Let’s go !

Pour vérifier que tout va bien exécuter depuis le terminal : Pwsh

Normalement vous avez cela, puis vous pouvez checker la version PShell avec $PSVersionTable

Etape 6 : Ajouter les modules Azure, M365, etc. …

Install-Module -Name Az -AllowClobber

Après j’avais ici besoin d’une liste d’utilisateur donc vous retrouvez les commandes Azure classiques 😉

La liste des différents modules :

AzureAD

MSOnline

ExchangeOnline

SharePoint

SharePointPnP

SecAndCompCenter

Teams

Un script est dispo ici : https://o365reports.com/2019/11/01/install-all-office-365-powershell-modules/

Pour Mac vous pouvez faire :

Install-Module -Name AzureAD,MSOnline

Hope this helps !

mickey75019

❌
❌