PowerShell を使用して管理者の役割Microsoft 365ユーザー アカウントに割り当てるAssign admin roles to Microsoft 365 user accounts with PowerShell

この記事は、Microsoft 365 Enterprise および Office 365 Enterprise の両方に適用されます。This article applies to both Microsoft 365 Enterprise and Office 365 Enterprise.

PowerShell を使用してユーザー アカウントに役割を簡単に割り当Microsoft 365。You can easily assign roles to user accounts by using PowerShell for Microsoft 365.

注意

管理者の役割を管理センターでユーザー アカウントに割り当てるMicrosoft 365します。Learn how to assign admin roles to user accounts with the Microsoft 365 admin center.

その他のリソースの一覧については、「ユーザーと グループの管理」を参照してくださいFor a list of additional resources, see Manage users and groups.

Graph 用 Azure Active Directory PowerShell モジュールを使用するUse the Azure Active Directory PowerShell for Graph module

最初に、グローバル管理者アカウントを使用してテナントにMicrosoft 365しますFirst, use a global administrator account to connect to your Microsoft 365 tenant.

次に、役割に追加するユーザー アカウントのサインイン名を特定します (例: fredsm @ contoso.com)。Next, identify the sign-in name of the user account that you want to add to a role (example: fredsm@contoso.com). これは、ユーザー プリンシパル名 (UPN) とも呼ばれています。This is also known as the user principal name (UPN).

次に、ロールの名前を決めます。Next, determine the name of the role. 管理者ロールのアクセス許可」を参照Azure Active Directory。See administrator role permissions in Azure Active Directory.

注意

この記事のメモに注意してください。Pay attention to the notes in this article. 一部の役割名は、Azure Active Directory (Azure AD) PowerShell で異なります。Some role names are different for Azure Active Directory (Azure AD) PowerShell. たとえば、管理者センター SharePoint 管理者 ロールは、Azure Microsoft 365 PowerShell SharePointサービス管理者ADです。For example, the SharePoint Administrator role in the Microsoft 365 admin center is SharePoint Service Administrator in Azure AD PowerShell.

次に、サインイン名と役割名を入力し、次のコマンドを実行します。Next, fill in the sign-in and role names and run these commands:

$userName="<sign-in name of the account>"
$roleName="<admin role name>"
$role = Get-AzureADDirectoryRole | Where {$_.displayName -eq $roleName}
if ($role -eq $null) {
$roleTemplate = Get-AzureADDirectoryRoleTemplate | Where {$_.displayName -eq $roleName}
Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId
$role = Get-AzureADDirectoryRole | Where {$_.displayName -eq $roleName}
}
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId (Get-AzureADUser | Where {$_.UserPrincipalName -eq $userName}).ObjectID

次に、サービス管理者の役割を belindan @ アカウントに割り当SharePoint完了したコマンド セット contoso.com 示します。Here's an example of a completed command set that assigns the SharePoint Service Administrator role to the belindan@contoso.com account:

$userName="belindan@contoso.com"
$roleName="SharePoint Service Administrator"
$role = Get-AzureADDirectoryRole | Where {$_.displayName -eq $roleName}
if ($role -eq $null) {
$roleTemplate = Get-AzureADDirectoryRoleTemplate | Where {$_.displayName -eq $roleName}
Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId
$role = Get-AzureADDirectoryRole | Where {$_.displayName -eq $roleName}
}
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId (Get-AzureADUser | Where {$_.UserPrincipalName -eq $userName}).ObjectID

特定の管理者ロールのユーザー名の一覧を表示するには、次のコマンドを使用します。To display the list of user names for a specific admin role, use these commands.

$roleName="<role name>"
Get-AzureADDirectoryRole | Where { $_.DisplayName -eq $roleName } | Get-AzureADDirectoryRoleMember | Ft DisplayName

Windows PowerShell 用 Microsoft Azure Active Directory モジュールを使用するUse the Microsoft Azure Active Directory Module for Windows PowerShell

最初に、グローバル管理者アカウントを使用してテナントにMicrosoft 365しますFirst, use a global administrator account to connect to your Microsoft 365 tenant.

単一ロールの変更の場合For a single role change

ユーザー アカウントを指定する最も一般的な方法は、表示名または電子メール名 (サインイン名またはユーザー プリンシパル名 (UPN) とも呼ばれる) を使用します。The most common ways to specify the user account is by using its display name or its email name, which also known as its sign-in name or user principal name (UPN).

