Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os utilizadores são a representação de uma conta profissional ou escolar no Microsoft Entra ou de uma conta Microsoft pessoal no Microsoft Entra ID. O recurso de utilizador no Microsoft Entra PowerShell é a representação de um utilizador, incluindo relações e recursos relevantes para o utilizador.
O recurso do utilizador oferece uma forma direta de aceder e manipular recursos do utilizador sem ter de fazer chamadas extra, consultar informações específicas de autenticação e emitir consultas diretamente contra outros objetos PowerShell do Microsoft Entra.
Pré-requisitos
Para gerir utilizadores com o Microsoft Entra PowerShell, precisa de:
- Uma conta de usuário do Microsoft Entra. Se ainda não tiveres uma, podes Criar uma conta gratuitamente.
- Pelo menos o papel de Administrador de Aplicações Cloud .
- Módulo PowerShell Microsoft Entra instalado. Siga o guia Instalar o módulo PowerShell da Microsoft Entra para instalar o módulo.
Pode aceder à informação de um utilizador e gerir os seus dados em seu nome ou como uma aplicação com identidade própria.
Integrar um utilizador
Para integrar um utilizador, cria uma nova conta de utilizador no Microsoft Entra ID. Este processo envolve a criação do perfil do utilizador, incluindo o seu nome de visualização, endereço de email e palavra-passe.
Criar um utilizador
Este exemplo cria um novo utilizador.
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 mostra detalhes do utilizador recém-criado.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
New User aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NewUser@contoso.com
Criar utilizadores em massa
Para criar múltiplos utilizadores em massa, pode usar um ficheiro CSV. O ficheiro CSV deve conter os atributos necessários do utilizador, como DisplayName, UserPrincipalName, e 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 | Apelido | DisplayName | Endereço de e-mail | Departamento | MailNickName |
|---|---|---|---|---|---|
| Adele | Vance | Adele Vance | adelev@contoso.com | Marketing | adelev |
A saída apresenta detalhes dos utilizadores recém-criados.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Adele Vance aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb adelev@contoso.com
Atualizar a palavra-passe de um utilizador
Para atualizar a palavra-passe de um utilizador por 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 palavra-passe do utilizador com sessão iniciada (autosserviço), 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 $newPasswordEste comando permite aos utilizadores alterar as suas próprias palavras-passe sem privilégios de administrador.
Carregar ou recuperar uma fotografia para o utilizador
Carrega uma foto para um utilizador.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com' -FilePath 'D:\UserThumbnailPhoto.jpg'Este exemplo define a fotografia em miniatura do utilizador especificada com o parâmetro UserId para a imagem especificada com o parâmetro FilePath.
Obtenha a fotografia de um utilizador.
Connect-Entra -Scopes 'ProfilePhoto.Read.All' Get-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com'Este exemplo demonstra como recuperar a fotografia em miniatura de um utilizador especificada através do valor do
UserIdparâmetro.
Conceda aos utilizadores funções administrativas na sua organização
Conceder aos utilizadores funções administrativas na sua organização permite-lhes realizar tarefas específicas e gerir recursos. Pode atribuir aos utilizadores funções como Administrador de Grupo, Administrador de Utilizadores ou outros papéis personalizados.
Para aprender a atribuir funções a utilizadores usando o Microsoft Entra PowerShell, consulte Atribuir funções aos utilizadores.
Pesquisar utilizadores
Pode procurar utilizadores na sua organização com base em vários atributos, como displayName, mailNickname, userPrincipalName, department e jobTitle. O exemplo seguinte mostra como pesquisar um utilizador por userPrincipalName
Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "userPrincipalName eq 'SawyerM@contoso.com'"
O resultado mostra os dados do utilizador com base numa userPrincipalName pesquisa.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Sawyer Miller aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb SawyerM@contoso.com SawyerM@contoso.com
Auditar os utilizadores por determinados critérios
Pode auditar os utilizadores com base em determinados critérios, como a atividade de início de sessão e a pertença a grupos. Esta funcionalidade ajuda-o a acompanhar a atividade dos utilizadores e a gerir o seu acesso aos recursos.
Recuperar a atividade de início de sessão de um utilizador
O exemplo seguinte mostra como recuperar a atividade de início de sessão de um utilizador 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'
O resultado mostra a atividade de início de sessão do utilizador.
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
Descarregue todas as atividades de início de sessão dos utilizadores
O exemplo seguinte recupera todas as contas de utilizador licenciadas e a sua última atividade de início de sessão bem-sucedida. Exporta os dados para um ficheiro 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 tanto a última data de início de sessão como a última data bem-sucedida de todos os utilizadores da sua organização. Os dados são então exportados para um ficheiro CSV nomeado lastSignIns.csv no C:\temp diretório.
Listar as pertenças de grupos de um utilizador
O exemplo seguinte lista os grupos a que um utilizador pertence.
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 afiliações do utilizador.
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 a que um utilizador pertence:
- Get-EntraUserAdministrativeUnit - para recuperar uma lista das unidades administrativas a que um utilizador pertence.
- Get-EntraUserGroup - para recuperar uma lista de grupos a que um utilizador pertence.
- Get-EntraUserRole - para recuperar uma lista de funções de diretório atribuídas a um utilizador.
Arranja um gestor de utilizador, subordinados diretos e atribui um gestor a um utilizador
Arranja um gestor de utilizadores.
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 gestor do utilizador.
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 utilizadores que reportam a um utilizador 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 subordinado direto do utilizador.
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 MemberAtribua um gestor a um utilizador.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserManager -UserId 'SawyerM@contoso.com' -ManagerId 'AdeleV@contoso.com'-
-UserId- especifica o ID (como UserPrincipalName ou User ObjectId) de um utilizador no Microsoft Entra ID. -
-ManagerId- especifica o ID como UserPrincipalName ou User ObjectId) do objeto Microsoft Entra ID para atribuir como gestor.
-
Listar utilizadores sem gestores
Este exemplo lista utilizadores sem gestor, ajudando a identificar contas órfãs, contas de serviço ou perfis mal configurados 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 utilizadores sem gestores.
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 utilizadores com deficiência
O exemplo seguinte gera uma lista de contas desativadas.
Connect-Entra -Scopes 'User.ReadWrite.All'
Get-EntraUser -Filter "accountEnabled eq false" | Select-Object DisplayName, Id, Mail, UserPrincipalName
O resultado apresenta utilizadores desativados.
DisplayName Id Mail userPrincipalName
----------- -- ---- -----------------
Sawyer Miller hhhhhhhh-7777-8888-9999-iiiiiiiiiiii SawyerM@contoso.com
Kez Michael eeeeeeee-4444-5555-6666-ffffffffffff KezM@contoso.com