Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: Inventory PC System WMI Information HTML Table File Emails MotherBoard Battery Bios CD ROM Serial Product Number Tag CPU Disk Drive Ip Address Mac Memory Processor Network Adapter
;*************************************************************************** ;** PC Inventory ;** ;** ;** Purpose: Obtains system information into HTML file and optionally displays or emails the results. ;** Inputs: SMTP server information as variables ;** Outputs: Optionally displays or emails the results. ;** System Requirements: Postie Extender. WinBatch 2010B or newer. Windows Vista or newer. ;** ;** Revisions: 2013.10.2 Deana Falk ;*************************************************************************** If Version( )< '2010B' Pause('Notice', 'Need 2010B or Newer Version of WinBatch') Exit EndIf ver = WinVersion( 5 ) If ver < "2-6-0" Pause('Notice', 'This script is designed for Windows Vista and newer.') Exit EndIf #DefineFunction udfWMIDataArray( class, properties ) ParseData( StrReplace( properties, ',', ' ' ) ) propcount = param0 arrData = ArrDimension(2, propcount) ArrInitialize(arrData, 'NA') strComputer = "." query = "Select * from " : class objWMIService = GetObject("winmgmts:\\" : strComputer : "\root\cimv2") colItems = objWMIService.ExecQuery(query) instcount = colitems.Count instance = 1 ForEach objItem In colItems If ObjectTypeGet(objItem)=="EMPTY" Then Continue For i=0 To param0-1 n = i+1 propname = param%n% arrData[0,i] = propname arrData[instance,i] = objItem.%propname% Next ; Handle multiple instances If instcount > instance ArrayRedim( arrData, ArrInfo(arrData,1)+1, -1 ) instance = instance+1 EndIf Next Return arrData #EndFunction #DefineFunction udfConvertToHTMLTable( arrData ) rowcount = ArrInfo( arrData, 1 ) colcount = ArrInfo( arrData, 2 ) htmlData = '<table width="500" border="1">' ;Pause( rowcount, colcount) For row = 0 To ArrInfo( arrData, 1 ) - 1 htmlData = htmlData : '<tr>' For col = 0 To ArrInfo( arrData, 2 ) - 1 htmlData = htmlData : '<td>' If ObjectTypeGet( arrData[row,col] ) == 'ARRAY|VARIANT' data = udfArrayToList(arrData[row,col],'|') Else data = arrData[row,col] EndIf htmlData = htmlData : data htmlData = htmlData : '</td>' Next htmlData = htmlData : '</tr>' Next htmlData = htmlData : '</table>' Return htmlData #EndFunction #DefineFunction udfConvertToHTMLTableEx( arrData ) ; Beautified version of the table rowcount = ArrInfo( arrData, 1 ) colcount = ArrInfo( arrData, 2 ) htmlData = '<table width="auto" border="1" cellpadding="3" cellspacing="0">' ;Pause( rowcount, colcount) For row = 0 To ArrInfo( arrData, 1 ) - 1 ; Alternate Row Color If row == 0 ;Heading only htmlData = htmlData : '<tr bgcolor="CornflowerBlue">' ; #6495ED ElseIf (row mod 2) == 0 ;even numbered row htmlData = htmlData : '<tr bgcolor="LightGray">' ; #D3D3D3 Else htmlData = htmlData : '<tr>' EndIf For col = 0 To ArrInfo( arrData, 2 ) - 1 htmlData = htmlData : '<td align="left">' If ObjectTypeGet( arrData[row,col] ) == 'ARRAY|VARIANT' data = udfArrayToList(arrData[row,col],'|') Else data = arrData[row,col] EndIf htmlData = htmlData : data htmlData = htmlData : '</td>' Next htmlData = htmlData : '</tr>' Next htmlData = htmlData : '</table>' Return htmlData #EndFunction #DefineFunction udfArrayToList(arrData,strDelim) strData = '' count = ArrInfo ( arrData, 1 ) -1 For ctr = 0 To count If ctr < count strData=StrCat(strData,arrData[ctr],strDelim) Else strData=StrCat(strData,arrData[ctr]) EndIf Next Return (strData) #EndFunction ; System Info computername = ComputerNameGet(0) username = Environment( 'USERNAME' ) dir = ShortCutDir( 'Personal' ,0 ,1 ) ; MODIFY TO FIT YOUR NEEDS title = 'PC Inventory' ; Email Settings smtphost = ";mail.dadomain.com" toaddr = "dauser@dadomain.com" fromaddr = username : "@dadomain.com" subject = "Hardware Info for": computername mymsg="<html><head><title>PC INVENTORY</title></head><body><h1>":subject:"</h1>See attached.</body></html>" flags="h" attachment = dir: computername : ".html" ; HTML Output fh = FileOpen( attachment, "Write") FileWrite( fh, '<!DOCTYPE html><html><head><title>Hardware Information for computername</title><head><body><h1>':computername:'</h1>' ) heading = 'MotherBoard' class = 'Win32_BaseBoard' properties = 'Name,Manufacturer,Product,SerialNumber,Status' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'Battery' class = 'Win32_Battery' properties = 'Caption,Name,DesignVoltage,DeviceID,EstimatedChargeRemaining,EstimatedRunTime' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'BIOS' class = 'Win32_Bios' properties = 'Manufacturer,Name,BIOSVersion,ListOfLanguages,PrimaryBIOS,ReleaseDate,SMBIOSBIOSVersion,SMBIOSMajorVersion,SMBIOSMinorVersion' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'CDROM Drive' class = 'Win32_CDROMDrive' properties = 'Name,Drive,MediaLoaded,MediaType,MfrAssignedRevisionLevel' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'Computer System Product' class = 'Win32_ComputerSystemProduct' properties = 'Vendor,Version,Name,IdentifyingNumber,UUID' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'Computer System' class = 'Win32_ComputerSystem' properties = 'Name,TotalPhysicalMemory' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'CPU' class = 'Win32_Processor' properties = 'Name,Manufacturer,Caption,DeviceID,CurrentClockSpeed,CurrentVoltage,DataWidth,L2CacheSize,L3CacheSize,NumberOfCores,NumberOfLogicalProcessors,Status' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'Disk Drive' class = 'Win32_DiskDrive' properties = 'Model,SerialNumber,InterfaceType,Size,Partitions' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'IP Address' class = 'Win32_NetworkAdapterConfiguration' properties = 'Description,IPAddress,IPSubnet,DefaultIPGateway,DNSServerSearchOrder,WINSPrimaryServer,DNSDomain,DNSDomainSuffixSearchOrder,DHCPEnabled,DHCPServer,DHCPLeaseObtained,DHCPLeaseExpires' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'Network Adapters' class = 'Win32_NetworkAdapter' properties = 'Name,Manufacturer,Description,AdapterType,Speed,MACAddress,NetConnectionID' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'OS' class = 'Win32_OperatingSystem' properties = 'Caption,CSDVersion,FreePhysicalMemory' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'Physical Memory' class = 'Win32_PhysicalMemory' properties = 'BankLabel,DeviceLocator,Capacity,Manufacturer,PartNumber,SerialNumber,Speed' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) heading = 'System Enclosure' class = 'Win32_SystemEnclosure' properties = 'Tag,AudibleAlarm,ChassisTypes,HeatGeneration,HotSwappable,InstallDate,LockPresent,PoweredOn,PartNumber,SerialNumber' arrData = udfWMIDataArray( class, properties ) FileWrite( fh, '<h2>':heading:'</h2>' ) FileWrite( fh, udfConvertToHTMLTableEx( arrData ) ) ; Finalize HTML FileWrite( fh, '</body></html>' ) FileClose( fh ) ret = AskYesNo( title, 'Would you like to display the results?' ) If ret ; Display Results Run( attachment, '' ) EndIf ret = AskYesNo( title, 'Would you like to EMAIL the results?' ) If ret ; EMAIL Results AddExtender("WWPST44I.DLL") kInit(smtphost,fromaddr,"","","") kDest(toaddr,"","") ;ret = kSendText(subject,mymsg,attachment,"h") ret = kSendFile(subject,attachment,attachment,flags) If ret == 0 errline=kStatusInfo() Message("ErrLine",errline) EndIf EndIf Exit
Article ID: W18486
Filename: PC Inventory.txt
File Created: 2013:10:07:10:44:08
Last Updated: 2013:10:07:10:44:08