ユーザー アカウントの表示名Display names of user accounts

ユーザー アカウントの表示名の操作に使用する場合は、次の情報を確認します。If you're used to working with the display names of user accounts, determine the following information:

  • 構成するユーザー アカウントThe user account that you want to configure

    ユーザー アカウントを指定するには、その表示名を判別する必要があります。To specify the user account, you must determine its Display Name. アカウントの完全な一覧を取得するには、次のコマンドを使用します。To get a complete list of accounts, use this command:

    Get-MsolUser -All | Sort DisplayName | Select DisplayName | More
    

    このコマンドにより、ユーザー アカウントの表示名の一覧が、表示名順に並び替えられて、一度に 1 画面ずつ示されます。This command lists the Display Name of your user accounts, sorted by the Display Name, one screen at a time. Where コマンドレットを使用すると、一覧をフィルター処理して、出力するセットを小さくできます。You can filter the list to a smaller set by using the Where cmdlet. 次の例をご覧ください。See the following example.

    注意

    PowerShell Core は、Windows PowerShell 用 Microsoft Azure Active Directory モジュールと、名前に Msol が含まれるコマンドレットをサポートしていません。PowerShell Core doesn't support the Microsoft Azure Active Directory Module for Windows PowerShell module and cmdlets with Msol in their name. これらのコマンドレットは、Windows PowerShell から実行します。Run these cmdlets from Windows PowerShell.

    Get-MsolUser -All | Where DisplayName -like "John*" | Sort DisplayName | Select DisplayName | More
    

    このコマンドは、表示名が「John」で始まるユーザー アカウントのみを一覧表示します。This command lists only the user accounts for which the Display Name starts with "John".

  • 割り当てる役割The role you want to assign

    ユーザー アカウントに割り当て可能な管理者ロールの一覧を表示するには、次のコマンドを使用します。To display the list of available admin roles that you can assign to user accounts, use this command:

    Get-MsolRole | Sort Name | Select Name,Description
    

アカウントの表示名と役割の名前を確認した後、次のコマンドを使用して役割をアカウントに割り当てる。After you determine the Display Name of the account and the name of the role, use these commands to assign the role to the account:

$dispName="<The Display Name of the account>"
$roleName="<The admin role name you want to assign to the account>"
Add-MsolRoleMember -RoleMemberEmailAddress (Get-MsolUser -All | Where DisplayName -eq $dispName).UserPrincipalName -RoleName $roleName

コマンドを別のメモ帳。Paste the commands into Notepad. 変数と $dispName 変数 $roleName、 説明テキストを値に置き換える必要があります。For the $dispName and $roleName variables, replace the description text with their values. 文字を < and > 削除しますが、二重引用符は保持します。Remove the < and > characters but keep the quotation marks. 変更した行を [モジュール] ウィンドウMicrosoft Azure Active Directoryに貼りWindows PowerShellして実行します。Paste the modified lines into the Microsoft Azure Active Directory Module for Windows PowerShell window to run them. または、統合スクリプト環境 (ISE) Windows PowerShellを使用することもできます。Alternately, you can use the Windows PowerShell Integrated Script Environment (ISE).

完了したコマンド セットの例を次に示します。Here's an example of a completed command set:

$dispName="Scott Wallace"
$roleName="SharePoint Service Administrator"
Add-MsolRoleMember -RoleMemberEmailAddress (Get-MsolUser -All | Where DisplayName -eq $dispName).UserPrincipalName -RoleName $roleName

ユーザー アカウントのサインイン名Sign-in names of user accounts

ユーザー アカウントのサインイン名または UPN の操作に使用する場合は、次の情報を確認します。If you're used to working with the sign-in names or UPNs of user accounts, determine the following information:

  • ユーザー アカウントの UPNThe user account's UPN

    UPN が分からない場合は、次のコマンドを使用します。If you don't know the UPN, use this command:

    Get-MsolUser -All | Sort UserPrincipalName | Select UserPrincipalName | More
    

    このコマンドは、ユーザー アカウントの UPN を UPN で並べ替え、一度に 1 つの画面で一覧表示します。This command lists the UPN of your user accounts, sorted by UPN, one screen at a time. Where コマンドレットを使用 して リストをフィルター処理できます。You can use the Where cmdlet to filter the list. 次に例を示します:Here's an example:

    Get-MsolUser -All | Where DisplayName -like "John*" | Sort UserPrincipalName | Select UserPrincipalName | More
    

    このコマンドは、表示名が「John」で始まるユーザー アカウントのみを一覧表示します。This command lists only the user accounts for which the Display Name starts with "John".

  • 割り当てる役割The role you want to assign

    ユーザー アカウントに割り当てることができるロールの一覧を表示するには、次のコマンドを使用します。To display the list of available roles that you can assign to user accounts, use this command:

    Get-MsolRole | Sort Name | Select Name,Description
    

