Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les utilisateurs sont la représentation d’un compte d’utilisateur professionnel ou scolaire Microsoft Entra ou d’un compte Microsoft personnel dans Microsoft Entra ID. La ressource utilisateur dans Microsoft Entra PowerShell est la représentation d’un utilisateur et inclut des relations et des ressources pertinentes pour l’utilisateur.
La ressource utilisateur offre un moyen simple d’accéder aux ressources utilisateur et de les manipuler sans avoir à effectuer d’appels supplémentaires, rechercher des informations d’authentification spécifiques et émettre directement des requêtes sur d’autres objets PowerShell Microsoft Entra.
Prerequisites
Pour gérer les utilisateurs avec Microsoft Entra PowerShell, vous avez besoin des éléments suivants :
- Un compte d’utilisateur Microsoft Entra. Si vous n’en avez pas encore, vous pouvez créer un compte gratuitement.
- Au moins le rôle Administrateur d’application cloud .
- Le module PowerShell Microsoft Entra est installé. Suivez le guide d’installation du module Microsoft Entra PowerShell pour installer le module.
Vous pouvez accéder aux informations d’un utilisateur et gérer ses données en son nom ou en tant qu’application avec sa propre identité.
Intégrer un utilisateur
Pour intégrer un utilisateur, vous créez un compte d’utilisateur dans Microsoft Entra ID. Ce processus implique la configuration du profil de l’utilisateur, y compris son nom complet, son adresse e-mail et son mot de passe.
Créer un utilisateur
Cet exemple crée un utilisateur.
Connect-Entra -Scopes 'User.ReadWrite.All'
$passwordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$passwordProfile.Password = '<Strong-Password>'
$userParams = @{
DisplayName = 'New User'
PasswordProfile = $passwordProfile
UserPrincipalName = 'NewUser@contoso.com'
AccountEnabled = $true
MailNickName = 'NewUser'
}
New-EntraUser @userParams
La sortie affiche les détails de l’utilisateur nouvellement créé.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
New User aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NewUser@contoso.com
Créer des utilisateurs en bloc
Pour créer plusieurs utilisateurs en bloc, vous pouvez utiliser un fichier CSV. Le fichier CSV doit contenir les attributs utilisateur nécessaires, tels que DisplayName, UserPrincipalNameet PasswordProfile.
# Connect to Microsoft Entra PowerShell
Connect-Entra -Scopes 'User.ReadWrite.All'
# Create a new Password Profile for the new users. We'll be using the same password for all new users in this example
$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$PasswordProfile.Password = '<Your-Password>'
# Import the csv file. You will need to specify the path and file name of the CSV file in this cmdlet
$NewUsers = import-csv -Path '<path-to-your-csv-file>'
# Loop through all new users in the file to create them in Microsoft Entra ID
ForEach ($user in $NewUsers) {
# Create a new user in Microsoft Entra ID
New-EntraUser -UserPrincipalName $user.'EmailAddress' -DisplayName $user.'DisplayName' -GivenName $user.'FirstName' -Surname $user.'LastName' -Department $user.'Department' -MailNickname $user.'MailNickname' -AccountEnabled $true -PasswordProfile $passwordProfile
}
| Prénom | Nom de famille | DisplayName | Adresse e-mail | Département | MailNickName |
|---|---|---|---|---|---|
| Adele | Vance | Adele Vance | adelev@contoso.com | Marketing | adelev |
La sortie affiche les détails des utilisateurs nouvellement créés.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Adele Vance aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb adelev@contoso.com
Mettre à jour le mot de passe d’un utilisateur
Pour mettre à jour le mot de passe d’un utilisateur par administrateur, utilisez cette commande :
Connect-Entra -Scopes 'Directory.AccessAsUser.All' $newPassword = '<strong-password>' $securePassword = ConvertTo-SecureString $newPassword -AsPlainText -Force Set-EntraUserPasswordProfile -UserId 'SawyerM@contoso.com' -Password $securePasswordPour mettre à jour le mot de passe de l’utilisateur connecté (libre-service), utilisez cette commande :
Connect-Entra -Scopes 'Directory.AccessAsUser.All' $currentPassword = ConvertTo-SecureString '<strong-password>' -AsPlainText -Force $newPassword = ConvertTo-SecureString '<strong-password>' -AsPlainText -Force Set-EntraSignedInUserPassword -CurrentPassword $currentPassword -NewPassword $newPasswordCette commande permet aux utilisateurs de modifier leurs propres mots de passe sans privilèges d’administrateur.
Charger ou extraire une photo pour l’utilisateur
Chargez une photo pour un utilisateur.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com' -FilePath 'D:\UserThumbnailPhoto.jpg'Cet exemple montre comment définir la photo miniature de l’utilisateur spécifié avec le paramètre UserId sur l’image spécifiée avec le paramètre FilePath.
Récupérez la photo d’un utilisateur.
Connect-Entra -Scopes 'ProfilePhoto.Read.All' Get-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com'Cet exemple montre comment récupérer la photo miniature d’un utilisateur spécifié par le biais de la valeur du
UserIdparamètre.
Accorder aux utilisateurs des rôles d’administration dans votre organisation
L’octroi de rôles d’administration aux utilisateurs dans votre organisation leur permet d’effectuer des tâches spécifiques et de gérer les ressources. Vous pouvez affecter des utilisateurs à des rôles tels que l’administrateur de groupe, l’administrateur d’utilisateurs ou d’autres rôles personnalisés.
Pour savoir comment attribuer des rôles à des utilisateurs à l’aide de Microsoft Entra PowerShell, consultez Affecter des rôles aux utilisateurs.
Rechercher des utilisateurs
Vous pouvez rechercher des utilisateurs dans votre organisation à l’aide de différents attributs tels que displayName, , mailNicknameuserPrincipalName, department et jobTitle. L’exemple suivant montre comment rechercher un utilisateur par userPrincipalName
Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "userPrincipalName eq 'SawyerM@contoso.com'"
Le résultat affiche les détails de l’utilisateur à partir d’une recherche userPrincipalName.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Sawyer Miller aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb SawyerM@contoso.com SawyerM@contoso.com
Auditer les utilisateurs selon certains critères
Vous pouvez auditer les utilisateurs selon certains critères, tels que l’activité de connexion et les appartenances aux groupes. Cette fonctionnalité vous aide à suivre l’activité des utilisateurs et à gérer leur accès aux ressources.
Récupérer l’activité de connexion d’un utilisateur
L’exemple suivant montre comment récupérer l’activité de connexion d’un utilisateur spécifique.
Connect-Entra -Scopes 'User.Read.All','AuditLog.Read.All'
Get-EntraUser -UserId 'SawyerM@contoso.com' -Property 'SignInActivity' |
Select-Object -Property Id, DisplayName, UserPrincipalName -ExpandProperty 'SignInActivity'
La sortie affiche l’activité de connexion de l’utilisateur.
lastNonInteractiveSignInRequestId : bbbbbbbb-1111-2222-3333-aaaaaaaaaaaa
lastSignInRequestId : cccccccc-2222-3333-4444-dddddddddddd
lastSuccessfulSignInDateTime : 9/9/2024 1:12:13 PM
lastNonInteractiveSignInDateTime : 9/9/2024 1:12:13 PM
lastSuccessfulSignInRequestId : bbbbbbbb-1111-2222-3333-aaaaaaaaaaaa
lastSignInDateTime : 9/7/2024 9:15:41 AM
id : aaaaaaaa-bbbb-cccc-1111-222222222222
displayName : Sawyer Miller
userPrincipalName : SawyerM@contoso.com
Télécharger l’activité de connexion de tous les utilisateurs
L’exemple suivant récupère tous les comptes d’utilisateur sous licence et leur dernière activité de connexion réussie. Il exporte les données dans un fichier CSV pour une analyse plus approfondie.
# Connect to Microsoft Entra PowerShell
Connect-Entra -Scopes 'User.Read.All','AuditLog.Read.All','Directory.Read.All'
try {
Get-EntraUser -All -Property Id, UserPrincipalName, DisplayName, SignInActivity -ErrorAction Stop |
Select-Object `
Id, `
UserPrincipalName, `
DisplayName, `
@{ Name = 'LastSignInDateTime'; Expression = { $_.SignInActivity.LastSignInDateTime } }, `
@{ Name = 'LastSuccessfulSignInDateTime'; Expression = { $_.SignInActivity.LastSuccessfulSignInDateTime } } |
Export-Csv -Path 'C:\temp\lastSignIns.csv' -NoTypeInformation -Encoding UTF8 -ErrorAction Stop
Write-Host "Sign-in activity exported successfully to lastSignIns.csv"
}
catch {
Write-Error "Failed to retrieve or export data: $_"
}
Cet exemple récupère les dernières dates de connexion et de dernière connexion réussies pour tous les utilisateurs de votre organisation. Les données sont ensuite exportées vers un fichier CSV nommé lastSignIns.csv dans le C:\temp répertoire.
Répertorier les appartenances aux groupes d’un utilisateur
L’exemple suivant répertorie les groupes dont un utilisateur est membre.
Connect-Entra -Scopes 'User.Read'
Get-EntraUserMembership -UserId 'SawyerM@contoso.com' |
Select-Object Id, displayName, createdDateTime, '@odata.type' |
Format-Table -AutoSize
La sortie affiche les appartenances de l’utilisateur.
Id displayName createdDateTime @odata.type
-- ----------- --------------- -----------
00aa00aa-bb11-cc22-dd33-44ee44ee44ee Contoso 2024-10-06T08:49:16Z #microsoft.graph.group
22cc22cc-dd33-ee44-ff55-66aa66aa66aa Contoso marketing 2024-10-07T01:17:28Z #microsoft.graph.group
55ff55ff-aa66-bb77-cc88-99dd99dd99dd Pacific Admin Unit #microsoft.graph.administrativeUnit
Utilisez ces commandes pour répertorier les entités auxquelles appartient un utilisateur :
- Get-EntraUserAdministrativeUnit pour récupérer une liste d’unités administratives auxquelles appartient un utilisateur.
- Get-EntraUserGroup : pour récupérer une liste de groupes auxquels appartient un utilisateur.
- Get-EntraUserRole pour récupérer la liste des rôles d’annuaire attribués à un utilisateur.
Obtenir le responsable d'un utilisateur, ses subordonnés directs et attribuer un responsable à un utilisateur
Obtenir le responsable d'un utilisateur.
Connect-Entra -Scopes 'User.Read.All' Get-EntraUserManager -UserId 'SawyerM@contoso.com' | Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType | Format-Table -AutoSizeLa sortie affiche le gestionnaire de l’utilisateur.
id displayName userPrincipalName createdDateTime accountEnabled userType -- ----------- ----------------- --------------- -------------- -------- 11bb11bb-cc22-dd33-ee44-55ff55ff55ff Patti Fernandez PattiF@Contoso.com 10/7/2024 12:32:01 AM True MemberRépertorie les utilisateurs qui signalent à un utilisateur spécifique.
Connect-Entra -Scopes 'User.Read','User.Read.All' Get-EntraUserDirectReport -UserId 'SawyerM@contoso.com' | Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType | Format-Table -AutoSizeLa sortie affiche le rapport direct de l’utilisateur.
id displayName userPrincipalName createdDateTime accountEnabled userType -- ----------- ----------------- --------------- -------------- -------- bbbbbbbb-1111-2222-3333-cccccccccccc Christie Cline ChristieC@Contoso.com 10/7/2024 12:32:25 AM True Member aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb Isaiah Langer IsaiahL@Contoso.com 10/7/2024 12:33:16 AM True MemberAttribuez un responsable à un utilisateur.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserManager -UserId 'SawyerM@contoso.com' -ManagerId 'AdeleV@contoso.com'-
-UserId: spécifie l’ID (en tant que UserPrincipalName ou User ObjectId) d’un utilisateur dans Microsoft Entra ID. -
-ManagerId: spécifie l'ID sous forme de UserPrincipalName ou d'ObjectId utilisateur) de l'objet Microsoft Entra ID à attribuer comme responsable.
-
Répertorier les utilisateurs sans gestionnaires
Cet exemple répertorie les utilisateurs sans gestionnaire, ce qui permet d’identifier les comptes orphelins, les comptes de service ou les profils mal configurés pour le nettoyage.
Connect-Entra -Scopes 'User.Read.All'
$allUsers = Get-EntraUser -All
$usersWithoutManagers = foreach ($user in $allUsers) {
$manager = Get-EntraUserManager -UserId $user.Id -ErrorAction SilentlyContinue
if (-not $manager) {
[PSCustomObject]@{
Id = $user.Id
DisplayName = $user.DisplayName
UserPrincipalName = $user.UserPrincipalName
UserType = $user.userType
AccountEnabled = $user.accountEnabled
CreatedDateTime = $user.createdDateTime
}
}
}
$usersWithoutManagers | Format-Table Id, DisplayName, UserPrincipalName, CreatedDateTime, UserType, AccountEnabled -AutoSize
La sortie répertorie les utilisateurs sans gestionnaires.
Id DisplayName UserPrincipalName CreatedDateTime UserType AccountEnabled
-- ----------- ----------------- --------------- -------- --------------
cccccccc-2222-3333-4444-dddddddddddd New User NewUser@tenant.com 10/7/2024 2:24:26 PM Member True
bbbbbbbb-1111-2222-3333-cccccccccccc Sawyer Miller SawyerM@contoso.com 10/7/2024 12:33:36 AM Member True
Répertorier les utilisateurs désactivés
L’exemple suivant génère une liste de comptes désactivés.
Connect-Entra -Scopes 'User.ReadWrite.All'
Get-EntraUser -Filter "accountEnabled eq false" | Select-Object DisplayName, Id, Mail, UserPrincipalName
La sortie répertorie les utilisateurs désactivés.
DisplayName Id Mail userPrincipalName
----------- -- ---- -----------------
Sawyer Miller hhhhhhhh-7777-8888-9999-iiiiiiiiiiii SawyerM@contoso.com
Kez Michael eeeeeeee-4444-5555-6666-ffffffffffff KezM@contoso.com