PowerShell ile Microsoft 365 kullanıcı hesaplarına yönetici rolleri atama

Bu makale hem Microsoft 365 Kurumsal hem de Office 365 Kurumsal için geçerlidir.

Microsoft 365 için PowerShell'i kullanarak kullanıcı hesaplarına kolayca rol atayabilirsiniz.

Not

Microsoft 365 yönetim merkezi ile kullanıcı hesaplarına yönetici rolleri atamayı öğrenin.

Ek kaynakların listesi için bkz. Kullanıcıları ve grupları yönetme.

Microsoft Graph PowerShell kullanarak kullanıcı hesaplarına rol atama

Not

Azure Active Directory modülünün yerini Microsoft Graph PowerShell SDK'sı alır. Tüm Microsoft Graph API'lerine erişmek için Microsoft Graph PowerShell SDK'sını kullanabilirsiniz. Daha fazla bilgi için bkz. Microsoft Graph PowerShell SDK'sını kullanmaya başlama.

İlk olarak, Microsoft 365 kiracınıza bağlanmak için bir Microsoft Entra DC yöneticisi, Cloud Application Yönetici veya Genel yönetici hesabı kullanın. Bu makaledeki cmdlet'ler, RoleManagement.ReadWrite.Directory izin kapsamını veya 'Abone olunanSkuları listele' Graph API başvuru sayfasında listelenen diğer izinlerden birini gerektirir. Bu makaledeki bazı komutlar farklı izin kapsamları gerektirebilir; bu durumda bu durum ilgili bölümde not edilir.

Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"

Daha fazla bilgi için bkz. Yönetici rolleri hakkında.

Ardından, bir role eklemek istediğiniz kullanıcı hesabının oturum açma adını tanımlayın (örnek: fredsm@contoso.com). Bu, kullanıcı asıl adı (UPN) olarak da bilinir.

Ardından rolün adını belirleyin. Bkz. Microsoft Entra yerleşik roller.

Not

Bu makaledeki notlara dikkat edin. Azure Active Directory (Azure AD) PowerShell için bazı rol adları farklıdır. Örneğin, Microsoft 365 yönetim merkezi SharePoint Yöneticisi rolü Azure AD PowerShell'de SharePoint Hizmet Yöneticisi'dir.

Ardından, kullanıcı UPN'sini ve rol adlarını doldurun ve şu komutları çalıştırın:

$userUPN="<user UPN>"
$roleName="<role name>"
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
    $roleTemplate = (Get-MgDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}).id
    New-MgDirectoryRole -DisplayName $roleName -RoleTemplateId $roleTemplate
    $role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
$userId = (Get-MgUser -Filter "userPrincipalName eq '$userUPN'").Id
$newRoleMember =@{
    "@odata.id"= "https://graph.microsoft.com/v1.0/users/$userId"
    }
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $newRoleMember

SharePoint Hizmet Yöneticisi rolünü hesaba atayan tamamlanmış bir komut kümesi örneği aşağıda verilmiştir belindan@contoso.com :

$userUPN="adelev@contoso.com"
$roleName="Exchange Administrator"
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
    $roleTemplate = (Get-MgDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}).id
    New-MgDirectoryRole -DisplayName $roleName -RoleTemplateId $roleTemplate
    $role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
$userId = (Get-MgUser -Filter "userPrincipalName eq '$userUPN'").Id
$newRoleMember =@{
    "@odata.id"= "https://graph.microsoft.com/v1.0/users/$userId"
    }
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $newRoleMember

Belirli bir yönetici rolüne ait kullanıcı kimliklerinin listesini görüntülemek için bu komutları kullanın.

$roleName="<role name>"
Connect-MgGraph -Scopes "Directory.Read.All"
Get-MgDirectoryRole | Where-Object { $_.DisplayName -eq $roleName } | ForEach-Object { Get-MgDirectoryRoleMember -DirectoryRoleId $_.Id }

Ayrıca bkz.