アカウントの UPN と役割の名前を確認した後、次のコマンドを使用して役割をアカウントに割り当てします。After you have the UPN of the account and the name of the role, use these commands to assign the role to the account:

$upnName="<The UPN of the account>"
$roleName="<The role name you want to assign to the account>"
Add-MsolRoleMember -RoleMemberEmailAddress $upnName -RoleName $roleName

コマンドをコピーし、コマンドに貼りメモ帳。Copy the commands and paste them into Notepad. 変数の $upnName 変数 $roleName します。For the $upnName and $roleName variables. 説明テキストを値に置き換える。Replace the description text with their values. 文字を < and > 削除しますが、二重引用符は保持します。Remove the < and > characters but keep the quotation marks. 変更した行を [モジュール] ウィンドウMicrosoft Azure Active Directoryに貼りWindows PowerShell実行します。Paste the modified lines into Microsoft Azure Active Directory Module for Windows PowerShell window to run them. または、ISE のWindows PowerShell使用できます。Alternately, you can use the Windows PowerShell ISE.

完了したコマンド セットの例を次に示します。Here's an example of a completed command set:

$upnName="scottw@contoso.com"
$roleName="SharePoint Service Administrator"
Add-MsolRoleMember -RoleMemberEmailAddress $upnName -RoleName $roleName

複数の役割の変更Multiple role changes

複数の役割を変更する場合は、次の情報を確認します。For multiple role changes, determine the following information:

  • 構成するユーザー アカウント。Which user accounts you want to configure. 前のセクションのメソッドを使用して、表示名または UPN のセットを収集できます。You can use the methods in the previous section to gather the set of display names or UPNs.

  • 各ユーザー アカウントに割り当てるロール。Which roles you want to assign to each user account. ユーザー アカウントに割り当てることができるロールの一覧を表示するには、次のコマンドを使用します。To display the list of available roles that you can assign to user accounts, use this command:

    Get-MsolRole | Sort Name | Select Name,Description
    

次に、表示名または UPN フィールドと役割名フィールドを持つコンマ区切り値 (CSV) テキスト ファイルを作成します。Next, create a comma-separated value (CSV) text file that has the display name or UPN and role name fields. この操作は、次の手順で簡単Microsoft Excel。You can do this easily in Microsoft Excel.

表示名の例を次に示します。Here's an example for display names:

DisplayName,RoleName
"Belinda Newman","Billing Administrator"
"Scott Wallace","SharePoint Service Administrator"

その後、PowerShell コマンド プロンプトで CSV ファイルの場所を入力し、完成したコマンドを実行します。Next, fill in the location of the CSV file and run the resulting commands at the PowerShell command prompt.

$fileName="<path and file name of the input CSV file that has the role changes, example: C:\admin\RoleUpdates.CSV>"
$roleChanges=Import-Csv $fileName | ForEach {Add-MsolRoleMember -RoleMemberEmailAddress (Get-MsolUser | Where DisplayName -eq $_.DisplayName).UserPrincipalName -RoleName $_.RoleName }

UPN の例を次に示します。Here's an example for UPNs:

UserPrincipalName,RoleName
"belindan@contoso.com","Billing Administrator"
"scottw@contoso.com","SharePoint Service Administrator"

その後、PowerShell コマンド プロンプトで CSV ファイルの場所を入力し、完成したコマンドを実行します。Next, fill in the location of the CSV file and run the resulting commands at the PowerShell command prompt.

$fileName="<path and file name of the input CSV file that has the role changes, example: C:\admin\RoleUpdates.CSV>"
$roleChanges=Import-Csv $fileName | ForEach { Add-MsolRoleMember -RoleMemberEmailAddress $_.UserPrincipalName -RoleName $_.RoleName }

関連項目See also