PowerShell Microsoft 365

Cmdlets des modules actuels (Exchange Online, Microsoft Graph PowerShell, Teams, SharePoint Online). MSOnline et AzureAD sont dépréciés : utilisez Microsoft Graph PowerShell.

Pour commencer

Connexion

Installez d'abord les modules (une fois) avec Install-Module -Scope CurrentUser, puis connectez-vous à chaque session.

Connect-ExchangeOnline -UserPrincipalName admin@contoso.com

Exchange Online (module ExchangeOnlineManagement). Ajoutez -ShowBanner:$false pour un affichage plus court. Déconnexion : Disconnect-ExchangeOnline -Confirm:$false.

Connect-MgGraph -Scopes 'User.Read.All','Group.ReadWrite.All','Directory.Read.All'

Microsoft Graph PowerShell : demandez uniquement les scopes nécessaires (moindre privilège). Vérifiez avec Get-MgContext. Scopes courants : User.ReadWrite.All, Group.ReadWrite.All, Directory.ReadWrite.All, Policy.Read.All, DeviceManagementManagedDevices.Read.All, AuditLog.Read.All.

Connect-MicrosoftTeams

Teams (module MicrosoftTeams). Rôle Teams Administrator ou supérieur.

Connect-SPOService -Url https://contoso-admin.sharepoint.com

SharePoint Online (module Microsoft.Online.SharePoint.PowerShell), URL du centre d'administration. Alternative : PnP.PowerShell.

Connect-IPPSSession -UserPrincipalName admin@contoso.com

Security & Compliance (Defender, Purview) : même module que Exchange Online.

Résultats

