2017-01-06 1 views
1

내가 사용자를 필요로 2010 년결합 얻을-mailboxstatistics 교환 사용자가 얻을 2,010

이름, lastlogontime 및 계정 상태 즉, 활성화 또는 비활성화 표시 Exchange 서버에 대한 보고서를 작성해야합니다.

메일 가져 오기 통계는 lastlogon 및 get-user가 계정 제어 상태를 표시 할 수 있음을 보여줍니다.

그래서 나는 아무렇게나 작동하지 않으려 고 노력했다.

Get-User -ResultSize Unlimited | Where { $_.RecipientType -eq ‘UserMailbox’ } | ForEach { $Users = @{} } { $Users[$_.SamAccountName] = $_ } 
get-mailboxstatistics -server 00-exchbx01 | 
    ForEach { 
    New-Object psobject | 
    Add-Member -PassThru NoteProperty name $_.name | 
    Add-Member -PassThru NoteProperty lastlogontime $_.lastlogontime | 
    Add-Member -PassThru NoteProperty UserAccountControl $Users[$_.SamAccountName].UserAccountControl 
    } |select name,lastlogontime,useraccountcontrol |sort-lastlogontime -descending | export-csv c:\ussersxx.csv -nti 

시도해보세요. 아무런 도움이 되었습니까?

||sort-lastlogontime -descending | 

이것은이되어야 :

Get-User -ResultSize Unlimited | Where { $_.RecipientType -eq ‘UserMailbox’ } | ForEach { $Users = @{} } { $Users[$_.SamAccountName] = $_ } | get-mailboxstatistics -server 00-exchbx01 | select Name,useraccountcontrol, lastlogontime|sort-lastlogontime -descending | Export-csv c:\report.csv 
` 
+0

당신이 무엇을 다시 받고있는 데이터를 내보낼 $outtbl | Sort LastLogonTime -Descending | Export-Csv c:\ussersxx.csv -nti을 할 수 있습니까? – Windos

답변

0

이렇게해야합니다.

$outtbl = @() 
$users = Get-User -ResultSize Unlimited | Where { $_.RecipientType -eq ‘UserMailbox’ } 
$users | % { 
    $x = Get-MailboxStatistics $_ | Select LastLogonTime 
    $t = New-Object PSObject -Property @{ 
    Name = $_.Name 
    LastLogonTime = $x.LastLogontime 
    UserAccountControl = $_.UserAccountControl 
    } 
    $outtbl += $t 
} 

이것은 "다른 명령의 결과 결합"유형 시나리오를 항상 수행해 온 방식입니다.

그런 다음이 프로그램을 실행할 때

+0

나는 동일한 psobject를 확인하겠습니다. –

+0

완벽하게 작동하지만 문제는 export-csv가 하나의 레코드를 유지하고 -append가 지원하지 않을 때입니다. 여기 밖으로 파일 c : \ v.csv - append 작동하지만 거대한 whilte 공백 –

+0

@rashWillee 당신은 무엇을 수정 했습니까? 나를 위해 잘 작동합니다. - http://i.imgur.com/LkelM7m.png – ElectronicDrug

0

는 대부분의 마지막 라인을 제외하고 괜찮 은데, 여기에 몇 가지있다

| sort -property lastlogontime -descending | 

당신은 또한에 실행할 수있는 것들 Get-MailboxStatistics에서 $Users 해시 테이블에 포함되지 않은 파이프 라인으로 연결될 수 있습니다. 이렇게하면 해시 테이블을 사용하여 psobject 속성을 채울 때 오류가 발생합니다.

당신 당신이 그냥 끝낼 수 있도록 (하지만 가능성이 느려집니다) IDENTITY 속성에 대한 값으로 SAMAccountName을 전달, 해시 테이블을 반복, 또는 일부 오류 처리를 추가하려면이 옵션을 조정할 수 빈 속성을 완전히 오류가 아닌.

+1

당신은 내가 서버에서 멀리 떨어져서 여기에 입력하는 사소한 실수를 할 수 있습니다. "$ User에없는 Get-MailboxStatistics"가 바로 여기 오류 일 수 있습니다. 신원 null.Looks는 사용자를 광고에서 끌어 올 필요가 있습니다. 그리고 새로운 pso 오브젝트 –

+0

@rashWillee 나머지 부분이 얼마나 좋은지 생각해 보면, 나는 그것이 서두 직업/suedo 코드 esque 일 이었음에 틀림 없다고 생각했다. 이런 종류의 일을 할 때 개인적으로 선호하는 것은 (주로 OU 나 다른 AD 속성에 기반한 필터링을 많이하기 때문에) AD에서 사용자 개체를 가져와 그 컬렉션에서 필요한 Exchange 정보를 가져 오는 것입니다. – Windos

+0

이 추가하여 추가를 수행하고 –