Problème exécution script PowerShell pour forcer changement mot de passe boite mail user

RSI Eveche94 0 Points de réputation
2025-11-05T17:42:58.1933333+00:00

Bonjour,

J'ai crée un script PowerShell qui permet de forcer le changement de mot de passe des boites mails des mes utilisateurs a partir d'un fichier csv. Le compte que j'utilise a des droits admin.

Voici les permissions que j'ai : rôles administrateur :

  • Global Administrator
    • Printer Administrator
    • Cloud Device Administrator
    • Application Administrator
    • Microsoft Hardware Warranty Administrator
    • Windows 365 Administrator
    • Desktop Analytics Administrator
    • Domain Name Administrator
    • Conditional Access Administrator
    • Intune Administrator
    • Billing Administrator
    • Password Administrator
    • Cloud Application Administrator
    • License Administrator
    • Privileged Role Administrator
    • External Identity Provider Administrator
    • Authentication Administrator
    • SharePoint Administrator
    • Service Support Administrator
    • Exchange Administrator
    • Teams Administrator
    • Helpdesk Administrator
    • User Administrator
    • User Experience Success Manager
    • Teams Devices Administrator
    • Dynamics 365 Business Central Administrator
    • Organizational Messages Approver
    • Viva Glint Tenant Administrator
    • Attribute Definition Administrator
    • AI Administrator
    • Dynamics 365 Administrator
    • Organizational Branding Administrator
    • Edge Administrator
    • Power Platform Administrator
    • Authentication Extensibility Administrator
    • Attribute Assignment Administrator
    • Groups Administrator
    • Viva Pulse Administrator
    • Authentication Policy Administrator
    • Skype for Business Administrator
    • Microsoft 365 Migration Administrator
    • Organizational Messages Writer
    • Kaizala Administrator
    • Office Apps Administrator
    • Microsoft 365 Backup Administrator
    • Fabric Administrator
    • Exchange Recipient Administrator
    • Teams Communications Administrator
    • Virtual Visits Administrator
    • Search Administrator
    • Network Administrator
    • Windows Update Deployment Administrator
    • Insights Administrator
    • Yammer Administrator
    • Teams Telephony Administrator
    • Viva Goals Administrator
    • Identity Governance Administrator
    • Cloud App Security Administrator
    • Knowledge Administrator
    • SharePoint Embedded Administrator
    • Compliance Data Administrator
    • Hybrid Identity Administrator
    • Azure Information Protection Administrator
    • Attack Simulation Administrator
    • Privileged Authentication Administrator
    • Security Administrator
    • Compliance Administrator
    • People Administrator
    • Organizational Data Source Administratorl.

Lorsque j'exécute mon script via PowerShell 7.5.4 j'ai l'erreur suivante.

PS C:\TEMP> .\test_powershell@XXXXXXXX.ps1

Welcome to Microsoft Graph!

Connected via delegated access using 14d82eec-xxxx-xxxx-xxxx-296a70dab67e

Readme: https://aka.ms/graph/sdk/powershell

SDK Docs: https://aka.ms/graph/sdk/powershell/docs

API Docs: https://aka.ms/graph/docs

NOTE: You can use the -NoWelcome parameter to suppress this message.

✓ Utilisateur trouvé : Test PowerShell (test_powershell@XXXXXXXX.ps1)

Update-MgUser_UpdateExpanded: C:\TEMP\test_powershell@XXXXXXXX.ps1:13

Line |

