Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' ******************************
- ' Get Refined List of System Information
- ' Written By Joshua Arzt, M.I.T.
- ' Version: 1.2
- ' Created: March 1, 2006
- ' Revised: May 17, 2006
- ' ******************************
- On Error Resume Next
- ' Open File For Writing
- Set WshNetwork = WScript.CreateObject("WScript.Network")
- Dim objFileSystem, objOutputFile
- Dim strOutputFile
- ' generate a filename base on the script name
- strOutputFile = "./" & Split(WshNetwork.ComputerName, ".")(0) & ".txt"
- Set objFileSystem = CreateObject("Scripting.fileSystemObject")
- Set objOutputFile = objFileSystem.CreateTextFile(strOutputFile, TRUE)
- '----Computer Information (Start)---------------------------'
- objOutputFile.WriteLine "*************************************************"
- objOutputFile.WriteLine vbtab & vbtab & "System Information"
- objOutputFile.WriteLine "*************************************************"
- objOutputFile.WriteLine ""
- strComputer = "."
- ' Get CPU Information
- Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
- Set colProcessor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor")
- For Each colProc In colProcessor
- strDescription = ProcessorName(colProc.Name)
- ProcCount = ProcCount + 1
- Next
- ' Create Text for Output
- If ProcCount = 1 Then
- strCPUAll = strDescription
- Else
- strCPUAll = strDescription & " (" & ProcCount & " Processors)"
- End If
- '--------------
- ' Export Information
- Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
- Set colCS = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
- ' Write Basic System Information
- For Each objItem in colCS
- Set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
- For Each objItemOS in colOS
- ' Get SP Version
- If objItemOS.CSDVersion <> "" Then
- strSPVersion = objItemOS.CSDVersion
- Else
- strSPVersion = "No Service Packs Installed"
- End If
- If objItemOS.LastBootUpTime <> "" Then
- strLastBoot = DateConvert(objItemOS.LastBootUpTime)
- Else
- strLastBoot = "N/A"
- End If
- objOutputFile.WriteLine "Computer Name: " & vbTab & vbTab & objItemOS.csname
- objOutputFile.WriteLine "Manufacturer: " & vbTab & vbTab & objItem.Manufacturer
- objOutputFile.WriteLine "Model: " & vbTab & vbTab & vbTab & objItem.Model
- objOutputFile.WriteLine "SystemType: " & vbTab & vbTab & objItem.SystemType
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "CPU: " & vbtab & vbtab & vbtab & strCPUAll
- objOutputFile.WriteLine "Total Physical Memory: " & vbTab & MemoryConvert(objItem.TotalPhysicalMemory)
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "OS: " & vbTab & vbTab & vbTab & objItemOS.Caption
- objOutputFile.WriteLine "Release: " & vbTab & vbTab & strSPVersion
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "Free Physical Memory: " & vbTab & FreeMemoryConvert(objItemOS.FreePhysicalMemory)
- objOutputFile.WriteLine "Free Space Paging: " & vbTab & FreeMemoryConvert(objItemOS.FreeSpaceInPagingFiles)
- objOutputFile.WriteLine "Free Virtual Memory: " & vbTab & FreeMemoryConvert(objItemOS.FreeVirtualMemory)
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "Install Date: " & vbTab & vbTab & DateConvert(objItemOS.InstallDate)
- objOutputFile.WriteLine "Last Boot-Up Time: " & vbTab & strLastBoot
- Next
- Next
- '--------------Computer Information (End)------------------'
- '-------------Partition Information (Start)----------------'
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "*************************************************"
- objOutputFile.WriteLine vbtab & vbtab & "Disk Information"
- objOutputFile.WriteLine "*************************************************"
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- ' Get Drive Count
- Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
- Set DiskItemsParent = objWMIService.ExecQuery("Select * from Win32_DiskDrive")
- intCount = DiskItemsParent.Count
- ' Process Drives
- For i = 0 To intCount - 1
- Set DiskItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive WHERE Index = " & i)
- For Each diskItem in DiskItems
- ' Convert Drive Size
- If diskItem.Size <> "" Then strSize = ByteConvert(diskItem.Size) Else strSize = "N/A"
- If diskItem.StatusInfo <> "" Then strStsInfo = diskItem.StatusInfo Else strStsInfo = "N/A"
- If diskItem.SCSIBus <> "" Then strSCSIBus = diskItem.SCSIBus Else strSCSIBus = "N/A"
- If diskItem.SCSILogicalUnit <> "" Then strSCSILog = diskItem.SCSILogicalUnit Else strSCSILog = "N/A"
- If diskItem.SCSIPort <> "" Then strSCSIPort = diskItem.SCSIPort Else strSCSIPort = "N/A"
- If diskItem.SCSITargetId <> "" Then strSCSITarget = diskItem.SCSITargetId Else strSCSITarget = "N/A"
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "-------------------------------------------------"
- objOutputFile.WriteLine vbtab & vbtab & "Disk Drive " & diskItem.Index
- objOutputFile.WriteLine "-------------------------------------------------"
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "HARDWARE"
- objOutputFile.WriteLine "-------------"
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "Drive Model: " & vbtab & vbtab & diskItem.Model
- objOutputFile.WriteLine "Interface Type: " & vbtab & diskItem.InterfaceType
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "Disk Size: " & vbtab & vbtab & strSize
- objOutputFile.WriteLine "Total Partitions: " & vbtab & diskItem.Partitions
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "SCSI Bus: " & vbtab & vbtab & strSCSIBus
- objOutputFile.WriteLine "SCSI Logical Unit: " & vbtab & strSCSILog
- objOutputFile.WriteLine "SCSI Port: " & vbtab & vbtab & strSCSIPort
- objOutputFile.WriteLine "SCSI TargetId: " & vbtab & vbtab & strSCSITarget
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "Status: " & vbtab & vbtab & diskItem.Status
- objOutputFile.WriteLine "Status Info: " & vbtab & vbtab & strStsInfo
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "Total Cylinders: " & vbtab & diskItem.TotalCylinders
- objOutputFile.WriteLine "Total Heads: " & vbtab & vbtab & diskItem.TotalHeads
- objOutputFile.WriteLine "Sectors Per Track: " & vbtab & diskItem.SectorsPerTrack
- objOutputFile.WriteLine "Total Sectors: " & vbtab & vbtab & diskItem.TotalSectors
- objOutputFile.WriteLine "Total Tracks: " & vbtab & vbtab & diskItem.TotalTracks
- objOutputFile.WriteLine "Tracks Per Cylinder: " & vbtab & diskItem.TracksPerCylinder
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- '------------------Partitions------------------------'
- objOutputFile.WriteLine "PARTITIONS"
- objOutputFile.WriteLine "-------------"
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "Name" & vbtab & "Type" & vbtab & vbtab & vbtab & _
- "Total Size" & vbtab & "Free Space" & vbtab & vbtab & "File System" & vbtab & "Bootable"
- For DriveList = 1 To 2
- ' Set List
- If DriveList = 1 Then
- strQuery = "True"
- strPartition = "Primary"
- strCriteria = "Installable"
- ElseIf DriveList = 2 Then
- strQuery = "False"
- strPartition = "Logical"
- strCriteria = "Extended"
- End If
- ' Primary Drives
- Set partItemsTest = objWMIService.ExecQuery("SELECT * FROM Win32_DiskPartition " & _
- "WHERE PrimaryPartition = " & strQuery & " AND Type LIKE '" & strCriteria & "%'")
- If partItemsTest.Count > 0 Then
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine strPartition & " Partitions"
- Set DriveItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
- For Each driveItem in DriveItems
- If (driveItem.FreeSpace <> "") And (driveItem.Size <> "") Then
- strFreePerc = FormatNumber(((driveItem.FreeSpace * 100) / driveItem.Size), 2) & "%"
- End If
- If driveItem.Size <> "" Then strSize = ByteConvert(driveItem.Size) Else strSize = "N/A"
- If driveItem.FreeSpace <> "" Or driveItem.FreeSpace <> Null Then
- strFree = ByteConvert(driveItem.FreeSpace) & " (" & strFreePerc & ")"
- Else
- strFree = "N/A"
- End If
- If driveItem.VolumeSerialNumber <> "" Then strSerial = driveItem.VolumeSerialNumber Else strSerial = "N/A"
- If driveItem.FileSystem <> "" Then strFS = driveItem.FileSystem Else strFS = "N/A"
- ' Fix Tabbing
- strDescription = TabFix(driveItem.Description, 3, 1)
- strSize = TabFix(strSize, 2, 1)
- strFree = TabFix(strFree, 2, 1)
- strFS = TabFix(strFS, 2, 1)
- strPart = "N/A"
- strBootPart = "N/A"
- BootMark = 0
- Set LogDiskItems = objWMIService.ExecQuery("Select * from Win32_LogicalDiskToPartition")
- For Each logDiskItem in LogDiskItems
- Set partItems = objWMIService.ExecQuery( _
- "Select * from Win32_DiskPartition " & _
- "WHERE PrimaryPartition = " & strQuery & " AND DiskIndex = " & diskItem.Index)
- For Each partItem in PartItems
- ' Get Drive Letter
- strDrive = ExtractPartName(logDiskItem.Dependent)
- strPartName = ExtractPartName(logDiskItem.Antecedent)
- If strPartName = partItem.Name Then
- If (driveItem.Name = strDrive) Then
- strPart = strPartition
- If BootMark = 0 Then
- If partItem.Bootable = "True" Then
- strBootPart = "Yes"
- Else
- strBootPart = "No"
- End If
- BootMark = 1
- End If
- End If
- End If
- Next
- Next
- If strPart = strPartition Then
- ' Output Results
- objOutputFile.WriteLine driveItem.Name & vbtab & strDescription & _
- vbtab & strSize & vbtab & strFree & vbtab & strFS & vbtab & strBootPart
- End If
- Next
- End If
- Next
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- '--------------------Partitions-------------------------'
- Next
- Next
- '----Partition Information (End)---------------------------'
- '----Network Information (Start)---------------------------'
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine "*************************************************"
- objOutputFile.WriteLine vbtab & vbtab & "Network Information"
- objOutputFile.WriteLine "*************************************************"
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter")
- i = 1
- Dim STOREDIP(0)
- intNum = 0
- For Each objItem in colItems
- 'If colItems.Count > 1 Then objOutputFile.WriteLine "Network Adapter #" & i
- If objItem.NetConnectionStatus <> "" Then
- ' Determine Connection Status
- If objItem.NetConnectionStatus = 0 Then
- strNetStat = "Disabled"
- ElseIf objItem.NetConnectionStatus = 2 Then
- strNetStat = "Connected"
- ElseIf objItem.NetConnectionStatus = 7 Then
- strNetStat = "Disconnected"
- Else
- strNetStat = "Unknown"
- End If
- If objItem.NetConnectionStatus <> 0 Then
- ' Get Network Card Information
- Const HKEY_LOCAL_MACHINE = &H80000002
- strComputer = "."
- strKeyPath1 = "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
- strKeyPath2 = "SYSTEM\CurrentControlSet\Services\NetBT\Parameters"
- strHostEntry = "Hostname"
- strDomainEntry = "Domain"
- strNodeEntry = "DhcpNodeType"
- strRoutingEntry = "IPEnableRouter"
- Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
- strComputer & "\root\default:StdRegProv")
- objReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath1,strHostEntry,strHostname
- objReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath1,strDomainEntry,strDomain
- objReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath2,strNodeEntry,dwNodeType
- objReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath1,strRoutingEntry,dwIPRouting
- Select Case dwNodeType
- Case 4 strNodeType = "Mixed"
- Case 8 strNodeType = "Hybrid"
- Case Else strNodeType = dwNodeType
- End Select
- If dwIPRouting = 0 Then
- strIPRouting = "No"
- ElseIf dwIPRouting = 1 Then
- strIPRouting = "Yes"
- Else
- strIPRouting = "?"
- End If
- strComputer = "."
- Set objWMIService = GetObject("winmgmts:" _
- & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
- Set colFirstNicConfig = objWMIService.ExecQuery _
- ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
- For Each objFirstNicConfig In colFirstNicConfig
- strDnsWins = objFirstNicConfig.DNSEnabledForWINSResolution
- Next
- Set colNicConfigs = objWMIService.ExecQuery _
- ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
- sngOsVer = GetOsVer
- ' Display per-adapter settings.
- For Each objNicConfig In colNicConfigs
- intIndex = objNicConfig.Index
- Set objNic = objWMIService.Get("Win32_NetworkAdapter.DeviceID=" & intIndex)
- ' Connection Name
- If sngOsVer > 5 Then
- ' Works only in XP / 2003
- strNetConn = objNic.NetConnectionID
- Else
- strNetConn = "Unavailable"
- End If
- If objItem.NetConnectionID = "" Then
- strNetConn2 = "Unavailable"
- Else
- strNetConn2 = objItem.NetConnectionID
- End If
- ' IP Addresses
- strIPAddresses = ""
- If Not IsNull(objNicConfig.IPAddress) Then
- For Each strIPAddress In objNicConfig.IPAddress
- strIPAddresses = strIPAddresses & strIPAddress & " "
- Next
- End If
- ' If IP is repeated, and was already reported.
- intSkipLoop = 0
- If (strNetConn = strNetConn2) Then
- For j = 0 To intNum - 1
- If STOREDIP(j) = strIPAddresses Then
- intSkipLoop = 1
- Exit For
- End If
- Next
- If intSkipLoop = 0 Then
- ReDim Preserve STOREDIP(intNum)
- STOREDIP(intNum) = strIPAddresses
- intNum = intNum + 1
- End If
- Else
- intSkipLoop = 1
- End If
- intMsg = MsgBox(STOREDIP.Length)
- ' Subnets
- strIPSubnets = ""
- If Not IsNull(objNicConfig.IPSubnet) Then
- For Each strIPSubnet In objNicConfig.IPSubnet
- strIPSubnets = strIPSubnets & strIPSubnet & " "
- Next
- End If
- ' Gateways
- strDefaultIPGateways = ""
- If Not IsNull(objNicConfig.DefaultIPGateway) Then
- For Each strDefaultIPGateway In objNicConfig.DefaultIPGateway
- strDefaultIPGateways = strDefaultIPGateways & strDefaultIPGateway & " "
- Next
- Else
- strDefaultIPGateways = "N/A"
- End If
- ' DNS
- strDNSServerSearchOrder = ""
- If Not IsNull(objNicConfig.DNSServerSearchOrder) Then
- For Each strDNSServer In objNicConfig.DNSServerSearchOrder
- strDNSServerSearchOrder = strDNSServerSearchOrder & strDNSServer & vbcrlf & vbtab & vbtab & vbtab
- Next
- Else
- strDNSServerSearchOrder = "N/A"
- End If
- ' WINS
- ' Primary WINS
- If Not IsNull(objNicConfig.WINSPrimaryServer) Then
- If objNicConfig.WINSPrimaryServer = "127.0.0.0" Then
- strWINSPrimary = "N/A"
- Else
- strWINSPrimary = objNicConfig.WINSPrimaryServer
- End If
- Else
- strWINSPrimary = "N/A"
- End If
- ' Secondary WINS
- If Not IsNull(objNicConfig.WINSSecondaryServer) Then
- If objNicConfig.WINSSecondaryServer = "127.0.0.0" Then
- strWINSSecondary = "N/A"
- Else
- strWINSSecondary = objNicConfig.WINSSecondaryServer
- End If
- Else
- strWINSSecondary = "N/A"
- End If
- ' DHCP
- If objNicConfig.DHCPEnabled Then
- dtmRawLeaseObtainedDate = objNicConfig.DHCPLeaseObtained
- strFormattedLeaseObtainedDate = WMIDateToString(dtmRawLeaseObtainedDate)
- dtmRawLeaseExpiresDate = objNicConfig.DHCPLeaseExpires
- strFormattedLeaseExpiresDate = WMIDateToString(dtmRawLeaseExpiresDate)
- strDHCP = objNicConfig.DHCPServer
- Else
- strDHCP = "N/A"
- strFormattedLeaseObtainedDate = "N/A"
- strFormattedLeaseExpiresDate = "N/A"
- End If
- ' Run Output Process
- If (strNetConn = strNetConn2) And (intSkipLoop = 0) Then
- ' Connection Speed
- strComputer = "."
- strSpeed = "Unknown"
- strWinMgMts = "winmgmts:{impersonationLevel=impersonate}!//" & _
- strComputer & "/root/wmi"
- Set objWMI = GetObject(strWinMgMts)
- Set listAdapters = objWMI.InstancesOf("MSNdis_LinkSpeed")
- For Each objAdapter in listAdapters
- If objAdapter.InstanceName = objNicConfig.Description Then
- intLength = Len(objAdapter.NdisLinkSpeed/10000)
- If intLength > 3 Then
- strSpeed = Left(objAdapter.NdisLinkSpeed/10000, intLength - 3)
- strSpeed = strSpeed & ".0 Gbps"
- Else
- strSpeed = objAdapter.NdisLinkSpeed/10000 & " Mbps"
- End If
- End If
- Next
- ' Output
- objOutputFile.WriteLine "Network Adapter #" & i
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- objOutputFile.Write "Connection Name:" & vbtab & strNetConn & vbcrlf & _
- "DNS Suffix:" & vbtab & vbtab & objNicConfig.DNSDomain & vbcrlf & _
- "Device Name: " & vbTab & vbtab & objNicConfig.Description & vbcrlf & _
- "Physical Address:" & vbtab & objNicConfig.MacAddress & vbcrlf & _
- "DHCP Enabled:" & vbtab & vbtab & objNicConfig.DHCPEnabled & vbcrlf & _
- vbcrlf & _
- "IP Address(es):" & vbtab & vbtab & strIPAddresses & vbcrlf & _
- "Subnet Mask" & vbtab & vbtab & strIPSubnets & vbcrlf & _
- "Default Gateway:" & vbtab & strDefaultIPGateways & vbcrlf & vbcrlf & _
- "DHCP Server:" & vbtab & vbtab & strDHCP & vbcrlf & _
- "DNS Servers:" & vbtab & vbtab & strDNSServerSearchOrder & vbcrlf & _
- "Primary WINS:" & vbtab & vbtab & strWINSPrimary & vbcrlf & _
- "Secondary WINS:" & vbtab & vbtab & strWINSSecondary & vbcrlf & _
- "Lease Obtained:" & vbtab & vbtab & strFormattedLeaseObtainedDate & vbcrlf & _
- "Lease Expires:" & vbtab & vbtab & strFormattedLeaseExpiresDate & vbcrlf
- If sngOsVer > 5 Then
- ' Works only in XP / 2003
- objOutputFile.Write vbcrlf & _
- "Connection Status: " & vbtab & strNetStat & vbcrlf & _
- "Connection Speed: " & vbtab & strSpeed & vbcrlf
- End If
- objOutputFile.Write vbcrlf & _
- vbcrlf & _
- "*************************************************" & vbcrlf & _
- vbcrlf & _
- vbcrlf
- i = i + 1
- End If
- Next
- Else
- objOutputFile.WriteLine "Network Adapter #" & i
- objOutputFile.WriteLine ""
- objOutputFile.WriteLine ""
- objOutputFile.Write "Connection Name:" & vbtab & objItem.NetConnectionID & vbcrlf & _
- "Connection Status: " & vbtab & "Disabled" & vbcrlf & _
- vbcrlf & _
- vbcrlf & _
- "*************************************************" & vbcrlf & _
- vbcrlf & _
- vbcrlf
- i = i + 1
- End If
- End If
- Next
- '------------Network Information (End)------------------'
- '-----------------Functions (Start)---------------------'
- ' Trim All Delimiters
- Function NewTrim(strObject)
- Dim chrRead, chrRead2
- Dim strRead
- For i = 1 To Len(strObject)
- chrRead = Mid(strObject, i, 1)
- If i < Len(strObject) Then
- chrRead2 = Mid(strObject, i + 1, 1)
- End If
- If chrRead <> Chr(9) And (chrRead <> Chr(32) Or _
- (chrRead = Chr(32) And chrRead2 <> Chr(32))) Then
- strRead = strRead & chrRead
- End If
- Next
- NewTrim = Trim(strRead)
- End Function
- ' System Memory Conversion
- Function MemoryConvert(strMem)
- Dim intLength
- Dim intExp
- Dim intSize
- Dim strSize
- Dim strMeasure
- Dim strMemory
- intLength = Len(strMem)
- If (intLength Mod 4 = 0) Then
- intExp = CInt((intLength / 3) - 2)
- Else
- intExp = CInt((intLength / 3) - 1)
- End If
- ' Convert Exponent to Integer
- 'intExp = CInt(intExp)
- ' Convert to Lowest Integer Value
- For intCount = 1 To Len(intExp)
- chrRead = Mid(intExp, intCount, 1)
- If chrRead = "." Then
- Exit For
- Else
- strRead = strRead & chrRead
- End If
- Next
- intExp = Cint(strRead)
- intSize = CLng(strMem / (2 ^ (intExp * (10))))
- If Len(intSize) = 1 Then
- strFormat = FormatNumber(CStr(intSize), 2)
- Else
- strFormat = intSize + 1
- End If
- If (intExp = 1) Then
- strMeasure = "KB"
- ElseIf (intExp = 2) Then
- strMeasure = "MB"
- ElseIf (intExp = 3) Then
- strMeasure = "GB"
- ElseIf (intExp = 4) Then
- strMeasure = "TB"
- ElseIf (intExp = 5) Then
- strMeasure = "PB"
- ElseIf (intExp = 6) Then
- strMeasure = "EB"
- End If
- MemoryConvert = strFormat & " " & strMeasure
- End Function
- ' Free Memory Conversion
- Function FreeMemoryConvert(strMem)
- Dim intLength
- Dim intExp
- Dim intSize
- Dim strSize
- Dim strMeasure
- Dim strMemory
- intLength = Len(strMem)
- intExp = CInt((intLength / 3) - 1)
- ' Convert to Lowest Integer Value
- For intCount = 1 To Len(intExp)
- chrRead = Mid(intExp, intCount, 1)
- If chrRead = "." Then
- Exit For
- Else
- strRead = strRead & chrRead
- End If
- Next
- intExp = Cint(strRead)
- intSize = CLng(strMem / (2 ^ (intExp * (10))))
- If Len(intSize) = 1 Then
- strFormat = FormatNumber(CStr(intSize), 2)
- Else
- strFormat = intSize + 1
- End If
- If (intExp = 1) Then
- strMeasure = "MB"
- ElseIf (intExp = 2) Then
- strMeasure = "GB"
- ElseIf (intExp = 3) Then
- strMeasure = "TB"
- ElseIf (intExp = 4) Then
- strMeasure = "PB"
- ElseIf (intExp = 5) Then
- strMeasure = "EB"
- End If
- ' Return Value
- FreeMemoryConvert = strFormat & " " & strMeasure
- End Function
- ' System Byte Conversion
- Function ByteConvert(strMem)
- Dim intLength
- Dim intExp
- Dim intSize
- Dim strSize
- Dim strMeasure
- Dim strMemory
- intLength = Len(strMem)
- If (intLength Mod 3 = 0) Then
- intExp = (intLength / 3) - 1
- Else
- intExp = (intLength / 3)
- End If
- ' Convert to Lowest Integer Value
- For intCount = 1 To Len(intExp)
- chrRead = Mid(intExp, intCount, 1)
- If chrRead = "." Then
- Exit For
- Else
- strRead = strRead & chrRead
- End If
- Next
- intExp = Cint(strRead)
- intSize = (strMem / (2 ^ (intExp * (10))))
- strFormat = FormatNumber(CStr(intSize), 2)
- If (intExp = 1) Then
- strMeasure = "KB"
- ElseIf (intExp = 2) Then
- strMeasure = "MB"
- ElseIf (intExp = 3) Then
- strMeasure = "GB"
- ElseIf (intExp = 4) Then
- strMeasure = "TB"
- ElseIf (intExp = 5) Then
- strMeasure = "PB"
- ElseIf (intExp = 6) Then
- strMeasure = "EB"
- End If
- ByteConvert = strFormat & " " & strMeasure
- End Function
- ' Convert Date to Comprehensive Format
- Function DateConvert(strDate)
- strMonth = Mid(strDate, 5, 2)
- strDay = Mid(strDate, 7, 2)
- strYear = Left(strDate, 4)
- strHour = Mid(strDate, 9, 2) + 2
- strMinute = Mid(strDate, 11, 2)
- strSecond = Mid(strDate, 13, 2)
- ' Date Convert
- If strMonth = "01" Then
- strMonth = "January"
- ElseIf strMonth = "02" Then
- strMonth = "February"
- ElseIf strMonth = "03" Then
- strMonth = "March"
- ElseIf strMonth = "04" Then
- strMonth = "April"
- ElseIf strMonth = "05" Then
- strMonth = "May"
- ElseIf strMonth = "06" Then
- strMonth = "June"
- ElseIf strMonth = "07" Then
- strMonth = "July"
- ElseIf strMonth = "08" Then
- strMonth = "August"
- ElseIf strMonth = "09" Then
- strMonth = "September"
- ElseIf strMonth = "10" Then
- strMonth = "October"
- ElseIf strMonth = "11" Then
- strMonth = "November"
- ElseIf strMonth = "12" Then
- strMonth = "December"
- End If
- ' Time Convert
- If CInt(strHour) <= 12 Then
- strTime = strHour & ":" & strMinute & ":" & strSecond & " AM EST"
- Else
- strTime = CStr(CInt(strHour) - 12) & ":" & strMinute & ":" & strSecond & " PM EST"
- End If
- ' Return Value
- DateConvert = strMonth & " " & strDay & ", " & strYear & ", " & strTime
- End Function
- ' Trim Processor Description
- Function ProcessorName(strName)
- Dim intCounter
- Dim strRead
- Dim chrRead, chrReadMore
- For intCounter = 1 to Len(strName)
- chrRead = Mid(strName, intCounter, 1)
- chrReadMore = Mid(strName, intCounter + 1, 1)
- If ((chrRead <> " ") Or ((chrRead = " ") And (chrReadMore <> " "))) Then
- strRead = strRead & chrRead
- End If
- Next
- ProcessorName = Trim(strRead)
- End Function
- ' Get Part Name
- Function ExtractPartName(strName)
- Dim chrRead
- Dim strRead
- Dim i
- For i = 2 To Len(strName)
- chrRead = Mid(strName, Len(strName) - (i - 1), 1)
- If chrRead <> Chr(34) Then
- strRead = chrRead & strRead
- Else
- Exit For
- End If
- Next
- ExtractPartName = strRead
- End Function
- ' Tab Fix
- Function TabFix(strText, intTab, intDisp)
- TAB = 8
- intLength = Len(strText)
- intWeight = intLength / TAB
- ' Convert to Lowest Integer Value
- For intCount = 1 To intLength
- chrRead = Mid(intWeight, intCount, 1)
- If chrRead = "." Then
- Exit For
- Else
- strRead = strRead & chrRead
- End If
- Next
- intWeight = CInt(strRead)
- intResult = intTab - (intWeight + intDisp)
- If intResult <= 0 Then
- ' Do Nothing
- ElseIf intResult = 1 Then
- strText = strText & vbtab
- Else
- For i = 1 To intResult
- strText = strText & vbtab
- Next
- End If
- TabFix = strText
- End Function
- ' Function: WMIDateStringToDate(dtmDate)
- Function WMIDateToString(dtmDate)
- WMIDateToString = 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
- ' Function: GetOsVer
- Function GetOsVer
- Set colOperatingSystems = objWMIService.ExecQuery _
- ("Select * from Win32_OperatingSystem")
- For Each objOperatingSystem In colOperatingSystems
- GetOSVer = CSng(Left(objOperatingSystem.Version, 3))
- Next
- End Function
- '--------------------Functions (End)--------------------'
- ' End of File
- objOutputFile.WriteLine "End of File"
- ' Delete Temp Log File
- Set objCleanup = CreateObject("Scripting.FileSystemObject")
- objCleanup.DeleteFile(strCPUFile)
- ' Notify User
- WScript.Echo "Process Completed (" & Now & ")"
- ' End Of File
- objOutputFile.Close
- Set objFileSystem = Nothing
- WScript.Quit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement