作為一名 Windows 系統管理員,管理 Active Directory (AD) 群組可能是您每天都需要做的事情。雖然您 可以 使用 Active Directory 用戶和電腦 (ADUC) MMC 外掛,但當您需要跨多個域管理群組或自動化群組管理任務時,該怎麼辦?這時候 PowerShell 就派上用場了。
在這個實用的教程中,您將學習如何使用 PowerShell 像專業人士一樣管理 AD 群組。您將學習如何查詢群組、創建新的群組以及使用實際的現實世界示例來修改現有群組。
前提條件
如果您想跟隨這個教程,請確保您具備以下前提條件:
- 一台已加入 Active Directory 網域的 Windows 電腦(Windows 10/11 或 Windows Server)
- 擁有管理 AD 群組權限的用戶帳戶
使用 PowerShell 查詢 AD 群組
讓我們從一個常見的場景開始——您是公司的新 IT 管理員,需要審計 AD 群組結構。您的經理想知道在不同部門中存在什麼群組。Get-ADGroup
cmdlet 將是您最好的幫手。
按名稱查找群組
也許最簡單的任務是查找名稱中包含特定文字的群組。例如,查找所有名稱中包含“Sales”的群組:
Get-ADGroup -Filter 'Name -like "Sales"'
星號(*)是通配符,可以匹配“Sales”前後的任何字符。此命令將返回所有名稱中包含“Sales”的群組。
按群組類型過濾
也許您只想查看安全群組(而非分發群組)。您可以使用 -and
運算符添加其他過濾條件:
Get-ADGroup -Filter 'Name -like "Sales" -and GroupCategory -eq "Security"'
現在您將只會看到名稱中包含“Sales”的安全群組。
在特定OU中搜索
需要在特定的組織單位(OU)中查找群組嗎?請使用 SearchBase
參數:
Get-ADGroup -Filter * -SearchBase 'OU=Engineering,DC=company,DC=local'
此命令查找工程OU及其子OU中的所有群組。
查找最近創建的群組
想知道哪些群組是在某個日期之後創建的嗎?在 whenCreated
屬性上過濾:
Get-ADGroup -Filter 'whenCreated -ge "2023-01-01"'
這將返回在2023年1月1日或之後創建的所有群組。
創建新的AD群組
現在讓我們來看看如何創建新的群組。也許您的公司正在重組,您需要為新部門創建群組。
創建安全群組
以下是如何為IT支持人員創建新的安全群組:
New-ADGroup -Name "IT_Support" `
-GroupScope Global `
-GroupCategory Security `
-Description "Group for IT support staff" `
-Path "OU=IT,DC=company,DC=local"
這將在IT組織單位中創建一個名為“IT_Support”的全域安全群組。
創建分發群組
需要一個電子郵件分發群組嗎?只需更改幾個參數:
New-ADGroup -Name "Marketing_News" `
-GroupScope DomainLocal `
-GroupCategory Distribution `
-Description "Group for receiving marketing updates" `
-Path "OU=Marketing,DC=company,DC=local"
一次創建多個群組
有多個相似的群組要創建嗎?使用循環:
$regions = "North", "South", "East", "West"
foreach ($region in $regions) {
New-ADGroup -Name "Sales_$region" `
-GroupScope Global `
-GroupCategory Security `
-Description "Sales team for $region region" `
-Path "OU=Sales,DC=company,DC=local"
}
修改現有群組
組織中的事物會有所變化。群組需要重新命名、更新描述和修改範圍。讓我們看看如何處理這些任務。
重新命名群組
要重新命名一個群組,您需要同時更改其名稱和samAccountName:
# 首先重新命名群組對象
Get-ADGroup EngineeringTeam | Rename-ADObject -NewName TechTeam
# 然後更新samAccountName
Get-ADGroup EngineeringTeam | Set-ADGroup -SamAccountName TechTeam
更新群組描述
需要更新群組描述嗎?使用一行程式碼Set-ADGroup
:
Get-ADGroup TechTeam | Set-ADGroup -Description 'Technical Team for Engineering Projects'
更改群組範圍
如果您需要更改群組的範圍(例如從全域變更為通用):
Get-ADGroup TechTeam | Set-ADGroup -GroupScope Universal
專家提示
以下是一些提示,可使您的AD群組管理更加高效:
-
- 在查詢多個群組時,始終使用`-Filter`而不是`-Identity`–這樣更有效率
-
- 請記住,如果群組有成員,則無法更改群組範圍–請先刪除成員
-
- 在進行更改時,使用`-WhatIf`參數預覽將發生的情況
- 始終先在非生產環境中測試您的群組變更
摘要
您現在應該對使用 PowerShell 管理 AD 群組有了堅實的基礎。雖然 Active Directory 使用者和電腦管理單元適合進行一次性的任務,但 PowerShell 讓您能夠自動化並大規模管理群組。
請記住—這裡展示的範例僅僅是開始。PowerShell 的 AD Cmdlets 非常強大且靈活。隨著您對這些基礎知識的熟悉,您可以構建更複雜的解決方案來滿足組織的需求。
需要了解更多有關 Active Directory PowerShell 的內容嗎?請查看我們的其他教程: