programing

마지막 로그온을 DateTime 형식으로 변환

telecom 2023. 11. 6. 21:39
반응형

마지막 로그온을 DateTime 형식으로 변환

제 목표는 제 도메인에서 다음 정보가 포함된 사용자 목록을 가져오는 것입니다.

-표시명 -국가 -관리자명 -마지막 로그인일

저는 다음 스크립트를 실행하고 있으며, 라스트로그온을 제외하고는 모든 것이 좋아 보입니다.시간을 "129948127853609000"과 같은 난수 묶음으로 출력합니다.이것을 DateTime 형식으로 변환하려면 어떻게 해야 합니까?

Search-ADAccount -UsersOnly -SearchBase "OU=International,DC=mycompany,DC=com" -AccountDisabled:$false | Get-ADUser -Properties Name, manager, LastLogon | Select Name, manager, LastLogon | export-csv C:\Australia.csv -NoTypeInformation

DateTime.FromFileTime다음과 같은 방법을 사용해야 합니다.

PS C:\> [datetime]::FromFileTime(129948127853609000)

Monday, October 15, 2012 3:13:05 PM

그런 다음 포맷 방법에 따라 표준사용자 지정 날짜 시간 형식 문자열을 확인합니다.

PS C:\> [datetime]::FromFileTime(129948127853609000).ToString('d MMMM')
15 October
PS C:\> [datetime]::FromFileTime(129948127853609000).ToString('g')
10/15/2012 3:13 PM

이것을 당신의 원라이너에 통합하고 싶다면, 당신의 것을 바꾸세요.select이에 대한 설명:

... | Select Name, manager, @{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}} | ...
Get-ADUser -Filter {Enabled -eq $true} -Properties Name,Manager,LastLogon | 
Select-Object Name,Manager,@{n='LastLogon';e={[DateTime]::FromFileTime($_.LastLogon)}}

마지막 로그온은 GET-ADUser cmdlet을 실행한 순간 로드 밸런싱이 수행된 도메인 컨트롤러에 사용자가 마지막으로 로그인한 시간이며 도메인 전체에 복제되지 않습니다.마지막 사용자가 도메인의 도메인 컨트롤러에 로그인한 시간을 원하는 경우 LastLogonTimestamp를 사용해야 합니다.

Last LogonDate 속성을 사용하면 날짜/시간을 변환할 필요가 없습니다.변환할 때 lastLogonTimestamplastLogonDate와 같아야 합니다.이렇게 하면 결과를 변환할 필요 없이 도메인 전체에서 마지막 로그온 날짜와 시간을 얻을 수 있습니다.

LastLogonDate는 복제되지 않습니다.마지막 로그온 타임스탬프는 대규모 도메인에서 타임스탬프를 사용하는 것이 중요합니다.

마지막 로그온은 복제되지 않지만 마지막 로그온 타임스탬프는 다음과 같습니다.last logontimstamp가 인간이 읽을 수 없음(window epoch 이후 밀리초)

여기 모든 서버를 조회하지 않고 실제로 해결하는 원 라이너가 있습니다.

get-adcomputer -filter 'operating system - like "server" - and enabled - eq "true" - prop lastlogon timestamp|선택 이름, lastlogon timestamp, @{N='LastLogon'; E={[DateTime]::FromFileTime($_).마지막 로그온 시간 스탬프)}}

언급URL : https://stackoverflow.com/questions/13091719/converting-lastlogon-to-datetime-format

반응형