تعيين أدوار المسؤول لحسابات مستخدمي Microsoft 365 باستخدام PowerShell

تنطبق هذه المقالة على كل من Microsoft 365 Enterprise Office 365 Enterprise.

يمكنك بسهولة تعيين أدوار لحسابات المستخدمين باستخدام PowerShell ل Microsoft 365.

ملاحظة

تعرف على كيفية تعيين أدوار المسؤول لحسابات المستخدمين باستخدام مركز مسؤولي Microsoft 365.

للحصول على قائمة بالموارد الإضافية، راجع إدارة المستخدمين والمجموعات.

تعيين أدوار لحسابات المستخدمين باستخدام Microsoft Graph PowerShell

ملاحظة

يتم استبدال وحدة Azure Active Directory ب Microsoft Graph PowerShell SDK. يمكنك استخدام Microsoft Graph PowerShell SDK للوصول إلى جميع واجهات برمجة تطبيقات Microsoft Graph. لمزيد من المعلومات، راجع بدء استخدام Microsoft Graph PowerShell SDK.

أولا، استخدم حساب مسؤول Microsoft Entra DC أو مسؤول تطبيق السحابة أو حساب مسؤول عموميللاتصال بمستأجر Microsoft 365. تتطلب أوامر cmdlets في هذه المقالة نطاق الإذن RoleManagement.ReadWrite.Directory أو أحد الأذونات الأخرى المدرجة في الصفحة المرجعية لواجهة برمجة تطبيقات الرسم البياني "List subscribedSkus". قد تتطلب بعض الأوامر في هذه المقالة نطاقات أذونات مختلفة، وفي هذه الحالة سيتم ملاحظة ذلك في القسم ذي الصلة.

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

لمزيد من المعلومات، راجع حول أدوار المسؤولين.

بعد ذلك، حدد اسم تسجيل الدخول لحساب المستخدم الذي تريد إضافته إلى دور (مثال: fredsm@contoso.com). يعرف هذا أيضا باسم اسم المستخدم الأساسي (UPN).

بعد ذلك، حدد اسم الدور. راجع Microsoft Entra الأدوار المضمنة.

ملاحظة

انتبه إلى الملاحظات الواردة في هذه المقالة. تختلف بعض أسماء الأدوار ل Azure Active Directory (Azure AD) PowerShell. على سبيل المثال، دور مسؤول SharePoint في مركز مسؤولي Microsoft 365 هو مسؤول خدمة SharePoint في Azure AD PowerShell.

بعد ذلك، املأ اسم المستخدم UPN وأسماء الأدوار وقم بتشغيل هذه الأوامر:

$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 للحساب 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

لعرض قائمة معرفات المستخدم لدور مسؤول معين، استخدم هذه الأوامر.

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

راجع أيضًا