2016-08-02 35 views
2

我正在尋找一種方式來列出針對每個用戶顯示匹配特定值的AD屬性的次數。PowerShell Get-ADUser - 屬性Tally

特別是 - 我們AD中的用戶有一個自定義屬性區分他們的公司。我需要運行每月報告,以顯示所有公司的列表以及列出的用戶數量。

這與我擁有的差不多 - 但它對我們的帳戶團隊來說不是用戶友好的。

import-csv c:\HostedCompanyList.csv -header ID | 
foreach { 
$total = (get-aduser -filter "(extensionattribute1 -eq '$($_.ID)') -and (extensionattribute2 -eq 'billed')" -properties *).count 
write-host $total $_.ID 
} 

這是HostedCompanyList.csv

我的輸出顯示的
ID 
Company1 
Company2 
Company3 

爲'

35 Company1 
12 Company2 
27 Company3 

我想將該信息輸出到CSV或HTML文件,而不是內容將其顯示在PS窗口上。

  • 我很欣賞這可能已經是一個非常漫長的方式來運行此查詢 - 我可能忽略了一個更簡單的方法嗎?

  • 如果有方法我可以做到這一點,而無需根本導入CSV文件 - 當新的「公司」被添加或帶走時,將刪除需要添加額外條目的列表。

謝謝你提供的任何幫助。

回答

1

未經檢驗的,因爲我沒有相同的擴展屬性,但這種形狀:

  • 查詢每一個人,過濾收費的人
  • group-object按公司名稱
  • 選擇屬性,並出口到CSV

應該使用一個查詢,沒有文本文件讀取和csv導出。

$filter = "extensionattribute2 -eq 'billed'" 
$users = Get-ADUser -filter $filter -Property extensionattribute1, extensionattribute2 

$groups = $users | Group -Property extensionattribute1 
$groups | select Count, Name | Export-Csv out.csv -notypeinformation 
+0

@ mklement0是的,但它將使代碼塊具有一個水平滾動條,然後使第二線不平衡和短,然後推動整個東西朝向將被恐嚇和多行的一行.. 。;) – TessellatingHeckler

+0

大聲說出這個解釋... – sodawillow

+1

@ mklement0這是一個很整潔的方法,我編輯過 - 謝謝 – TessellatingHeckler