簡體   English   中英

從 powershell 中的多個 cmdlet 創建所有已禁用 AD 用戶的 csv 文件和郵箱 Output 信息

[英]Create csv file of all disabled AD users with mailboxes Output information from multiple cmdlets in powershell

我正在嘗試收集有關具有郵箱的已禁用用戶帳戶的一些信息。 我專門尋找用戶郵箱而不是共享郵箱。

這是我到目前為止所擁有的。

$Mailboxes = Get-Mailbox | where {$_.RecipientTypeDetails -eq 'UserMailbox'}

$date = 獲取日期 -f "MMddyyyy_HHmm" $Disabled = @()

Foreach ($Mailboxes 中的 $Mailbox) { if((Get-ADUser -Identity $Mailbox.SamAccountName).Enabled -eq $False){ $Disabled += Get-MailboxStatistics $Mailbox.SamAccountName | Select - 屬性 DisplayName,TotalItemSize }
} $禁用 | 排序顯示名稱 | Export-Csv -Path "%path%\DisabledADUsersWithMailbox_$date`.csv" -NoTypeInformation

此外,我想收集的是用戶 Title、Manager、LastlogonDate,所有這些都可以使用 Get-Aduser 找到。 我不確定我如何 go 從兩個 cmdlet 收集信息,然后將其全部導出到 csv。 我讀到我可能需要創建一個自定義 object。 我正在努力在這個腳本中進行設置。

任何幫助將非常感激。

謝謝

以下幾行應該給你你想要的,無法驗證它,因為我沒有在這里運行交換。

$date = get-date -f "MMddyyyy_HHmm" 

$Disabled = @(
    Foreach ($Mailbox in $Mailboxes) { 
        $adUser = get-aduser -Identity $Mailbox.SamAccountName -Properties enabled,manager,title,lastlogontimestamp
        If ($adUser.Enabled -eq $False){
            $mailStats = Get-MailboxStatistics $Mailbox.SamAccountName 
            $attrsht = [ordered]@{
                displayname=$mailstats.displayname
                totalitemsize=$mailStats.totalitemsize
                samaccountname=$aduser.samaccountname
                enabled=$aduser.enabled
                manager=$aduser.manager
                title=$aduser.title
                lastlogontimestamp=[datetime]::FromFileTime($aduser.lastlogontimestamp)
            }
            new-object -TypeName psobject -Property $attrsht
        }
    }
)
 
$Disabled | Sort-Object DisplayName | Export-Csv -Path "%path%\DisabledADUsersWithMailbox_$date`.csv" -NoTypeInformation

避免使用 += 向數組添加元素。 它很慢,或者看看通用數組列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM