我正在嘗試爲託管的Exchange平臺生成郵箱報告並自動化一些事情。基本上每個租戶都在一個OU中。所以我想先拉出OU的列表,然後計算每個OU中的郵箱。這是我到目前爲止:Powershell Exchange郵箱報告
$ous = (Get-ADOrganizationalUnit -SearchBase "OU=Microsoft Exchange Hosted Organizations,DC=yomamma,DC=com" -Filter { (ObjectClass -eq 'organizationalunit') -and (Name -notlike 'Hosted Organization Security Groups') -and (Name -Notlike 'Microsoft Exchange Hosted Organizations') })
foreach ($ou in $ous) {
(Get-Mailbox -Organization $ou.Name -Filter {(Name -notlike 'Administrator' -and Name -notlike 'DiscoverySearch*')} -ResultSize unlimited).count
}
它的工作...有點。結果將是每行的大量數字,每個OU的郵箱數量。問題是,然後我在$ ous變量中有OU,並將計數輸出到屏幕上。我需要的是輸出兩列,OU和另一列的計數,所以我可以將其輸入到Export-CSV cmdlet中,以便我可以將客戶端名稱(OU)和CSV文件中的計數發送給他們。我只是不確定如何一次獲得數據的組合
這似乎是一個更好的方法來做到這一點......我不熟悉New-Object。然而不能讓它運行。我得到一個「'Microsoft.Exchange.Diagnostics.ETraceConfiguration類型初始值設定'引發異常。類別信息:OperationStaopped,PSRemotingTransportException,FullyQualifiedErrorId:JobFailure」 我確實認爲也許我需要修改行「」OU 「= $ ou」到「」OU = $ ou.Name「也許,因爲$ ou變量將包含更多的信息,並且我只需要名稱值,仍然可以得到相同的結果,我運行的是PowerShell 3. – grdlock
好吧,不知道爲什麼,但是我的Powershell窗口一直使用PowerShell 3崩潰。不過,我可以在其他服務器上使用Powershell 2運行腳本,一個問題是上面的foreach循環會在每次運行時覆蓋$ mailboxObject,因此最終所以我添加了一個「$ mailboxList = @()」數組,然後在New-Object運行「$ mailboxList + = $ mailboxCount」之後,在$ mailboxList中執行了Export-CSV陣列。這得到了所需的輸出。 感謝您的幫助! – grdlock