Microsoft Graph PowerShell ile Tüm Office 365 Kullanıcılarını ve Lisanslarını Dışa Aktarın
Bu eğitimde size, tüm kullanıcılarınızın bir listesini ve lisans ayrıntılarını bir CSV dosyasına aktarmak için Microsoft Graph PowerShell betiğini nasıl kullanabileceğinizi göstereceğim.
Şu anda Microsoft 365 yönetici portalı bu görevi gerçekleştirme işlevselliğini sağlamadığından bu kullanışlıdır. Bu script ile istediğiniz sonuçları elde edebilirsiniz.
Önkoşullar
Tüm kullanıcıları dışa aktarmak üzere betiği çalıştırabilmek için Microsoft Graph PowerShell modülünün kurulu olması gerekir. Microsoft Graph PowerShell modülünün nasıl kurulacağı için buradaki eğitimime bakın.
Bağlanırken gerekli izinleri Microsoft Graph PowerShell'e devretmek için genel bir yönetici hesabına da erişiminizin olması gerekir.
Microsoft Graph PowerShell'i kullanarak tüm Office 365 kullanıcılarını ve lisans ayrıntılarını dışarı aktarın
Komut dosyası, Microsoft.Graph.Users PowerShell modülünde bulunabilen ve User.Read.All ile çağrılabilen Get-MgUser cmdlet'ini kullanır. izni. Get-MgUser cmdlet'i hakkında daha fazla bilgi edinmek için eğitimime göz atın: Get-MgUser'ı Microsoft Graph PowerShell ile Kullanma
Tüm kullanıcıları ve lisanslarını içeren raporu oluşturmak için aşağıdaki adımları izleyin:
1. Bir metin düzenleyici açın.
2. Aşağıdaki kodu kopyalayıp metin düzenleyicinize yapıştırın.
3. Raporun konumunu değiştirmek için kodun son satırını düzenleyin: “C:\temp\licensedusers.csv”.
4. Komut dosyasının tamamını kopyalayıp doğrudan PowerShell'e yapıştırın.
5. İstendiğinde, etkileşimli oturum açma isteminde genel yönetici kimlik bilgilerinizle oturum açın ve devredilen izinleri kabul edin.
Import-Module Microsoft.Graph.Users, Microsoft.Graph.Identity.DirectoryManagement
Connect-MgGraph -Scope User.read.all, DeviceManagementConfiguration.Read.All
$CompanyName = (Get-MgOrganization | Select VerifiedDomains).verifieddomains | Where-Object {$_.IsDefault -eq "True"}
$Users = Get-MgUser -all
$Report = [System.Collections.Generic.List[Object]]::new()
Write-host "Found $($users.count) users for $($CompanyName.Name)" -ForegroundColor Cyan
ForEach ($user in $Users) {
Write-Host "Retrieving license info for $($User.DisplayName)" -ForegroundColor yellow
If (Get-MgUserLicenseDetail -USerId $User.id) {
$licenses = $null
$licenses = (Get-MgUserLicenseDetail -UserId $User.id).SkuPartNumber -join ", "
Write-Host "Licenses found for $($User.DisplayName): $licenses" -ForegroundColor cyan
$obj = [pscustomobject][ordered]@{
DisplayName = $user.DisplayName
UserPrincipalName = $user.UserPrincipalName
Licenses = $licenses
}
$report.Add($obj)
} else {
Write-Host "No licenses found for $($User.DisplayName)" -ForegroundColor Red
}
}
$report | Export-CSV "C:\temp\licensedusers.csv" -NoTypeInformationKomut dosyasını çalıştırdıktan sonra, komut dosyasında tanımladığınız alanda bulunan .csv dosyasını bulmalısınız. Komut dosyasını varsayılan olarak bıraktıysanız, onu C:\temp konumunda bulacaksınız.
Kullanıcı raporunuz açıldığında aşağıdaki gibi görünecektir:

