Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os usuários representam uma conta corporativa ou escolar de usuário do Microsoft Entra, ou uma conta pessoal da Microsoft, no Microsoft Entra ID. O recurso de usuário no Microsoft Entra PowerShell é a representação de um usuário e inclui relações e recursos relevantes para o usuário.
O recurso de usuário fornece uma maneira simples de acessar e manipular recursos do usuário sem precisar executar chamadas extras, pesquisar informações de autenticação específicas e emitir consultas diretamente em relação a outros objetos do PowerShell Microsoft Entra.
Prerequisites
Para gerenciar usuários com Microsoft Entra PowerShell, você precisa:
- Uma conta de usuário do Microsoft Entra. Se você ainda não tem uma conta, é possível criar uma conta gratuita.
- Pelo menos a função administrador de aplicativos de nuvem .
- Módulo do PowerShell do Microsoft Entra instalado. Siga o guia Instalar o módulo Microsoft Entra PowerShell para instalar o módulo.
Você pode acessar as informações de um usuário e gerenciar seus dados em seu nome ou como um aplicativo com sua própria identidade.
Integrar um usuário
Para integrar um usuário, crie uma nova conta de usuário no Microsoft Entra ID. Esse processo envolve a configuração do perfil do usuário, incluindo o nome de exibição, o endereço de email e a senha.
Criar um usuário
Este exemplo cria um novo usuário.
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
A saída exibe detalhes do usuário recém-criado.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
New User aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NewUser@contoso.com
Criar usuários em massa
Para criar vários usuários em massa, você pode usar um arquivo CSV. O arquivo CSV deve conter os atributos de usuário necessários, como DisplayName, UserPrincipalNamee 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
}
| Primeiro Nome | Sobrenome | DisplayName | Endereço de Email | Departamento | MailNickName |
|---|---|---|---|---|---|
| Adele | Vance | Adele Vance | adelev@contoso.com | Marketing | adelev |
A saída exibe detalhes dos usuários recém-criados.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Adele Vance aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb adelev@contoso.com
Atualizar a senha de um usuário
Para atualizar a senha de um usuário pelo administrador, use este comando:
Connect-Entra -Scopes 'Directory.AccessAsUser.All' $newPassword = '<strong-password>' $securePassword = ConvertTo-SecureString $newPassword -AsPlainText -Force Set-EntraUserPasswordProfile -UserId 'SawyerM@contoso.com' -Password $securePasswordPara atualizar a senha do usuário conectado (autoatendimento), use este comando:
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 $newPasswordEsse comando permite que os usuários alterem suas próprias senhas sem privilégios de administrador.
Enviar ou recuperar uma foto para o usuário
Carregue uma foto para um usuário.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com' -FilePath 'D:\UserThumbnailPhoto.jpg'Este exemplo define a foto em miniatura do usuário especificada com o parâmetro UserId para a imagem especificada com o parâmetro FilePath.
Recupere a foto de um usuário.
Connect-Entra -Scopes 'ProfilePhoto.Read.All' Get-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com'Este exemplo demonstra como recuperar a foto em miniatura de um usuário que é especificada por meio do valor do
UserIdparâmetro.
Conceder aos usuários funções administrativas em sua organização
A concessão de funções administrativas aos usuários em sua organização permite que eles executem tarefas específicas e gerenciem recursos. Você pode atribuir usuários a funções como Administrador de Grupo, Administrador de Usuário ou outras funções personalizadas.
Para saber como atribuir funções a usuários usando Microsoft Entra PowerShell, consulte Atribuir funções aos usuários.
Pesquisar usuários
Você pode pesquisar usuários em sua organização usando vários atributos, como displayName, e mailNicknameuserPrincipalNamedepartmentjobTitle. O exemplo a seguir mostra como pesquisar um usuário por userPrincipalName
Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "userPrincipalName eq 'SawyerM@contoso.com'"
A saída mostra os detalhes do usuário com base em uma pesquisa de userPrincipalName.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Sawyer Miller aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb SawyerM@contoso.com SawyerM@contoso.com
Auditar usuários por determinados critérios
Você pode auditar os usuários por determinados critérios, como atividade de entrada e associações de grupo. Esse recurso ajuda a controlar a atividade do usuário e gerenciar o acesso deles aos recursos.
Recuperar a atividade de entrada de um usuário
O exemplo a seguir mostra como recuperar a atividade de entrada de um usuário específico.
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'
A saída mostra a atividade de login do usuário.
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
Baixar a atividade de login de todos os usuários
O exemplo a seguir recupera todas as contas de usuário licenciadas e sua última atividade de entrada bem-sucedida. Ele exporta os dados para um arquivo CSV para análise posterior.
# 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: $_"
}
Este exemplo recupera a última entrada e as últimas datas de entrada bem-sucedidas para todos os usuários em sua organização. Em seguida, os dados são exportados para um arquivo CSV nomeado lastSignIns.csv no C:\temp diretório.
Listar associações de grupo de um usuário
O exemplo a seguir lista os grupos dos quais um usuário é membro.
Connect-Entra -Scopes 'User.Read'
Get-EntraUserMembership -UserId 'SawyerM@contoso.com' |
Select-Object Id, displayName, createdDateTime, '@odata.type' |
Format-Table -AutoSize
A saída mostra as associações do usuário.
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
Use estes comandos para listar as entidades às quais um usuário pertence:
- Get-EntraUserAdministrativeUnit – para recuperar uma lista de unidades administrativas às quais um usuário pertence.
- Get-EntraUserGroup – para recuperar uma lista de grupos aos quais um usuário pertence.
- Get-EntraUserRole – para recuperar uma lista de funções de diretório atribuídas a um usuário.
Obter o gerente de um usuário, direcionar relatórios e atribuir um gerente a um usuário
Obtenha o gerenciador de um usuário.
Connect-Entra -Scopes 'User.Read.All' Get-EntraUserManager -UserId 'SawyerM@contoso.com' | Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType | Format-Table -AutoSizeA saída mostra o gerente do usuário.
id displayName userPrincipalName createdDateTime accountEnabled userType -- ----------- ----------------- --------------- -------------- -------- 11bb11bb-cc22-dd33-ee44-55ff55ff55ff Patti Fernandez PattiF@Contoso.com 10/7/2024 12:32:01 AM True MemberListe os usuários que se reportam a um usuário específico.
Connect-Entra -Scopes 'User.Read','User.Read.All' Get-EntraUserDirectReport -UserId 'SawyerM@contoso.com' | Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType | Format-Table -AutoSizeA saída mostra o relatório direto do usuário.
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 MemberAtribuir um gerente a um usuário.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserManager -UserId 'SawyerM@contoso.com' -ManagerId 'AdeleV@contoso.com'-
-UserId– especifica a ID (como UserPrincipalName ou User ObjectId) de um usuário no Microsoft Entra ID. -
-ManagerId- especifica a ID como UserPrincipalName ou User ObjectId do objeto do Microsoft Entra ID a ser atribuído como gerente.
-
Listar usuários sem gerentes
Este exemplo lista os usuários sem um gerente, ajudando a identificar contas órfãs, contas de serviço ou perfis configurados incorretamente para limpeza.
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
A saída lista usuários sem gerentes.
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
Listar usuários desabilitados
O exemplo a seguir gera uma lista de contas desabilitadas.
Connect-Entra -Scopes 'User.ReadWrite.All'
Get-EntraUser -Filter "accountEnabled eq false" | Select-Object DisplayName, Id, Mail, UserPrincipalName
A saída lista usuários desabilitados.
DisplayName Id Mail userPrincipalName
----------- -- ---- -----------------
Sawyer Miller hhhhhhhh-7777-8888-9999-iiiiiiiiiiii SawyerM@contoso.com
Kez Michael eeeeeeee-4444-5555-6666-ffffffffffff KezM@contoso.com