この記事では、Microsoft Entra PowerShell を使用してMicrosoft Entra IDでグループを管理する方法について説明します。 例には、グループの作成と更新、ユーザーと所有者の追加、所有者なしのクエリ、空のグループなどがあります。
前提条件
- Microsoft Entra ユーザー アカウント。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- 最新の Microsoft Entra PowerShell モジュールをインストールします。 詳細については、「Microsoft Entra PowerShell モジュールをインストールする」を参照してください。
- 少なくとも グループ管理者ロールを持っている。
グループを作成する
グループを作成するには、グループを作成するために必要なアクセス許可があることを確認します。
Connect-Entra -Scopes 'Group.ReadWrite.All'
新しいグループを作成するには、次のコマンドを実行します。
$groupParams = @{
DisplayName = 'Contoso marketing'
MailEnabled = $false
SecurityEnabled = $true
MailNickName = 'NotSet'
}
New-EntraGroup @groupParams
DisplayName Id MailNickname Description GroupTypes
----------- -- ------------ ----------- ----------
Contoso marketing aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NotSet {}
このコマンドは、 Contoso marketingという名前の新しいグループを作成します。
次のコマンドを使用して、作成されたグループを検索します。
Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
DisplayName Id MailNickname Description GroupTypes
----------- -- ------------ ----------- ----------
Contoso marketing aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NotSet Contoso marketing EMEA {}
このコマンドは、新しく作成されたグループの詳細を返します。
GroupId (GUID) を使用して、グループを検索、更新、または削除することもできます。
グループの詳細を更新する
次のコマンドを実行して、グループの説明を更新します。
Get-EntraGroup -Filter "displayName eq 'Contoso marketing'" | Set-EntraGroup -Description 'Contoso marketing Global'
更新された説明を確認するには、 Get-EntraGroup をもう一度実行します。
Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
グループにユーザーを追加する
次のコマンドを実行して、ユーザーをグループに追加します。
GroupIdはグループ ID、MemberIdはユーザー ID です。 ユーザー ID は、Microsoft Entra 管理センターから取得することも、Get-EntraUser コマンドを実行して取得することもできます。
$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
$user = Get-EntraUser -UserId 'SawyerM@contoso.com'
Add-EntraGroupMember -GroupId $group.Id -MemberId $user.Id
グループ メンバーを取得するには、次のコマンドを使用します。
$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
Get-EntraGroup -GroupId $group.Id | Get-EntraGroupMember | Select-Object Id, DisplayName, '@odata.type'
Id DisplayName @odata.type
------------------------------------ ----------------- -------------------------------
dddddddd-3333-4444-5555-eeeeeeeeeeee Sawyer Miller #microsoft.graph.user
eeeeeeee-4444-5555-6666-ffffffffffff Alex Wilber #microsoft.graph.user
aaaaaaaa-6666-7777-8888-bbbbbbbbbbbb My Application #microsoft.graph.servicePrincipal
cccccccc-8888-9999-0000-dddddddddddd Contoso Group #microsoft.graph.group
グループ所有者としてユーザーを追加する
次のコマンドを実行して、グループ所有者をグループに追加します。
GroupIdはグループ ID、OwnerIdはユーザー ID です。
$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
$owner = Get-EntraUser -UserId 'AdeleV@contoso.com'
Add-EntraGroupOwner -GroupId $group.Id -OwnerId $owner.Id
更新されたグループ所有者を確認するには、次のコマンドを使用します。
$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
Get-EntraGroup -GroupId $group.Id | Get-EntraGroupOwner | Select-Object Id, DisplayName, '@odata.type'
Id DisplayName @odata.type
------------------------------------ ----------------- ---------------------------
aaaaaaaa-6666-7777-8888-bbbbbbbbbbbb Adele Vance #microsoft.graph.user
所有者がいないグループまたは空のグループに対してクエリを実行する
所有者なしでグループにクエリを実行するには、次のコマンドを実行します。
$allGroups = Get-EntraGroup -All
$groupsWithoutOwners = foreach ($group in $allGroups) {
$owners = Get-EntraGroupOwner -GroupId $group.Id
if ($owners.Count -eq 0) {
$group
}
}
$groupsWithoutOwners | Format-Table DisplayName, Id, GroupTypes
DisplayName Id GroupTypes
----------- -- ----------
Contoso marketing aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb {}
HelpDesk admin group eeeeeeee-4444-5555-6666-ffffffffffff {}
メンバー (空のグループ) なしでグループにクエリを実行するには、次のコマンドを実行します。
$allGroups = Get-EntraGroup -All
$groupsWithoutMembers = foreach ($group in $allGroups) {
$members = Get-EntraGroupMember -GroupId $group.Id
if ($members.Count -eq 0) {
$group
}
}
$groupsWithoutMembers | Format-Table DisplayName, Id, GroupTypes
DisplayName Id GroupTypes
----------- -- ----------
Contoso marketing aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb {}
HelpDesk admin group eeeeeeee-4444-5555-6666-ffffffffffff {}
リソースをクリーンアップする
グループを削除するには、次のコマンドを使用します。
Get-EntraGroup -Filter "displayName eq 'Contoso marketing'" | Remove-EntraGroup