Filtrer par catégorie

    MSOnline et AzureAD (cmdlets Msol* et *-AzureAD*) sont dépréciés et ne reçoivent plus de correctifs : migrez vers Microsoft Graph PowerShell (Mg*). Testez d'abord avec -WhatIf quand il existe.

    Liste complète

    Afficher les 51 entrées
    • Get-Mailbox

      Get-Mailbox [-Identity <id>] [-ResultSize Unlimited]

      Liste les boîtes aux lettres ou affiche les propriétés d'une boîte.

      Get-Mailbox -Identity user@contoso.com | Format-List DisplayName,PrimarySmtpAddress,ArchiveStatus,LitigationHoldEnabled
      Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails SharedMailbox
    • Set-Mailbox

      Set-Mailbox -Identity <id> [propriétés]

      Modifie une boîte aux lettres (quota, adresse, transfert, archive, conservation).

      Set-Mailbox -Identity user@contoso.com -ForwardingSmtpAddress ext@example.com -DeliverToMailboxAndForward $true
      Set-Mailbox -Identity user@contoso.com -LitigationHoldEnabled $true
    • Set-MailboxAutoReplyConfiguration

      Set-MailboxAutoReplyConfiguration -Identity <id> -AutoReplyState Enabled|Disabled|Scheduled

      Active, programme ou coupe la réponse automatique d'absence d'une boîte (message interne et externe).

      Set-MailboxAutoReplyConfiguration -Identity user@contoso.com -AutoReplyState Enabled -InternalMessage 'Absent jusqu''au 5 janvier.' -ExternalMessage 'Absent jusqu''au 5 janvier.'
      Set-MailboxAutoReplyConfiguration -Identity user@contoso.com -AutoReplyState Scheduled -StartTime '2026-12-22 18:00' -EndTime '2027-01-05 08:00' -InternalMessage 'Congés'
      Set-MailboxAutoReplyConfiguration -Identity user@contoso.com -AutoReplyState Disabled
    • New-Mailbox

      New-Mailbox -Shared -Name <nom> -DisplayName <nom>

      Crée une boîte aux lettres partagée (ou salle/équipement avec -Room, -Equipment).

      New-Mailbox -Shared -Name 'Support' -DisplayName 'Support' -PrimarySmtpAddress support@contoso.com
    • Add-MailboxPermission

      Add-MailboxPermission -Identity <boîte> -User <utilisateur> -AccessRights FullAccess

      Donne l'accès complet à une boîte (délégation de lecture/écriture).

      Add-MailboxPermission -Identity shared@contoso.com -User user@contoso.com -AccessRights FullAccess -AutoMapping $true
    • Add-RecipientPermission

      Add-RecipientPermission -Identity <boîte> -Trustee <utilisateur> -AccessRights SendAs

      Autorise « Envoyer en tant que » sur une boîte ou un groupe.

      Add-RecipientPermission -Identity shared@contoso.com -Trustee user@contoso.com -AccessRights SendAs -Confirm:$false
    • Get-MailboxStatistics

      Get-MailboxStatistics -Identity <id>

      Taille, nombre d'éléments et dernière connexion d'une boîte.

      Get-MailboxStatistics user@contoso.com | Select DisplayName,TotalItemSize,ItemCount,LastLogonTime
    • Get-MessageTraceV2

      Get-MessageTraceV2 -SenderAddress <expéditeur> -StartDate <date> -EndDate <date>

      Suit un message (remis, retardé, rejeté) sur les 10 derniers jours. Remplace Get-MessageTrace.

      Get-MessageTraceV2 -RecipientAddress user@contoso.com -StartDate (Get-Date).AddDays(-2) -EndDate (Get-Date)
    • Start-HistoricalSearch

      Start-HistoricalSearch -ReportTitle <titre> -ReportType MessageTrace ...

      Lance une recherche de traces de messages au-delà de 10 jours (jusqu'à 90 jours), livrée par e-mail.

      Start-HistoricalSearch -ReportTitle 'Trace' -ReportType MessageTrace -StartDate (Get-Date).AddDays(-30) -EndDate (Get-Date) -SenderAddress a@example.com -NotifyAddress admin@contoso.com
    • New-TransportRule

      New-TransportRule -Name <nom> -Conditions... -Actions...

      Crée une règle de flux de messagerie (disclaimer, blocage, redirection).

      New-TransportRule -Name 'Étiquette externe' -FromScope NotInOrganization -PrependSubject '[EXTERNE] '
    • Get-DistributionGroupMember

      Get-DistributionGroupMember -Identity <groupe>

      Liste les membres d'une liste de distribution.

      Get-DistributionGroupMember -Identity team@contoso.com -ResultSize Unlimited | Select DisplayName,PrimarySmtpAddress
    • Add-DistributionGroupMember

      Add-DistributionGroupMember -Identity <groupe> -Member <utilisateur>

      Ajoute un membre à une liste de distribution.

      Add-DistributionGroupMember -Identity team@contoso.com -Member user@contoso.com
    • Set-CalendarProcessing

      Set-CalendarProcessing -Identity <salle> -AutomateProcessing AutoAccept

      Règle l'acceptation automatique des réunions pour une salle ou un équipement.

      Set-CalendarProcessing -Identity salle1@contoso.com -AutomateProcessing AutoAccept -AllowConflicts $false
    • Add-MailboxFolderPermission

      Add-MailboxFolderPermission -Identity <boîte>:\Calendrier -User <utilisateur> -AccessRights Reviewer

      Partage un dossier (agenda, boîte de réception) avec un utilisateur.

      Add-MailboxFolderPermission -Identity user@contoso.com:\Calendar -User collegue@contoso.com -AccessRights Editor
    • Get-EXOMailbox

      Get-EXOMailbox -Identity <id> -Properties <liste>

      Version rapide et économe de Get-Mailbox pour de grands volumes.

      Get-EXOMailbox -ResultSize Unlimited -Properties ProhibitSendQuota | Select DisplayName,ProhibitSendQuota
    • Enable-Mailbox (archive)

      Enable-Mailbox -Identity <id> -Archive

      Active l'archivage en ligne d'une boîte.

      Enable-Mailbox -Identity user@contoso.com -Archive
    • Connect-MgGraph

      Connect-MgGraph -Scopes <scopes> [-TenantId <id>] [-NoWelcome]

      Ouvre une session Microsoft Graph PowerShell avec les scopes demandés.

      Connect-MgGraph -Scopes 'User.ReadWrite.All' -NoWelcome
      Get-MgContext | Select Account,TenantId,Scopes
    • Get-MgUser

      Get-MgUser [-UserId <id>] [-Filter <odata>] [-Property <liste>] [-All]

      Lit un utilisateur ou liste les comptes Entra ID. Remplace Get-MsolUser / Get-AzureADUser.

      Get-MgUser -UserId user@contoso.com -Property DisplayName,AccountEnabled,SignInActivity
      Get-MgUser -All -Filter "accountEnabled eq false" | Select DisplayName,UserPrincipalName
    • New-MgUser

      New-MgUser -DisplayName <nom> -UserPrincipalName <upn> -MailNickname <alias> -AccountEnabled -PasswordProfile <hash>

      Crée un utilisateur Entra ID.

      New-MgUser -DisplayName 'Jean Dupont' -UserPrincipalName jean@contoso.com -MailNickname jean -AccountEnabled -PasswordProfile @{ Password = '<mot de passe>'; ForceChangePasswordNextSignIn = $true }
    • Update-MgUser

      Update-MgUser -UserId <id> [-propriété valeur]

      Modifie un utilisateur (service, titre, activation, localisation d'usage).

      Update-MgUser -UserId user@contoso.com -AccountEnabled:$false
      Update-MgUser -UserId user@contoso.com -UsageLocation FR
    • Revoke-MgUserSignInSession

      Revoke-MgUserSignInSession -UserId <id>

      Révoque les jetons d'actualisation et les sessions d'un utilisateur (compte compromis).

      Revoke-MgUserSignInSession -UserId user@contoso.com
    • Set-MgUserLicense

      Set-MgUserLicense -UserId <id> -AddLicenses @{SkuId=...} -RemoveLicenses @()

      Attribue ou retire des licences Microsoft 365.

      Get-MgSubscribedSku | Select SkuPartNumber,SkuId,ConsumedUnits
      Set-MgUserLicense -UserId user@contoso.com -AddLicenses @{SkuId='<SkuId>'} -RemoveLicenses @()
    • Get-MgGroup

      Get-MgGroup [-GroupId <id>] [-Filter <odata>] [-All]

      Liste les groupes Entra ID (Microsoft 365, sécurité).

      Get-MgGroup -All -Filter "startsWith(displayName,'Ventes')"
    • New-MgGroupMember

      New-MgGroupMember -GroupId <id> -DirectoryObjectId <id>

      Ajoute un membre à un groupe Entra ID.

      New-MgGroupMember -GroupId $groupId -DirectoryObjectId (Get-MgUser -UserId user@contoso.com).Id
    • Get-MgUserAuthenticationMethod

      Get-MgUserAuthenticationMethod -UserId <id>

      Liste les méthodes d'authentification (MFA) d'un utilisateur.

      Get-MgUserAuthenticationMethod -UserId user@contoso.com | Select Id,AdditionalProperties
    • Get-MgAuditLogSignIn

      Get-MgAuditLogSignIn -Filter <odata> -Top <n>

      Journal des connexions Entra ID (échecs, localisation, accès conditionnel).

      Get-MgAuditLogSignIn -Filter "userPrincipalName eq 'user@contoso.com'" -Top 20 | Select CreatedDateTime,AppDisplayName,IPAddress,Status
    • Get-MgDirectoryRole

      Get-MgDirectoryRole / Get-MgDirectoryRoleMember

      Liste les rôles d'administration activés et leurs membres.

      $r = Get-MgDirectoryRole -Filter "displayName eq 'Global Administrator'"; Get-MgDirectoryRoleMember -DirectoryRoleId $r.Id
    • Get-MgSubscribedSku

      Get-MgSubscribedSku

      Licences achetées, consommées et disponibles du tenant.

      Get-MgSubscribedSku | Select SkuPartNumber,ConsumedUnits,@{n='Total';e={$_.PrepaidUnits.Enabled}}
    • Get-MgIdentityConditionalAccessPolicy

      Get-MgIdentityConditionalAccessPolicy

      Liste les stratégies d'accès conditionnel.

      Get-MgIdentityConditionalAccessPolicy | Select DisplayName,State
    • Get-Team

      Get-Team [-DisplayName <nom>] [-User <upn>]

      Liste les équipes Teams.

      Get-Team -DisplayName 'Projet' | Select GroupId,DisplayName,Visibility,Archived
    • New-Team

      New-Team -DisplayName <nom> -Visibility Private

      Crée une équipe (et son groupe Microsoft 365).

      New-Team -DisplayName 'Projet Alpha' -Visibility Private -Owner admin@contoso.com
    • Add-TeamUser

      Add-TeamUser -GroupId <id> -User <upn> -Role Member

      Ajoute un membre ou un propriétaire à une équipe.

      Add-TeamUser -GroupId $groupId -User user@contoso.com -Role Member
    • Get-CsOnlineUser

      Get-CsOnlineUser -Identity <upn>

      Affiche la configuration Teams d'un utilisateur (téléphonie, stratégies).

      Get-CsOnlineUser -Identity user@contoso.com | Select DisplayName,TeamsMeetingPolicy,LineUri,InterpretedUserType
    • Grant-CsTeamsMeetingPolicy

      Grant-CsTeamsMeetingPolicy -Identity <upn> -PolicyName <stratégie>

      Attribue une stratégie de réunion Teams à un utilisateur.

      Grant-CsTeamsMeetingPolicy -Identity user@contoso.com -PolicyName 'RestrictedAnonymous'
    • Get-SPOSite

      Get-SPOSite [-Identity <url>] [-Limit All]

      Liste les collections de sites SharePoint.

      Get-SPOSite -Limit All | Select Url,StorageUsageCurrent,SharingCapability
    • Set-SPOSite

      Set-SPOSite -Identity <url> [-SharingCapability ...] [-StorageQuota ...]

      Modifie un site (partage externe, quota, verrouillage).

      Set-SPOSite -Identity https://contoso.sharepoint.com/sites/rh -SharingCapability Disabled
      Set-SPOSite -Identity https://contoso.sharepoint.com/sites/rh -LockState ReadOnly
    • Get-SPOTenant

      Get-SPOTenant

      Paramètres globaux du tenant SharePoint et OneDrive (partage, synchronisation).

      Get-SPOTenant | Select SharingCapability,DefaultSharingLinkType,OneDriveStorageQuota
    • Get-SPOUser / Add-SPOUser

      Get-SPOUser -Site <url> / Add-SPOUser -Site <url> -LoginName <upn> -Group <groupe>

      Consulte ou ajoute des utilisateurs dans un site.

      Get-SPOUser -Site https://contoso.sharepoint.com/sites/rh -Limit All
      Add-SPOUser -Site https://contoso.sharepoint.com/sites/rh -LoginName user@contoso.com -Group 'RH Members'
    • Restore-SPODeletedSite

      Restore-SPODeletedSite -Identity <url>

      Restaure un site supprimé (corbeille du tenant, 93 jours).

      Get-SPODeletedSite | Select Url,DeletionTime
      Restore-SPODeletedSite -Identity https://contoso.sharepoint.com/sites/rh
    • Get-MgDeviceManagementManagedDevice

      Get-MgDeviceManagementManagedDevice [-Filter <odata>] [-All]

      Liste les appareils gérés par Intune (conformité, système, dernier contact).

      Get-MgDeviceManagementManagedDevice -All -Filter "operatingSystem eq 'Windows'" | Select DeviceName,UserPrincipalName,ComplianceState,LastSyncDateTime
    • Sync-MgDeviceManagementManagedDevice

      Sync-MgDeviceManagementManagedDevice -ManagedDeviceId <id>

      Demande une synchronisation immédiate d'un appareil Intune.

      Sync-MgDeviceManagementManagedDevice -ManagedDeviceId $id
    • Invoke-MgRetireDeviceManagementManagedDevice

      Invoke-MgRetireDeviceManagementManagedDevice -ManagedDeviceId <id>

      Retire un appareil de la gestion (supprime les données d'entreprise, garde les données personnelles).

      Invoke-MgRetireDeviceManagementManagedDevice -ManagedDeviceId $id
    • Get-QuarantineMessage

      Get-QuarantineMessage -StartReceivedDate <date> -EndReceivedDate <date>

      Liste les messages en quarantaine Defender for Office 365.

      Get-QuarantineMessage -RecipientAddress user@contoso.com -StartReceivedDate (Get-Date).AddDays(-7) -EndReceivedDate (Get-Date) | Select ReceivedTime,SenderAddress,Subject,Type
    • Get-MalwareFilterPolicy

      Get-MalwareFilterPolicy / Set-MalwareFilterPolicy

      Consulte ou règle la stratégie anti-programmes malveillants.

      Get-MalwareFilterPolicy | Select Name,EnableFileFilter,FileTypes
    • Get-SafeLinksPolicy

      Get-SafeLinksPolicy

      Stratégies Liens fiables de Defender for Office 365.

      Get-SafeLinksPolicy | Select Name,EnableSafeLinksForEmail,ScanUrls,DoNotRewriteUrls
    • Search-UnifiedAuditLog

      Search-UnifiedAuditLog -StartDate <date> -EndDate <date> -UserIds <upn> -Operations <liste>

      Interroge le journal d'audit unifié (connexions, accès aux fichiers, règles de boîte).

      Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) -UserIds user@contoso.com -Operations New-InboxRule,Set-InboxRule -ResultSize 500
    • New-ComplianceSearch

      New-ComplianceSearch -Name <nom> -ExchangeLocation All -ContentMatchQuery <KQL>

      Crée une recherche de contenu Purview eDiscovery (puis Start-ComplianceSearch).

      New-ComplianceSearch -Name 'Facture-X' -ExchangeLocation All -ContentMatchQuery 'subject:"Facture X"'
      Start-ComplianceSearch -Identity 'Facture-X'
    • Get-DlpCompliancePolicy

      Get-DlpCompliancePolicy

      Liste les stratégies de prévention contre la perte de données (DLP).

      Get-DlpCompliancePolicy | Select Name,Mode,Enabled
    • Connect-MsolService

      Connect-MsolService

      Connexion du module MSOnline, déprécié. Remplacer par Connect-MgGraph.

      # Ancien : Connect-MsolService ; Get-MsolUser -UserPrincipalName user@contoso.com
      # Nouveau : Connect-MgGraph -Scopes 'User.Read.All' ; Get-MgUser -UserId user@contoso.com
    • Connect-AzureAD

      Connect-AzureAD

      Connexion du module AzureAD, déprécié. Remplacer par Connect-MgGraph.

      # Ancien : Get-AzureADGroupMember -ObjectId $id
      # Nouveau : Get-MgGroupMember -GroupId $id
    • Set-MsolUserPassword

      Set-MsolUserPassword -UserPrincipalName <upn> -NewPassword <mdp>

      Réinitialise un mot de passe (MSOnline, déprécié). Équivalent Graph : Update-MgUser avec -PasswordProfile.

      Update-MgUser -UserId user@contoso.com -PasswordProfile @{ Password = '<mot de passe>'; ForceChangePasswordNextSignIn = $true }

    Rechercher