|
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
*****************************************
|