LordOfTheApes

Who is Logged into what where on the domain

Sep 24th, 2013
382
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'MODIEIFED on 09.10.2013
  2. On Error Resume Next
  3.  
  4. Const ADS_SCOPE_SUBTREE = 2  
  5. Const ForAppending = 8  
  6. Const TriStateFalse = 0
  7.  
  8. TIME_DATE_FORMAT = Year(Now()) & Month(Now()) & Day(Now())
  9. FILE_NAME = ".\Reports\AD_ComputersUsers" & TIME_DATE_FORMAT & ".csv"
  10. COMPUTER_LIST_FILE_NAME = ".\Reports\" & TIME_DATE_FORMAT & "AD_Computers.txt"
  11.  
  12. Dim fso, cn, cmd, ou, rs, objStream, OutputBuilder, outFile
  13.  
  14. Set fso = CreateObject("Scripting.FileSystemObject")  
  15. 'Set outFile = fso.OpenTextFile(COMPUTER_LIST_FILE_NAME, ForAppending, True)  
  16.  
  17. Set cn = CreateObject("ADODB.Connection")  
  18. cn.Provider = "ADsDSOObject"
  19. cn.Open "Active Directory Provider"
  20. Set cmd = CreateObject("ADODB.Command")  
  21. Set cmd.ActiveConnection = cn  
  22. ou = "DC=domain,DC=com"
  23. cmd.CommandText = "SELECT name " & _  
  24.               "FROM 'LDAP://" & ou & "' " & _  
  25.               "WHERE objectClass='computer' " & _  
  26.               "ORDER BY name"    
  27. cmd.Properties("Page Size") = 1000  
  28. cmd.Properties("Searchscope") = ADS_SCOPE_SUBTREE  
  29.  
  30. Set rs = cmd.Execute  
  31. rs.MoveFirst
  32.  
  33. Set objStream = FSO.CreateTextFile(FILE_NAME, True, TristateFalse)
  34.  
  35. set OutputBuilder = ""
  36.  
  37. msgbox ("Beginning Domain Scan")
  38.  
  39. Do Until rs.EOF
  40.     strcomputer = rs(0)
  41.  
  42.     ' WScript.Echo rs(0) 'popup of every computer outputted to file
  43.     'outFile.WriteLine rs(0)
  44.  
  45.     if strcomputer = "" then
  46.         wscript.quit
  47.     else
  48.  
  49.     Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery ("select * from Win32_PingStatus where address = '" & strcomputer & "'")
  50.         For Each objStatus in objPing
  51.             If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
  52.                 'request timed out
  53.                 'msgbox(strcomputer & " did not reply" & vbcrlf & vbcrlf & _
  54.                         '"Please check the name and try again")
  55.             else
  56.                 'PING CHALLANGE
  57.                 set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  58.                 Set colSettings = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
  59.                 Set IPConfigSet = objWMIService.ExecQuery ("Select IPAddress from Win32_NetworkAdapterConfiguration ")
  60.                 For Each objComputer in colSettings
  61.                     OutputBuilder = objComputer.name & "," & objcomputer.username
  62.  
  63.                     'UPTIME
  64.                     Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
  65.                     For Each objOS in colOperatingSystems
  66.                         dtmBootup = objOS.LastBootUpTime
  67.                         dtmLastBootUpTime = WMIDateStringToDate(dtmBootup)
  68.                         dtmSystemUptime = DateDiff("h", dtmLastBootUpTime, Now)
  69.                         OutputBuilder = OutputBuilder & "," & dtmSystemUptime  
  70.                     Next
  71.  
  72.                     'IPADDRESS
  73.                     For Each IPConfig in IPConfigSet
  74.                         If Not IsNull(IPConfig.IPAddress) Then  
  75.                             For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
  76.                                 If Not IPConfig.IPAddress(i) = "" Then
  77.                                     OutputBuilder = OutputBuilder & "," & IPConfig.IPAddress(i)
  78.                                 Else
  79.                                     OutputBuilder = OutputBuilder & ", NA"
  80.                                 End If
  81.                             Next
  82.                         End If
  83.                     Next
  84.  
  85.                     objStream.WriteLine OutputBuilder 'Builds the Final Output
  86.                 Next
  87.             end if
  88.         next
  89.     end if
  90.  
  91.     rs.MoveNext  
  92. Loop
  93.  
  94. msgbox ("Domain Has Been Processed")
  95. outFile.Close
  96. objStream.Close
  97.  
  98. Set outFile = Nothing
  99. Set objStream = Nothing
  100. Set fso = Nothing
  101.  
  102. Function WMIDateStringToDate(dtmBootup)
  103.     WMIDateStringToDate =  CDate(Mid(dtmBootup, 5, 2) & "/" & _
  104.         Mid(dtmBootup, 7, 2) & "/" & Left(dtmBootup, 4) _
  105.         & " " & Mid (dtmBootup, 9, 2) & ":" & Mid(dtmBootup, 11, 2) & ":" & Mid(dtmBootup, 13, 2))
  106. End Function
Advertisement
Add Comment
Please, Sign In to add comment