Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli utenti sono la rappresentazione di un account utente aziendale o dell'istituto di istruzione Microsoft Entra o di un account Microsoft personale in Microsoft Entra ID. La risorsa utente in Microsoft Entra PowerShell è la rappresentazione di un utente e include relazioni e risorse rilevanti per l'utente.
La risorsa utente offre un modo semplice per accedere e modificare le risorse utente senza dover eseguire chiamate aggiuntive, cercare informazioni di autenticazione specifiche ed eseguire direttamente query su altri oggetti di PowerShell Microsoft Entra.
Prerequisiti
Per gestire gli utenti con Microsoft Entra PowerShell, è necessario:
- Un account utente di Microsoft Entra. Se non è già disponibile, è possibile Creare un account gratuitamente.
- Almeno il ruolo Amministratore applicazione cloud .
- Modulo PowerShell Microsoft Entra installato. Seguire la guida Installare il modulo di PowerShell Microsoft Entra per installare il modulo.
È possibile accedere alle informazioni di un utente e gestire i propri dati per loro conto o come app con la propria identità.
Inserire un utente
Per eseguire l'onboarding di un utente, creare un nuovo account utente in Microsoft Entra ID. Questo processo comporta la configurazione del profilo dell'utente, inclusi il nome visualizzato, l'indirizzo di posta elettronica e la password.
Creare un utente
In questo esempio viene creato un nuovo utente.
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
L'output visualizza i dettagli dell'utente appena creato.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
New User aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NewUser@contoso.com
Creare utenti in blocco
Per creare più utenti in blocco, è possibile usare un file CSV. Il file CSV deve contenere gli attributi utente necessari, ad esempio 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
}
| Nome | Cognome | DisplayName | Indirizzo email | Dipartimento | MailNickName |
|---|---|---|---|---|---|
| Adele | Vance | Adele Vance | adelev@contoso.com | Marketing | adelev |
L'output visualizza i dettagli degli utenti appena creati.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Adele Vance aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb adelev@contoso.com
Aggiornare la password di un utente
Per aggiornare la password di un utente da parte dell'amministratore, usare questo comando:
Connect-Entra -Scopes 'Directory.AccessAsUser.All' $newPassword = '<strong-password>' $securePassword = ConvertTo-SecureString $newPassword -AsPlainText -Force Set-EntraUserPasswordProfile -UserId 'SawyerM@contoso.com' -Password $securePasswordPer aggiornare la password per l'utente connesso (self-service), usare questo 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 $newPasswordQuesto comando consente agli utenti di modificare le proprie password senza privilegi di amministratore.
Caricare o recuperare una foto per l'utente
Caricare una foto per un utente.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com' -FilePath 'D:\UserThumbnailPhoto.jpg'In questo esempio la foto di anteprima dell'utente specificata con il parametro UserId viene impostata sull'immagine specificata con il parametro FilePath.
Recuperare la foto di un utente.
Connect-Entra -Scopes 'ProfilePhoto.Read.All' Get-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com'In questo esempio viene illustrato come recuperare la foto di anteprima di un utente specificato tramite il valore del
UserIdparametro .
Concedere agli utenti ruoli amministrativi nell'organizzazione
La concessione di ruoli amministrativi agli utenti nell'organizzazione consente loro di eseguire attività specifiche e gestire le risorse. È possibile assegnare utenti a ruoli come Amministratore gruppo, Amministratore utenti o altri ruoli personalizzati.
Per informazioni su come assegnare ruoli agli utenti usando Microsoft Entra PowerShell, vedere Assegnare ruoli agli utenti.
Cerca utenti
È possibile cercare gli utenti nell'organizzazione usando vari attributi, ad displayNameesempio , mailNicknameuserPrincipalName, department e jobTitle. Nell'esempio seguente viene illustrato come cercare un utente in base a userPrincipalName
Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "userPrincipalName eq 'SawyerM@contoso.com'"
L'output mostra i dettagli dell'utente sulla base di una ricerca userPrincipalName.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Sawyer Miller aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb SawyerM@contoso.com SawyerM@contoso.com
Controllare gli utenti in base a determinati criteri
È possibile controllare gli utenti in base a determinati criteri, ad esempio l'attività di accesso e le appartenenze ai gruppi. Questa funzionalità consente di tenere traccia delle attività degli utenti e di gestire l'accesso alle risorse.
Recuperare l'attività di accesso di un utente
Nell'esempio seguente viene illustrato come recuperare l'attività di accesso di un utente specifico.
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'
L'output mostra l'attività di accesso dell'utente.
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
Scarica l'attività di accesso di tutti gli utenti
Nell'esempio seguente vengono recuperati tutti gli account utente con licenza e l'ultima attività di accesso riuscita. Esporta i dati in un file CSV per un'ulteriore analisi.
# 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: $_"
}
Questo esempio recupera sia le ultime date di accesso che le ultime date di accesso riuscite per tutti gli utenti dell'organizzazione. I dati vengono quindi esportati in un file CSV denominato lastSignIns.csv nella C:\temp directory .
Elencare le appartenenze ai gruppi di un utente
Nell'esempio seguente vengono elencati i gruppi di cui un utente è membro.
Connect-Entra -Scopes 'User.Read'
Get-EntraUserMembership -UserId 'SawyerM@contoso.com' |
Select-Object Id, displayName, createdDateTime, '@odata.type' |
Format-Table -AutoSize
L'output mostra le appartenenze dell'utente.
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
Usare questi comandi per elencare le entità a cui appartiene un utente:
- Get-EntraUserAdministrativeUnit : per recuperare un elenco di unità amministrative a cui appartiene un utente.
- Get-EntraUserGroup : per recuperare un elenco di gruppi a cui appartiene un utente.
- Get-EntraUserRole : per recuperare un elenco di ruoli della directory assegnati a un utente.
Ottenere il responsabile di un utente, indirizzare i report e assegnare un responsabile a un utente
Ottieni il responsabile di un utente.
Connect-Entra -Scopes 'User.Read.All' Get-EntraUserManager -UserId 'SawyerM@contoso.com' | Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType | Format-Table -AutoSizeL'output mostra il responsabile dell'utente.
id displayName userPrincipalName createdDateTime accountEnabled userType -- ----------- ----------------- --------------- -------------- -------- 11bb11bb-cc22-dd33-ee44-55ff55ff55ff Patti Fernandez PattiF@Contoso.com 10/7/2024 12:32:01 AM True MemberElencare gli utenti che segnalano a un utente specifico.
Connect-Entra -Scopes 'User.Read','User.Read.All' Get-EntraUserDirectReport -UserId 'SawyerM@contoso.com' | Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType | Format-Table -AutoSizeL'output mostra il report diretto dell'utente.
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 MemberAssegnare un manager a un utente.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserManager -UserId 'SawyerM@contoso.com' -ManagerId 'AdeleV@contoso.com'-
-UserId: specifica l'ID (come UserPrincipalName o User ObjectId) di un utente in Microsoft Entra ID. -
-ManagerId- specifica l'ID, come UserPrincipalName o User ObjectId, dell'oggetto Microsoft Entra ID da assegnare come manager.
-
Elencare gli utenti senza manager
Questo esempio elenca gli utenti senza un responsabile, consentendo di identificare account orfani, account di servizio o profili non configurati correttamente per la pulizia.
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
L'output elenca gli utenti senza manager.
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
Elencare gli utenti disabilitati
Nell'esempio seguente viene generato un elenco di account disabilitati.
Connect-Entra -Scopes 'User.ReadWrite.All'
Get-EntraUser -Filter "accountEnabled eq false" | Select-Object DisplayName, Id, Mail, UserPrincipalName
L'output elenca gli utenti disabilitati.
DisplayName Id Mail userPrincipalName
----------- -- ---- -----------------
Sawyer Miller hhhhhhhh-7777-8888-9999-iiiiiiiiiiii SawyerM@contoso.com
Kez Michael eeeeeeee-4444-5555-6666-ffffffffffff KezM@contoso.com