2007/07/17

Windows 로그온 유형 : Win32_LogonSession

Windows 에 로그인하는 경우 13개의 로그온 유형에 따라서 각 인증패키지를 통해서 로그온을 하게 되는데요., 이것은 보안 이벤트로그에 남게 됩니다. 




그럼 어떤 종류가 있는지 살펴 볼까요?...

0 : 시스템 계정만이 사용
2 - Interactive : 로컬로그온이나 터미널, 원격쉘 과 같은 로그온 형식
3 - Network : 기본인증
4 - Batch : 예약작업같은 배치실행시 사용되는 계정의 로그온
5 - Service : 서비스 실행 계정
6 - Proxy : 프록시 타입
7 - Unlock : GINA DLLs 로그온을 대시하는 형식
8 - NetworkCleartext : FTP나, IIS 기본인증과 같은 형식, Windows 2000 이후 부터 지원
9 - NewCredentials :Windows 2000 이후 부터 지원
10 - RemoteInteractive : 터미널 서버 또는 그와 같은 형식
11 - CachedInteractive : 네트워크 연결이 아닌 캐시된 자격증명
12 - CachedRemoteInteractive : RemoteInteractive 와 같음
13 - CachedUnlock : 워크스테이션 로그온

이를테면,. FTP 로 로그인 한 경우에는 보안 이벤트로그에 로그온 유형이 8 로 기록됩니다.

다음 vbscript 는 현재 로그온 되어 있는 로그온 ID 를 출력해 줍니다. 다만, 로그온 ID 형식으로 출력해 주므로, 해당 ID에 매칭되는 계정명을 알아 낼려면 win32_LoggedOnUser 와 조인을 해야 합니다.

On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

arrComputers = Array("SERVERINFO")
For Each strComputer In arrComputers
   WScript.Echo
   WScript.Echo "=========================================="
   WScript.Echo "Computer: " & strComputer
   WScript.Echo "=========================================="

   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogonSession", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)

   For Each objItem In colItems
      WScript.Echo "AuthenticationPackage: " & objItem.AuthenticationPackage
      WScript.Echo "Caption: " & objItem.Caption
      WScript.Echo "Description: " & objItem.Description
      WScript.Echo "InstallDate: " & WMIDateStringToDate(objItem.InstallDate)
      WScript.Echo "LogonId: " & objItem.LogonId
      WScript.Echo "LogonType: " & objItem.LogonType
      WScript.Echo "Name: " & objItem.Name
      WScript.Echo "StartTime: " & WMIDateStringToDate(objItem.StartTime)
      WScript.Echo "Status: " & objItem.Status
      WScript.Echo
   Next
Next

Function WMIDateStringToDate(dtmDate)
WScript.Echo dtm:
 WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
 Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
 & " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2))
End Function


16-LogonType.png

댓글 없음:

댓글 쓰기

가장 많이 본 글