Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pengguna merupakan representasi dari akun pengguna kerja atau sekolah Microsoft Entra atau Akun Microsoft pribadi di Microsoft Entra ID. Sumber daya pengguna di Microsoft Entra PowerShell adalah representasi pengguna, dan menyertakan hubungan dan sumber daya yang relevan dengan pengguna.
Sumber daya pengguna menyediakan cara mudah bagi Anda untuk mengakses dan memanipulasi sumber daya pengguna tanpa harus melakukan panggilan tambahan, mencari informasi autentikasi tertentu, dan langsung mengeluarkan kueri terhadap objek PowerShell Microsoft Entra lainnya.
Prasyarat
Untuk mengelola pengguna dengan Microsoft Entra PowerShell, Anda memerlukan:
- Akun pengguna Microsoft Entra. Jika Anda belum memilikinya, Anda dapat Membuat akun secara gratis.
- Setidaknya peran Administrator Aplikasi Cloud .
- Modul PowerShell Microsoft Entra telah diinstal. Ikuti panduan Menginstal modul PowerShell Microsoft Entra untuk menginstal modul.
Anda dapat mengakses informasi pengguna dan mengelola data mereka atas nama mereka atau sebagai aplikasi dengan identitasnya sendiri.
Tambahkan pengguna
Untuk onboarding pengguna, Anda membuat akun pengguna baru di Microsoft Entra ID. Proses ini melibatkan pengaturan profil pengguna, termasuk nama tampilan, alamat email, dan kata sandi mereka.
Buat pengguna
Contoh ini membuat pengguna baru.
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
Keluaran menampilkan detail dari pengguna yang baru dibuat.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
New User aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NewUser@contoso.com
Membuat pengguna secara massal
Untuk membuat beberapa pengguna secara massal, Anda dapat menggunakan file CSV. File CSV harus berisi atribut pengguna yang diperlukan, seperti DisplayName, , UserPrincipalNamedan 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
}
| Nama Depan | NamaBelakang | DisplayName | Alamat Email | Departemen | MailNickName |
|---|---|---|---|---|---|
| Adele | Vance | Adele Vance | adelev@contoso.com | Marketing | adelev |
Output tersebut menampilkan detail pengguna yang baru saja dibuat.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Adele Vance aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb adelev@contoso.com
Memperbarui kata sandi pengguna
Untuk memperbarui kata sandi pengguna oleh administrator, gunakan perintah ini:
Connect-Entra -Scopes 'Directory.AccessAsUser.All' $newPassword = '<strong-password>' $securePassword = ConvertTo-SecureString $newPassword -AsPlainText -Force Set-EntraUserPasswordProfile -UserId 'SawyerM@contoso.com' -Password $securePasswordUntuk memperbarui kata sandi untuk pengguna yang masuk (layanan mandiri), gunakan perintah ini:
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 $newPasswordPerintah ini memungkinkan pengguna untuk mengubah kata sandi mereka sendiri tanpa hak istimewa admin.
Mengunggah atau mengambil foto untuk pengguna
Unggah foto untuk pengguna.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com' -FilePath 'D:\UserThumbnailPhoto.jpg'Contoh ini menetapkan foto mini pengguna yang ditentukan dengan parameter UserId menjadi gambar yang ditentukan dengan parameter FilePath.
Ambil foto pengguna.
Connect-Entra -Scopes 'ProfilePhoto.Read.All' Get-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com'Contoh ini menunjukkan cara mengambil foto miniatur pengguna yang ditentukan melalui nilai parameter
UserId.
Memberikan peran administratif kepada pengguna di organisasi Anda
Memberikan peran administratif kepada pengguna di organisasi Anda memungkinkan mereka melakukan tugas tertentu dan mengelola sumber daya. Anda dapat menetapkan pengguna ke peran seperti Administrator Grup, Administrator Pengguna, atau peran kustom lainnya.
Untuk mempelajari cara menetapkan peran kepada pengguna menggunakan Microsoft Entra PowerShell, lihat Menetapkan peran kepada pengguna.
Mencari pengguna
Anda dapat mencari pengguna di organisasi Anda menggunakan berbagai atribut seperti displayName, , mailNicknameuserPrincipalName, department dan jobTitle. Contoh berikut menunjukkan cara mencari pengguna dengan userPrincipalName
Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "userPrincipalName eq 'SawyerM@contoso.com'"
Output menampilkan detail pengguna berdasarkan pencarian userPrincipalName.
DisplayName Id Mail UserPrincipalName
----------- -- ---- -----------------
Sawyer Miller aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb SawyerM@contoso.com SawyerM@contoso.com
Mengaudit pengguna berdasarkan kriteria tertentu
Anda dapat mengaudit pengguna berdasarkan kriteria tertentu, seperti aktivitas masuk, dan keanggotaan grup. Fitur ini membantu Anda melacak aktivitas pengguna dan mengelola akses mereka ke sumber daya.
Mendapatkan aktivitas masuk pengguna
Contoh berikut menunjukkan cara mengambil aktivitas masuk pengguna tertentu.
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'
Output menunjukkan aktivitas masuk pengguna.
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
Unduh semua aktivitas masuk pengguna
Contoh berikut mengambil semua akun pengguna berlisensi dan aktivitas masuk terakhir mereka yang berhasil. Ini mengekspor data ke file CSV untuk analisis lebih lanjut.
# 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: $_"
}
Contoh ini mengambil tanggal masuk terakhir dan tanggal terakhir berhasil masuk untuk semua pengguna di organisasi Anda. Data kemudian diekspor ke file CSV bernama lastSignIns.csv di C:\temp direktori.
Mencantumkan keanggotaan grup pengguna
Contoh berikut mencantumkan grup tempat pengguna menjadi anggota.
Connect-Entra -Scopes 'User.Read'
Get-EntraUserMembership -UserId 'SawyerM@contoso.com' |
Select-Object Id, displayName, createdDateTime, '@odata.type' |
Format-Table -AutoSize
Output menunjukkan keanggotaan pengguna.
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
Gunakan perintah ini untuk mencantumkan entitas milik pengguna:
- Get-EntraUserAdministrativeUnit - untuk mengambil daftar unit administratif tempat pengguna berada.
- Get-EntraUserGroup - untuk mengambil daftar grup milik pengguna.
- Get-EntraUserRole - untuk mengambil daftar peran direktori yang ditetapkan kepada pengguna.
Dapatkan manajer pengguna, bawahan langsung, dan tetapkan manajer untuk pengguna
Dapatkan manajer pengguna.
Connect-Entra -Scopes 'User.Read.All' Get-EntraUserManager -UserId 'SawyerM@contoso.com' | Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType | Format-Table -AutoSizeKeluaran menampilkan manajer pengguna.
id displayName userPrincipalName createdDateTime accountEnabled userType -- ----------- ----------------- --------------- -------------- -------- 11bb11bb-cc22-dd33-ee44-55ff55ff55ff Patti Fernandez PattiF@Contoso.com 10/7/2024 12:32:01 AM True MemberMencantumkan pengguna yang melapor ke pengguna tertentu.
Connect-Entra -Scopes 'User.Read','User.Read.All' Get-EntraUserDirectReport -UserId 'SawyerM@contoso.com' | Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType | Format-Table -AutoSizeOutput menunjukkan laporan langsung pengguna.
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 MemberTetapkan seorang manajer untuk seorang pengguna.
Connect-Entra -Scopes 'User.ReadWrite.All' Set-EntraUserManager -UserId 'SawyerM@contoso.com' -ManagerId 'AdeleV@contoso.com'-
-UserId- menentukan ID (sebagai UserPrincipalName atau User ObjectId) pengguna di Microsoft Entra ID. -
-ManagerId- menentukan ID berupa UserPrincipalName atau User ObjectId) dari objek Microsoft Entra ID yang akan ditetapkan sebagai manajer.
-
Mencantumkan pengguna tanpa manajer
Contoh ini menampilkan pengguna tanpa manajer, sehingga membantu mengidentifikasi akun yatim, akun layanan, atau profil yang salah dikonfigurasi untuk dibersihkan.
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
Keluaran mencantumkan pengguna tanpa manajer.
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
Mencantumkan pengguna yang dinonaktifkan
Contoh berikut menghasilkan daftar akun yang dinonaktifkan.
Connect-Entra -Scopes 'User.ReadWrite.All'
Get-EntraUser -Filter "accountEnabled eq false" | Select-Object DisplayName, Id, Mail, UserPrincipalName
Output tersebut mencantumkan pengguna yang dinonaktifkan.
DisplayName Id Mail userPrincipalName
----------- -- ---- -----------------
Sawyer Miller hhhhhhhh-7777-8888-9999-iiiiiiiiiiii SawyerM@contoso.com
Kez Michael eeeeeeee-4444-5555-6666-ffffffffffff KezM@contoso.com