컴퓨터의 사용자 프로파일을 사용하여 이 컴퓨터에서 최근에 작업한 시간을 알아보기


  • 사용자의 프로파일 정보를 이용하면 필요한 내용을 얻을 수 있다. 다음은 WmiObject를 이용하여 사용자 정보를 추출하는 것이다.
    • Get-WmiObject -Class Win32_UserProfile
  • 이렇게 해보니 속성(Property) 값이 너무 많다. 그래서 우리가 원하는 속성 값만 보고자 한다.
    • Gwmi -Class Win32_UserProfile | Format-Table localpath, lastusetime -Autosize


    • 여기를 보면 어떤 사용자 계정이 있으며, 그 사용자 계정이 마지막으로 작업한 한 시간도 나온다. 중요한 것은 이것은 실시간 정보가 아니고 이전 정보라는 것이다. 그래서 특정한 컴퓨터에 접속하여 작업한 시간을 알 수 있다는 것이다.
    • 위의 결과가 나오려면 반드시 Administrator 계정으로 실행해야 한다. 다른 계정으로 실행하면 자신에 대한 정보만 나온다.        
  • 여기서 문제가 있다. 마지막으로 작업한 시간을 이해하기 어렵다. 그래서 형식을 좀 변경해서 볼 필요가 있다. 즉, lastusetime을 다른 형식으로 표현해보자.
    • Gwmi -Class Win32_UserProfile | ft localpath, @{Name=”LastUse”;Expression={[System.Management.ManagementDateTimeconverter]::ToDateTime($_.lastusetime)}} -AutoSize
    • 이것이 너무 길므로 Powershell Script 파일(test.ps1)로 저장하여 실행하면 쉽다.


  • 원격 컴퓨터에서 사용자들이 최근에 작업한 시간을 알아보고자 한다. 이럴 때도 Powershell script를 이용하거나 Function을 이용하면 된다.

    • 여기를 잘 보면 Win2012_Server나 Win2012_Core 컴퓨터에서 Domain의 administrator 계정 정보에 대한 최근 사용 시간이 같음을 알 수 있다. 그 이유는 멤버 서버에서 도메인으로 로그온했을 때 모든 시간 정보는 DC에서 가져오기 때문이다. 그렇기 때문에 도메인 환경에서 사용자 작업 시간을 도메인 컨트롤러에서 가져온다는 사실에 유의한다.

      그리고 Aduser1은 Win2012_server에서 도메인으로 로그온 하였고, Aduser2는 Win2012_Core 컴퓨터에서 도메인으로 로그온 한 것이다. 두 사용자의 최근 작업 시간이 다름을 확인할 수 있다.         

    • 만약에 Function을 사용하면 원격 컴퓨터의 사용자 작업 시간 정보를 얻을 수 있다. 그런데 유의할 것을 로컬로 로그온 하여 작업한 시간만 확인할 수 있다는 것이다. 위의 예처럼 도메인으로 로그온하여 작업한 시간을 알 수가 없다.


Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s