Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Användare är en representation av ett Microsoft Entra arbets- eller skolanvändarkonto eller ett personligt Microsoft-konto i Microsoft Entra ID. Användarresursen i Microsoft Entra PowerShell är en representation av en användare och innehåller relationer och resurser som är relevanta för användaren.
Användarresursen är ett enkelt sätt för dig att komma åt och manipulera användarresurser utan att behöva utföra extra anrop, söka efter specifik autentiseringsinformation och direkt utfärda frågor mot andra Microsoft Entra PowerShell-objekt.
Förutsättningar
Om du vill hantera användare med Microsoft Entra PowerShell behöver du:
- Ett Microsoft Entra användarkonto. Om du inte redan har ett konto kan du Skapa ett konto kostnadsfritt.
- Minst rollen Molnprogramadministratör .
- Microsoft Entra PowerShell-modul installerad. Följ modulguiden Installera Microsoft Entra PowerShell för att installera modulen.
Du kan komma åt en användares information och hantera deras data för deras räkning eller som en app med sin egen identitet.
Registrera en användare
Om du vill registrera en användare skapar du ett nytt användarkonto i Microsoft Entra ID. Den här processen omfattar att konfigurera användarens profil, inklusive deras visningsnamn, e-postadress och lösenord.
Skapa en användare
I det här exemplet skapas en ny användare.
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
Utdata visar information om den nyligen skapade användaren.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
New User aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NewUser@contoso.com
Massskapa användare
Om du vill skapa flera användare i grupp kan du använda en CSV-fil. CSV-filen ska innehålla nödvändiga användarattribut, till exempel DisplayName, UserPrincipalNameoch 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
}
| FirstName | Efternamn | DisplayName | E-postadress | Avdelning | E-postsmeknamn |
|---|---|---|---|---|---|
| Adele | Vance | Adele Vance | adelev@contoso.com | Marketing | adelev |
Utdata visar information om de nyligen skapade användarna.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Adele Vance aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb adelev@contoso.com
Uppdatera en användares lösenord
Om du vill uppdatera en användares lösenord av administratören använder du det här kommandot:
Connect-Entra -Scopes 'Directory.AccessAsUser.All' $newPassword = '<strong-password>' $securePassword = ConvertTo-SecureString $newPassword -AsPlainText -Force Set-EntraUserPasswordProfile -UserId 'SawyerM@contoso.com' -Password $securePasswordOm du vill uppdatera lösenordet för den inloggade användaren (självbetjäning) använder du det här kommandot:
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 $newPasswordMed det här kommandot kan användare ändra sina egna lösenord utan administratörsbehörighet.
Ladda upp eller hämta ett foto för användaren
Ladda upp ett foto för en användare.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com' -FilePath 'D:\UserThumbnailPhoto.jpg'I det här exemplet anges miniatyrbilden för användaren som angetts med parametern UserId till den bild som angetts med parametern FilePath.
Hämta en användares foto.
Connect-Entra -Scopes 'ProfilePhoto.Read.All' Get-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com'Det här exemplet visar hur du hämtar miniatyrbilden för en användare som anges via parameterns
UserIdvärde.
Bevilja användare administrativa roller i din organisation
Genom att ge användarna administrativa roller i organisationen kan de utföra specifika uppgifter och hantera resurser. Du kan tilldela användare till roller som gruppadministratör, användaradministratör eller andra anpassade roller.
Information om hur du tilldelar roller till användare med hjälp av Microsoft Entra PowerShell finns i Tilldela roller till användare.
Sök användare
Du kan söka efter användare i din organisation med hjälp av olika attribut som displayName, mailNickname, userPrincipalNamedepartment och jobTitle. I följande exempel visas hur du söker efter en användare efter userPrincipalName
Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "userPrincipalName eq 'SawyerM@contoso.com'"
Utdata visar användarinformation baserat på en userPrincipalName sökning.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Sawyer Miller aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb SawyerM@contoso.com SawyerM@contoso.com
Granska användare efter vissa kriterier
Du kan granska användare efter vissa kriterier, till exempel inloggningsaktivitet och gruppmedlemskap. Den här funktionen hjälper dig att spåra användaraktivitet och hantera deras åtkomst till resurser.
Hämta en användares inloggningsaktivitet
I följande exempel visas hur du hämtar inloggningsaktiviteten för en viss användare.
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'
Utdata visar användarens inloggningsaktivitet.
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
Ladda ned alla användares inloggningsaktivitet
I följande exempel hämtas alla licensierade användarkonton och deras senaste lyckade inloggningsaktivitet. Den exporterar data till en CSV-fil för ytterligare analys.
# 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: $_"
}
Det här exemplet hämtar både senaste inloggningsdatum och senaste lyckade inloggningsdatum för alla användare i din organisation. Data exporteras sedan till en CSV-fil med namnet lastSignIns.csv i C:\temp katalogen.
Visa en lista över en användares gruppmedlemskap
I följande exempel visas de grupper som en användare är medlem i.
Connect-Entra -Scopes 'User.Read'
Get-EntraUserMembership -UserId 'SawyerM@contoso.com' |
Select-Object Id, displayName, createdDateTime, '@odata.type' |
Format-Table -AutoSize
Utdata visar användarens medlemskap.
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
Använd dessa kommandon för att visa en lista över de entiteter som en användare tillhör:
- Get-EntraUserAdministrativeUnit – för att hämta en lista över administrativa enheter som en användare tillhör.
- Get-EntraUserGroup – för att hämta en lista över grupper som en användare tillhör.
- Get-EntraUserRole – för att hämta en lista över katalogroller som tilldelats en användare.
Hämta en användares chef, dirigera rapporter och tilldela en chef till en användare
Hämta en användares chef.
Connect-Entra -Scopes 'User.Read.All' Get-EntraUserManager -UserId 'SawyerM@contoso.com' | Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType | Format-Table -AutoSizeResultatet visar användarens chef.
id displayName userPrincipalName createdDateTime accountEnabled userType -- ----------- ----------------- --------------- -------------- -------- 11bb11bb-cc22-dd33-ee44-55ff55ff55ff Patti Fernandez PattiF@Contoso.com 10/7/2024 12:32:01 AM True MemberVisa en lista över användare som rapporterar till en viss användare.
Connect-Entra -Scopes 'User.Read','User.Read.All' Get-EntraUserDirectReport -UserId 'SawyerM@contoso.com' | Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType | Format-Table -AutoSizeUtdata visar användarens direktrapport.
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 MemberTilldela en ansvarig till en användare.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserManager -UserId 'SawyerM@contoso.com' -ManagerId 'AdeleV@contoso.com'-
-UserId– anger ID :t (som UserPrincipalName eller User ObjectId) för en användare i Microsoft Entra ID. -
-ManagerId– anger ID:t som ett UserPrincipalName eller User ObjectId) för Microsoft Entra ID-objektet som ska utses till chef.
-
Lista användare utan chefer
I det här exemplet visas användare utan en chef som hjälper till att identifiera överblivna konton, tjänstkonton eller felkonfigurerade profiler för rensning.
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
Utdata visar användare utan chefer.
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
Lista inaktiverade användare
I följande exempel genereras en lista över inaktiverade konton.
Connect-Entra -Scopes 'User.ReadWrite.All'
Get-EntraUser -Filter "accountEnabled eq false" | Select-Object DisplayName, Id, Mail, UserPrincipalName
Utdata visar inaktiverade användare.
DisplayName Id Mail userPrincipalName
----------- -- ---- -----------------
Sawyer Miller hhhhhhhh-7777-8888-9999-iiiiiiiiiiii SawyerM@contoso.com
Kez Michael eeeeeeee-4444-5555-6666-ffffffffffff KezM@contoso.com