Printer-friendly copy Email this topic to a friend
Lobby High-Tech topic #66927

Subject: "I really, really like this script (for system auditing) *Nerd stuff*" Previous topic | Next topic
eunos
Member since May 22nd 2002
6223 posts
Fri Jun-02-06 11:27 PM

Click to send email to this author Click to send private message to this authorClick to view this author's profileClick to add this author to your buddy list
"I really, really like this script (for system auditing) *Nerd stuff*"


  

          

Hopefully at least one of ya'll will find a use for it. Copy & Paste into notepad then change it to ".vbs" at the end (if you are thinking about using it you probably know that already though) :

'Must have admin privillages to run the script
' A VBS Script using WMI to gather system information
' Note this script requires WSCRIPT v 5.6 To be installed On the PC upon which it Is run


Dim GetCurrentDate ,filext ,oshell

Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "net time \\DCname /set /y"
' change DCname to your domain controller name if you want to syncronize your time with your DC
Set oShell = Nothing


strComputer = "."
const HKEY_LOCAL_MACHINE = &H80000002
On Error Resume Next

' ************************************
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
For Each objItem In colItems
cComputerName = objItem.Caption
cloginname = objItem.UserName
cManufacturer = objItem.Manufacturer
cModel = objItem.Model
Next

Set WshNetwork = WScript.CreateObject("WScript.Network")
cUserName = WshNetwork.UserName
Set UserObj = GetObject("WinNT://domain/"&WshNetwork.UserName)
' change domain to your domain name w/o .com
strDisplayName = UserObj.Get("FullName")
strlastlogin = UserObj.Get("LastLogin")
pos = instrrev(cloginname,"\",-1)
clname1 = mid(cloginname,pos+1 ,len(cloginname))

Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("process")
windir = WshSysEnv("WINDIR")

Set objFSO = CreateObject("Scripting.FileSystemObject")
If not objFSO.FolderExists(windir & "\sharefolder") Then
' change \sharedfolder to any name , this is where the report will be save
Set objFolder = objFSO.CreateFolder(windir & "\sharefolder")
End If


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile(windir & "\sharefolder\" & cComputerName & ".rpt", True)
objTextFile.WriteLine "Date: " & Date & vbTab & Time
objTextFile.WriteLine "User Name: " & clname1
Set UserObj = GetObject("WinNT://domainname/"&clname1)
'change domainname to your domain name

strDisplayName = UserObj.Get("FullName")
objTextFile.WriteLine "Full Name: " & strDisplayName
' objTextFile.WriteLine "Employee Number: "
objTextFile.WriteLine "Computer Name: " & cComputerName

'************************
Set objWMIService = GetObject("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objAdapter in colAdapters
objTextFile.WriteLine "IP address: " & objAdapter.IPAddress(i)
objTextFile.WriteLine "DNS Domain: " & objAdapter.DNSDomain
Next

'****************
' Get OS Details
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
For Each objItem In colItems
cOSs = objItem.Name
pos = InStr(1, cOsS,"|",1)
cOS1 = left(cOSs,pos-1)
objTextFile.WriteLine "Operating System: " & cOS1 & " " & objItem.CSDVersion
TotalVisibleMemory = FormatNumber(objItem.TotalVisibleMemorySize/1024,0)

Next

'****************
objTextFile.WriteLine "Manufacturer: " & cManufacturer
objTextFile.WriteLine "Model: " & cModel

'****************
'Get BIOS Details
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_BIOS",,48)
For Each objItem In colItems
objTextFile.WriteLine "Serial Number: " & objItem.SerialNumber
Next

'**********************************
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
For Each objItem in colItems
objTextFile.WriteLine "CPU: " & trim(objItem.Name) & " " & objItem.CurrentClockSpeed & " MHz"
Next

'**************************************
objTextFile.WriteLine "Memory: " & TotalVisibleMemory & " MB"

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk",,48)
For Each objItem in colItems
ndisktype = objItem.DriveType
If ndisktype = 3 Then
objTextFile.WriteLine "Disk: " & objItem.Caption
objTextFile.WriteLine "Size: " & objItem.Size
objTextFile.WriteLine "FreeSpace: " & objItem.FreeSpace
End If
If ndisktype = 5 Then
objTextFile.WriteLine "CD Drive: " & objItem.Caption
End If
Next

objTextFile.WriteLine "Softwares: *****Programs found in Control Panel Add/Remove *********** "

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &strComputer & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys

For Each subkey In arrSubKeys
UnistallValue = ""
DisplayValue = ""
strKeyPath1 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & subkey
oReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath1, arrValueNames , arrValueTypes

If Not Isnull(arrValueTypes) Then
For i = 0 To UBOUND(arrValueNames)
If arrValueNames(i) = "DisplayName" Then
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath1,arrValueNames(i),strValue
DisplayValue = strValue
End if
If arrValueNames(i) = "UninstallString" Then
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath1,arrValueNames(i),strValue
UnistallValue = strValue
End if
Next
IF UnistallValue <> "" AND DisplayValue <> "" THEN
objTextFile.WriteLine "Software: " & DisplayValue ' & vbtab & UnistallValue
End If
End If
Next

objTextFile.Close
cfullpath = windir & "\sharefolder\" & cComputerName & ".rpt"

servfpath = "\\servername\sharedfolder$\serverfolder\" & cComputerName & ".rpt"
'modify \\servername\sharedfolder$\serverfolder\ to your servername & shared folder
' copy the report to the shared folder in the server

'Set WshShell = WScript.CreateObject("WScript.Shell")
'Return = WshShell.Run("notepad " & cfullpath, 1, true)

Set fso = CreateObject("Scripting.FileSystemObject")
'Set objFSO = CreateObject("Scripting.FileSystemObject")

' if the report file exist in the server, rename the file
If fso.FileExists(servfpath) Then
GetCurrentDate = FormatDateTime(Date, 2)
' filext = Replace(GetCurrentDate, "/", "-")
MyString1 = Replace(now, "/", "-")
MyString2 = Replace(MyString1 , ":", "")
filext = Replace(MyString2 , " ", "-")

FSO.MoveFile servfpath , "\\servername\sharedfolder$\serverfolder\" & cComputerName & "." & filext
End If

destFile = "\\servername\sharedfolder$\serverfolder\"
fso.CopyFile cfullpath ,destFile,True
Set fso = Nothing
WScript.Quit

*****************************************

  

Printer-friendly copy | Reply | Reply with quote | Top

Lobby High-Tech topic #66927 Previous topic | Next topic
Powered by DCForum+ Version 1.25
Copyright © DCScripts.com