Technical articles
如果您以管理員或技術人員的身份在 Active Directory 中工作,那么有一天您可能需要導出 Active Directory 中的組成員。有時請求來自 HR,或者您可能只需要此信息進行報告。
如果您仔細研究,就會發現在 Active Directory 中沒有用于導出組成員的 GUI。別擔心,我們已經為您準備好了。
在本文中,我們將介紹如何使用一些簡單但功能強大的 PowerShell 命令導出 AD 組成員。
啟動 PowerShell
大多數服務器都已經安裝了 PowerShell。我們可以通過按Windows 鍵 +R并在“運行”框中鍵入不帶引號的“ powershell ”并按回車鍵來啟動 PowerShell。
如果該命令不起作用,您可能沒有安裝 PowerShell 模塊。如果是這種情況,您可以從Microsoft 的 GitHub 帳戶下載并安裝 PowerShell,以便為您的環境安裝 PowerShell 模塊。
或者,您可以通過執行以下操作直接從服務器管理器安裝 PowerShell作為角色:
打開服務器管理器,然后單擊添加角色和功能。
單擊下一步,直到您看到功能部分。
單擊遠程服務器管理工具選項卡 ->角色管理工具-> AD DS 和 AD LDS 工具。
為Windows PowerShell啟用Active Directory 模塊。
接下來單擊“安裝”按鈕開始安裝 PowerShell。
查找 Active Directory 組名
接下來,您需要查找并列出 Active Directory 中的所有組。這有助于您準確了解您的組的名稱,以便我們稍后在 PowerShell 命令中引用它進行導出。
運行以下命令以列出服務器上的所有 Active Directory 組:
get-adgroup -filter * | sort name | select Name
您應該會看到不同用戶組的列表。請記住,其中許多組已內置到 Active Directory 中,因此您可能需要進行一些搜索才能找到您的組。一旦您確定了您想要的一個或多個組的名稱,請繼續。
接下來,我們將使用以下命令以及組名來查看該組內的所有成員。
Get-AdGroupMember -identity "Your Group"
下面應列出該組的所有成員的姓名。您可以在任何組上使用它,并且始終可以使用該get-adgroup -filter * | sort name | select Name命令列出所有組。
如何使用 PowerShell 導出 AD 組成員
在這里您還可以看到每個用戶的 SID、可分辨名稱、對象類、GUID 和 SAM 帳戶名。
如果您不需要這些附加信息,您可以使用以下命令來過濾您的結果并只輸出它們的名稱:
Get-AdGroupMember -identity "Your Group" | select name
從 PowerShell 將 AD 組成員導出到 CSV
您可能希望將其轉換為 CSV 格式以對其進行清理、將其存儲在服務器上或通過電子郵件發送給其他員工。要將結果保存為 CSV,請使用以下命令:
Get-AdGroupMember -identity "Your Group" | select name | Export-csv -path C:\groupmembers.csv -NoTypeInformation
如何使用 PowerShell 導出 AD 組成員
上述命令從“您的組”AD 組中獲取成員,并將這些成員導出到位于 C 驅動器根目錄下的名為 groupmembers.csv 的 CSV 文件中。
其他有用的命令
要在更大的 Active Directory 環境中進一步過濾,您可以使用額外的過濾器來查找可能放錯位置或未放入正確組中的某些類型的帳戶。例如,具有不在傳統管理員組中的管理權限的帳戶。
下面的命令使用 GroupCategory 參數來限制僅作為安全組返回的組類型。這對于您可能無法 100% 確定要在哪個組中尋找成員的較大環境很有用。
Get-ADGroup -Filter 'GroupCategory -eq "Security"'
如果您有嵌套組,您可能會發現結果顯示的是嵌套組,而不是這些組內的成員。要解決此問題,我們需要添加-recursive參數以枚舉所有成員并將它們添加到列表中。
你的命令看起來像:
Get-ADGroupMember -identity “Your Group” -recursive | select name | Export-csv -path C:\groupmembers.csv -NoTypeInformation
最后一個有用的提示是,如果您保存這些命令,您始終可以創建一個 PowerShell 腳本以從計劃任務運行,以每月、每季度或任何您需要的方式自動運行。您甚至可以將導出路徑設置為其他人也可以訪問 CSV 的網絡驅動器。
結論
如果您知道如何使用 PowerShell,那么它是一個出色的工具,有時它是完成這項工作的唯一工具。如果您了解 PowerShell,您可以比單獨通過 GUI 更快地完成 AD 中的任務。
或者,可以在 AD 中管理用戶的一個很棒的免費工具是 SolarWinds 的 Admin Bundle。這個方便的工具可以構建網絡地圖,幫助管理非活動帳戶,并生成簡單的報告,就像我們在 PowerShell 中所做的一樣