2016-10-18 6 views
0

내 도메인의 특정 사용자로부터 모든 사용자를 쿼리하기위한 스크립트를 만들고 각 사용자의 마지막 "lastLogonTimestamp"를 가져 와서 결과를 csv로 내보내려고합니다. 파일. 예 : SOL을 시작하는 사용자를위한 "SOL *" "마지막 로그온 날짜"31/12/1600 06:00:00 pm에 대한 대부분의 사용자에 대한 결과를 얻을 수 있지만 일부 사용자의 경우 올바른 날짜와 다른 사용자의 경우 동일한 OU에 있는지 여부에 관계없이 1600 년의 날짜를 표시합니다. 사용자가 특정 DC를 사용하여 로그온 적이없는 것을 의미특정 사용자의 모든 DC에서 lastLogonTimestamp를 얻는 방법

Get-ADDomainController -filter * | 
% {Get-ADUser -Filter "Enabled -eq 'True' -and SamAccountName -like 'SOL*'" -server $_.name -Properties   Name,SamAccountName,Description,EmployeeID,EmployeeNumber,EmailAddress,LastLogon,Manager,Title,Department,Organization,Enabled -SearchBase "OU=users,DC=contoso,DC=local" | 
Select Name,SamAccountName,Description,EmployeeID,EmployeeNumber,EmailAddress,@{N='Last‌​Logon'; E={[DateTime]::FromFileTime($_.LastLogon)}},Manager,Title,Department,Organizatio‌​n,Enabled}| 
Group samaccountname | 
ForEach{$_.Group | Sort LastLogon -Descending | Select -First 1} | 
Export-Csv "C:\export\AD_Export.csv" -NoTypeInformation 

답변

0

.

예를 들어 미국에있는 직원은 로그온하는 동안 유럽 DC에 절대 연락하지 않습니다. 이 경우 유럽 DC의 lastlogon은 "31/12/1600 06:00:00 p.m"이됩니다 (lastlogon의 최소값은 1601 (UTC), "time-zoned"인 시간).

한 가지 더, lastLogonTimestamplastLogon은는 2 개 개의 다른 특성입니다.
lastLogon 정확한 로그온 시간을 기록하지만 DC간에 복제되지는 않습니다.
lastLogonTimestamp은 복제되지만 근사치 일뿐입니다.
귀하의 경우에는

를 (기본적으로는 ..., 실제 값보다 < = 십사일 이전 유휴 계정을 찾는 데에만 유용 할 수 있습니다), 당신은 실제로 약 lastLogon을 말하고있다.