2014-02-28 1 views
0

이전 stackoverflow 질문의 다음 스크립트를 가지고 있습니다. 스크립트가 내 컴퓨터 목록을 성공적으로 스캔하여보고하도록 다시 작동합니다 각 컴퓨터에 로그인 한 내 사용자 ID.컴퓨터 목록을 스캔하고 마지막으로 로그인 한 사용자 및이 사용자가 로그인 한 날짜를 찾는 방법

하지만 내가 찾고있는 것은 내 목록에있는 각 컴퓨터의 마지막으로 로그인 한 사용자입니다. Active Directory를 액세스 할 권한이 없으므로 Active Directory를 검사하지 않습니다. 여기에 그 도중에이 나를 ​​점점 내가 찾은 코드는 다음과 같습니다

Get-Content -Path c:\ListOfMachines.txt | % { 
    Get-WmiObject -ComputerName $_ -Namespace root\cimv2 -Class Win32_ComputerSystem -erroraction silentlycontinue | % { 
    "$($_.Name): $($_.username)" 
    } 
} 

나는 그것이 내 목록의 각 컴퓨터를 검사 점에서 작동하지만 나는 그것이 로그인 한 사용자가 마지막으로하고 날짜 그들이 다시보고 싶은 말했듯 누군가가 전에 본 적이 있습니까?

감사합니다.

답변

3

당신은 Win32_UserProfile 클래스에서 가장 최근 LastUseTime와 사용자 SID을 잡고 달러 (A $) 사용자 변수에 할당 할 수 있습니다

[Management.ManagementDateTimeConverter]::ToDateTime($last_user.LastUseTime) 
:

$last_user= Get-WmiObject -ComputerName $_ -Namespace root\cimv2 -Class Win32_UserProfile | Sort-Object -Property LastUseTime -Descending | Select-Object -First 1 
$UserSID = New-Object System.Security.Principal.SecurityIdentifier($last_user.sid) 
$User = $UserSID.Translate([System.Security.Principal.NTAccount]) 

가 $의 LAST_USER에서 날짜를 포맷하려면

관련 문제