2010-11-29 51 views
1

獲得單個用戶所屬的所有組的最乾淨(最快)的方式是什麼? 我使用PowerShell 2.0對Citrix中的登錄用戶進行計數,並將它們從Active Directory中劃分爲多個組。所有用戶都是「VDI-Billing」組中的一個子組的成員,但用戶與VDI-Billing組之間的嵌套組數量並不總是相同。因此,我希望能夠將所有組(包括嵌套組)與VDI-Billing組(第1級)中的成員列表進行比較,以便獲得總覽。使用PowerShell獲取AD組成員身份

實施例:

VDI-帳單有一個成員組NL-VDI-T的系統。這有多個組(它們自己有多個組)。但概述必須包括NL-VDI-T-Systems的所有用戶(子)成員。因此,在概述

我應該得到: NL-VDI-T-Systems公司:22 ITA-VDI-T-Systems公司:25 等等。

任何人都知道一個整潔的小動作?

回答

2

我們編寫的腳本始終在我的工作中做到這一點!通過Quest ActiveRoles管理工具,可以更輕鬆地在Powershell WAY中處理Active Directory對象的自由管理單元。

  1. 安裝免費任務ActiveRoles管理工具從Quest
  2. 的PSSnapin添加到您的個人資料,以便您可以從控制檯訪問所有PowerShell的AD工具 - Add-PSSnapin Quest.ActiveRoles.ADManagement。如果要編寫使用AD工具的scipt,只需將該命令添加到腳本的第一行即可。
  3. 運行以下命令以獲取用戶所屬的所有直接和嵌套組:Get-QADUser 'DOMAIN\USER' | foreach -Process {$_.memberof, $_.nestedmemberof}如果需要,可以通過在命令末尾添加Out-CSVOut-File cmdlet將其管道化爲文本文件或CSV。

這對我來說就像是一種魅力。如果您有任何問題,請告訴我!

〜丹

+0

其實,命令是 「GET-QADUser '域\用戶' |的foreach - 方法{$ _的memberOf,$ _ nestedmemberof。}」。對於那個很抱歉! – thoughtpunch 2010-12-13 13:42:53

0

做到這一點是採取TokenGroups的有利屬性,而不是執行對自己的遞歸擴展的最好方法。你可以找到例子herehere

編輯:A more succinct example