在本文中,您將學習如何使用 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。 你可以從 Microsoft Entra 系統管理中心 取得使用者 ID,或透過執行 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