不知道這是否可能,但我試圖比較ADgroup對象和PSCustomObject對象的屬性。我們正在進行用戶審計,這需要根據我們的活動AD用戶帳戶以及AD組成員身份驗證活動員工的列表。這裏是什麼,我至今一個基本的細分:在PowerShell中比較不同對象的最佳方法
(我們定義兩個獨立的搜索路徑,因爲我們集團在不同的OU)
- $ mainGroups = GET-廣告組的篩選器* -SearchBase「 OU_here」
- $亞組= GET-廣告組過濾器* -SearchBase '從人力資源系統用戶名Different_OU_here'
列表
- $ sourceUsers =獲取內容-path 'C:\ TEMP \ users.txt' 從公元
- $ ADUserName = GET-ADUser便有型濾波器* -SearchBase「用戶名
名單User_OU '--searchscope子樹|選擇-ExpandProperty Sam帳戶
空數組來存儲自定義對象/屬性
- $ userObjEQ = @()
比較HR到AD
$ compareResults = compare-object -referenceobject $ sourceUsers -differenceObject $ ADUserName
所有匹配的用戶查找組成員,創建自定義對象等
foreach ($result in $compareResults) { if ($result.SideIndicator -eq '==') { $groupMem = get-adprincipalgroupmembership -identity $result.InputObject } $userObjEQ += [pscustomobject] @{ 'UserName' = $result.InputObject 'Groups' = $groupMem.Name } }
從這以後,我想每個組從$ mainGroups每個匹配的用戶組名稱比較這點看看是否有匹配。如果沒有,則將其與$ subGroups組名稱進行比較。如果匹配無效,如果不匹配,則輸出用戶名和任何不匹配的組名。只是不確定如何最好地比較這些對象。任何提示將不勝感激。
所以你有一個用戶列表。 你想獲得每個用戶所在的ADGroup? – ArcSet
@ArcSet不抱歉,我有我們人力資源部門的活躍用戶列表。我已將該列表中的用戶名存儲到sourceUsers變量中。然後我從活躍的AD用戶手中獲取用戶名列表。我比較這兩個列表並僅提取匹配的用戶名。 我從那裏做的是抓取每個匹配用戶所屬的所有組的列表。 我現在想要做的是找出如何比較每個匹配用戶的組與$ mainGroups和$ subGroups OU中找到的組。對不起,如果我沒有解釋得好。 –