13 | Update-MgUser -UserId $testUser -PasswordProfile @{

 |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | Insufficient privileges to complete the operation.  Status: 403 (Forbidden) ErrorCode:
 | Authorization_RequestDenied Date: 2025-11-04T17:02:19  Headers: Cache-Control                 : no-cache Vary
 | : Accept-Encoding Strict-Transport-Security     : max-age=31536000 request-id                    :
 | a773303e-xxxx-xxxx-xxxx-4cc3925327ee client-request-id             : cb8061c9-xxxx-xxxx-xxxx-cb41bb5f5e46
 | x-ms-ags-diagnostic           : {"ServerInfo":{"DataCenter":"West
 | Europe","Slice":"E","Ring":"5","ScaleUnit":"009","RoleInstance":"AM1PEPF000723E3"}} x-ms-resource-unit
 | : 1 Date                          : Tue, 04 Nov 2025 17:02:19 GMT

Recommendation: See service error codes: https://learn.microsoft.com/graph/errors ✓ Changement de mot de passe forcé avec succès pour : ******@XXXXXXXX.fr" L'utilisateur devra changer son mot de passe lors de sa prochaine connexion. Mais cela ne fonctionne pas Merci pour votre aide

Échange en ligne
Échange en ligne

Un service cloud inclus dans Microsoft 365, fournissant des fonctionnalités de messagerie et de collaboration évolutives avec des mises à jour automatiques et de gestion simplifiées.

0 commentaires Aucun commentaire

1 réponse

  1. Teddie-D 19,760 Points de réputation Personnel externe Microsoft Modérateur
    2025-11-06T04:08:13.79+00:00

    Cette réponse a été traduite automatiquement. Par conséquent, il peut y avoir des erreurs grammaticales ou des expressions étranges. 

    Bonjour @RSI Eveche94 

    Merci d’avoir publié votre question sur le forum Microsoft Q&A. 

    Veuillez noter que notre forum est une plateforme publique, et nous modifierons votre question pour masquer vos informations personnelles dans la description. Veuillez vous assurer de masquer toute information personnelle ou organisationnelle la prochaine fois que vous publierez une erreur ou d’autres détails afin de protéger les données personnelles. 

    Si vous rencontrez l’erreur 403 Forbidden (Authorization_RequestDenied) lors de l’exécution de Update-MgUser -PasswordProfile, même si votre compte possède plusieurs rôles d’administrateur y compris Global Admin, le problème provient probablement des autorisations de Microsoft Graph API, et non de PowerShell ou de vos affectations de rôle. 

    Cela se produit parce que le SDK Graph utilise par défaut des autorisations déléguées lorsque vous vous connectez de manière interactive. Même en tant qu’administrateur général, votre jeton d’accès peut ne pas inclure les étendues nécessaires comme User.ReadWrite.All

    Voici quelques options que vous pouvez essayer pour résoudre ce problème : 

    1.Utiliser Connect-MgGraph avec des étendues élevées 

    Exécutez PowerShell en tant qu’administrateur et connectez-vous avec les étendues requises : 

    Disconnect-MgGraph 
    Connect-MgGraph -Scopes "User.ReadWrite.All"
    

    Vous serez invité à accorder le consentement (ou le consentement d’administrateur s’il n’a pas été accordé auparavant). Ensuite, réessayez votre commande : 

    $userUPN = "<******@domain.com>"
    Update-MgUser -UserId $userUPN -PasswordProfile @{
        ForceChangePasswordNextSignIn = $true
        Password = $newPassword
    }
    

    Si cela fonctionne, cela confirme que le problème était dû à des étendues Graph déléguées manquantes. 

    2.Utiliser un enregistrement d’application avec des autorisations d’application 

    -Allez dans Entra ID > Enregistrements d’application > Nouvel enregistrement > Nommez votre application > Enregistrez 

    -Accédez à Autorisations API > Ajouter une autorisation > Microsoft Graph > Autorisations d’application : User.ReadWrite.All > Accordez le consentement d’administrateur pour ces autorisations. 

    -Utilisez un secret client ou un certificat pour vous connecter : 

    $tenantId = "your-tenant-id" 
    $clientId = "your-app-client-id" 
    $clientSecret = "your-client-secret" 
    Connect-MgGraph -ClientId $clientId -TenantId $tenantId -ClientSecret $clientSecret 
    

    Ensuite, exécutez la même commande Update-MgUser

    Cette méthode utilise des autorisations d’application, contournant les limites déléguées et est idéale pour les scripts et l’automatisation. 

    J’espère que ces informations vous seront utiles.  


    Si la réponse est utile, veuillez cliquer sur "Accepter la réponse" et la voter positivement. Si vous avez des questions supplémentaires concernant cette réponse, veuillez cliquer sur "Commentaire". 

    Remarque : Veuillez suivre les étapes de notre documentation pour activer les notifications par e-mail si vous souhaitez recevoir la notification par e-mail liée à ce fil de discussion. 

    Cette réponse a-t-elle été utile ?


Votre réponse

Les réponses peuvent être marquées comme « Acceptées » par l’auteur de la question et « Recommandées » par les modérateurs, ce qui aide les utilisateurs à savoir que la réponse a résolu le problème de l’auteur.