WMI / VBS / HTML系统信息脚本

时间:2009-08-01 00:29:17

标签: html scripting vbscript wmi

这里有这个代码的问题;似乎无法解决什么是错误的。

所有其他变量似乎在HTML输出中打印得很好;但是我得到一个与cputype变量有关的错误。

我收到以下错误

  

C:\ Users \ Methical \ Desktop \ sysinfo.vbs(235,1)Microsoft VBScript运行时错误:   无效的过程调用或参数

我认为这里有一些与这条线有关的事情

fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>CPU</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & cputype & "</i></td></tr>"

如果我删除这一行;脚本编译并输出没有错误。

以下是完整的代码

Dim strComputer, objWMIService, propValue, objItem
Dim strUserName, strPassword, colItems, SWBemlocator

' This section queries for the workstation to be scanned.
UserName = ""
Password = ""
strComputer = "127.1.1.1"
ImgDir = "C:\Scripts\images\"

'Sets up the connections and opjects to be used throughout the script.
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(,"root\CIMV2",strUserName,strPassword)

'This determines the current date and time of the PC being scanned.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LocalTime", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem in colItems
    If objItem.Minute < 10 Then
        theMinutes = "0" & objItem.Minute
    Else
        theMinutes = objItem.Minute
    End If
    If objItem.Second < 10 Then
        theSeconds = "0" & objItem.Second
    Else
        theSeconds = objItem.Second
    End If
    DateTime = objItem.Month & "/" & objItem.Day & "/" & objItem.Year & " - " & objItem.Hour & ":" & theMinutes & ":" & theSeconds
Next

'Gets some ingomation about the Operating System including Service Pack level.
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
For Each objItem in colItems
    WKID = objItem.CSName
    WKOS = objItem.Caption
    CSD = objItem.CSDVersion
    Architecture = objItem.OSArchitecture
    SysDir = objItem.SystemDirectory
    SysDrive = objItem.SystemDrive
    WinDir = objItem.WindowsDirectory
    ServicePack = objItem.ServicePackMajorVersion & "." & objItem.ServicePackMinorVersion
Next

'This section returns the Time Zone
Set colItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objItem in colItems
    Zone = objItem.Description
Next

'This section displays the Shadow Storage information
Set colItems = objWMIService.ExecQuery("Select * from Win32_ShadowStorage")
For Each objItem in colItems
    Allocated = int((objItem.AllocatedSpace/1024)/1024+1)
    UsedSpace = int((objItem.UsedSpace/1024)/1024+1)
    MaxSpace = int((objItem.MaxSpace/1024)/1024+1)
Next

'This section returns the InstallDate of the OS
Set objSWbemDateTime = _
  CreateObject("WbemScripting.SWbemDateTime")
Set colOperatingSystems = _
    objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem _
    in colOperatingSystems
    objSWbemDateTime.Value = _
        objOperatingSystem.InstallDate
    InstallDate = _
        objSWbemDateTime.GetVarDate(False)
Next

'This section returns the Video card and current resolution.
Set colItems = objWMIService.ExecQuery("Select * from Win32_DisplayConfiguration",,48)
For Each objItem in colItems
    VideoCard = objItem.DeviceName
    Resolution = objItem.PelsWidth & " x " & objItem.PelsHeight & " x " & objItem.BitsPerPel & " bits"
Next

'This section returns the Video card memory.
Set objWMIService = GetObject("winmgmts:root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_VideoController")
For Each objItem in colItems
    VideoMemory = objItem.AdapterRAM/1024/1024
Next

'This returns various system information including current logged on user, domain, memory, manufacture and model.
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
For Each objItem in colItems
    UserName = objItem.UserName
    Domain = objItem.Domain
    TotalMemory = int((objItem.TotalPhysicalMemory/1024)/1024+1)
    Manufacturer = objItem.Manufacturer
    Model = objItem.Model
    SysType = objItem.SystemType
Next

'This determines the total hard drive space and free hard drive space.
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where Name='C:'",,48)
For Each objItem in colItems
    FreeHDSpace = Fix(((objItem.FreeSpace/1024)/1024)/1024)
    TotalHDSpace = Fix(((objItem.Size/1024)/1024)/1024)
Next

'This section returns the default printer and printer port.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Printer where Default=True", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem in colItems
    Printer = objItem.Name
    PortName = objItem.PortName
Next

'This returns the CPU information.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem in colItems
    CPUDesc = LTrim(objItem.Name)
Next


'// CPU Info
For each objCPU in GetObject("winmgmts:{impersonationLevel=impersonate}\\" & strComputer & "\root\cimv2").InstancesOf("Win32_Processor")
                Select Case objCPU.Family
                    Case 2
                        cputype = "Unknown"
                    Case 11
                        cputype = "Pentium brand"
                    Case 12
                        cputype = "Pentium Pro"
                    Case 13
                        cputype = "Pentium II"
                    Case 14
                        cputype = "Pentium processor with MMX technology"
                    Case 15
                        cputype = "Celeron "
                    Case 16
                        cputype = "Pentium II Xeon"
                    Case 17
                        cputype = "Pentium III"
                    Case 28
                        cputype = "AMD Athlon Processor Family"
                    Case 29
                        cputype = "AMD Duron Processor"
                    Case 30
                        cputype = "AMD2900 Family"
                    Case 31
                        cputype = "K6-2+"
                    Case 130
                        cputype = "Itanium Processor"
                    Case 176
                        cputype = "Pentium III Xeon"
                    Case 177
                        cputype = "Pentium III Processor with Intel SpeedStep Technology"
                    Case 178
                        cputype = "Pentium 4"
                    Case 179
                        cputype = "Intel Xeon"
                    Case 181
                        cputype = "Intel Xeon processor MP"
                    Case 182
                        cputype = "AMD AthlonXP Family"
                    Case 183
                        cputype = "AMD AthlonMP Family"
                    Case 184
                        cputype = "Intel Itanium 2"
                    Case 185
                        cputype = "AMD Opteron Family"
                End Select
Next

'This returns the current uptime (time since last reboot) of the system.
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOS in colOperatingSystems
    dtmBootup = objOS.LastBootUpTime
    dtmLastBootupTime = WMIDateStringToDate(dtmBootup)
    dtmSystemUptime = DateDiff("h", dtmLastBootUpTime, Now)
    Uptime = dtmSystemUptime
Next
Function WMIDateStringToDate(dtmBootup)
    WMIDateStringToDate = CDate(Mid(dtmBootup, 5, 2) & "/" & Mid(dtmBootup, 7, 2) & "/" & Left(dtmBootup, 4) & " " & Mid (dtmBootup, 9, 2) & ":" & Mid(dtmBootup, 11, 

2) & ":" & Mid(dtmBootup,13, 2))
End Function

dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

' -- The heart of the create file script -----------------------
' -- Creates the file using the value of strFile on Line 11
' --------------------------------------------------------------
Set fileOutput = objFSO.CreateTextFile( "x.html", true )

'Set fileOutput = objExplorer.Document

'This is the code for the web page to be displayed.

fileOutput.WriteLine "<html>"
fileOutput.WriteLine "    <head>"
fileOutput.WriteLine "        <title>System Information for '" & WKID & "' </title>"
fileOutput.WriteLine "    </head>"
fileOutput.WriteLine "    <body bgcolor='#FFFFFF' text='#000000' link='#0000FF' vlink='000099' alink='#00FF00'>"
fileOutput.WriteLine "        <center>"
fileOutput.WriteLine "            <h1>System Information for " & WKID & "</h1>"
fileOutput.WriteLine "            <table border='0' cellspacing='1' cellpadding='1' width='95%'>"
fileOutput.WriteLine "                <tr><td background='" & ImgDir & "blue_spacer.gif'>"
fileOutput.WriteLine "                    <table border='0' cellspacing='0' cellpadding='0' width='100%'>"
fileOutput.WriteLine "                        <tr><td>"
fileOutput.WriteLine "                            <table border='0' cellspacing='0' cellpadding='0' width='100%'>"
fileOutput.WriteLine "                                <tr>"
fileOutput.WriteLine "                                    <td width='5%' align='left' valign='middle' background='" & ImgDir & "blue_spacer.gif'><img src='" & ImgDir & 

"write.gif'></td>"
fileOutput.WriteLine "                                    <td width='95%' align='left' valign='middle' background='" & ImgDir & "blue_spacer.gif'> <font 

color='#FFFFFF' size='5'>WKInfo - </font><font color='#FFFFFF' size='3'>General information on the Workstation.</font></td>"
fileOutput.WriteLine "                                </tr>"
fileOutput.WriteLine "                                <tr><td colspan='2' bgcolor='#FFFFFF'>"
fileOutput.WriteLine "                                    <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' 

bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
    fileOutput.WriteLine"                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>Date and Time</h3></b></TD></TR>"
    fileOutput.WriteLine"                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Date/Time</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & DateTime & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>System Uptime</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & Uptime & " hours</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Time Zone</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & Zone & " </i></td></tr>"
    fileOutput.WriteLine"                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>General Computer 

Information</h3></b></TD></TR>"
    fileOutput.WriteLine"                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Manufacturer</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & Manufacturer & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Model</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & Model & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>System Based</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & SysType & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Operating System</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & WKOS & " " & CSD & " " & Architecture & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Operating System Install Date</TD><td width='70%' 

bgcolor=#f0f0f0 align=left><i>" & InstallDate & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>UserName</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & UserName & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Workstation Name</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & WKID & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Domain</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & Domain & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>System Drive</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & SysDrive & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>System Directory</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & SysDir & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Windows Directory</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & WinDir & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>ShadowStorage Allocated Space</TD><td width='70%' 

bgcolor=#f0f0f0 align=left><i>" & Allocated & " MB</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>ShadowStorage Used Space</TD><td width='70%' 

bgcolor=#f0f0f0 align=left><i>" & UsedSpace & " MB</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>ShadowStorage Max Space</TD><td width='70%' 

bgcolor=#f0f0f0 align=left><i>" & MaxSpace & " MB</i></td></tr>"
    fileOutput.WriteLine"                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>General Hardware 

Information</h3></b></TD></TR>"
    fileOutput.WriteLine"                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>CPU</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & cputype & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Memory</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & TotalMemory & " MB</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Total HDD Space</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & TotalHDSpace & " GB</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Free HDD Space</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & FreeHDSpace & " GB</i></td></tr>"
    fileOutput.WriteLine"                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>General Video Card 

Information</h3></b></TD></TR>"
    fileOutput.WriteLine"                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Video Card</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & VideoCard & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Resolution</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & Resolution & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Memory</TD><td width='70%' bgcolor=#f0f0f0 

align=left><i>" & VideoMemory & " MB</i></td></tr>"
'This section lists all the current services and their status.
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>Current Service 

Information</h3></b></TD></TR>"
fileOutput.WriteLine "                                        <tr><td colspan='2' bgcolor='#f0f0f0'>"
fileOutput.WriteLine "                                            <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' 

bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLine "                                                <TR><TD width='70%' align='center' bgcolor='#e0e0e0'><b>Service Name</b></td><TD width='30%' 

align='center' bgcolor='#e0e0e0'><b>Service State</b></td><tr>"
Set colRunningServices = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objService in colRunningServices
fileOutput.WriteLine "                                            <TR><TD align='left' bgcolor='#f0f0f0'>" & objService.DisplayName & "</TD><td bgcolor=#f0f0f0 

align=center><i>" & objService.State & "</i></td></tr>"
    wscript.echo  "                                            <TR><TD align='left' bgcolor='#f0f0f0'>" & objService.DisplayName & "</TD><td bgcolor=#f0f0f0 

align=center><i>" & objService.State & "</i></td></tr>"
Next
fileOutput.WriteLine "                                            </table>"
fileOutput.WriteLine "                                        </td></tr>"
'This section lists all the current running processes and some information.
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>Current Process 

Information</h3></b></TD></TR>"
fileOutput.WriteLine "                                        <tr><td colspan='2' bgcolor='#f0f0f0'>"
fileOutput.WriteLine "                                            <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' 

bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLine "                                                <TR><TD width='10%' align='center' bgcolor='#e0e0e0'><b>PID</b></td><TD width='35%' 

align='center' bgcolor='#e0e0e0'><b>Process Name</b></td><TD width='40%' align='center' bgcolor='#e0e0e0'><b>Owner</b></td><TD width='15%' align='center' 

bgcolor='#e0e0e0'><b>Memory</b></td></tr>"
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objProcess in colProcessList
colProperties = objProcess.GetOwner(strNameOfUser,strUserDomain)
fileOutput.WriteLine "                                                <TR><TD align='center' bgcolor='#f0f0f0'>" & objProcess.Handle & "</td><TD align='center' 

bgcolor='#f0f0f0'>" & objProcess.Name & "</td><TD align='center' bgcolor='#f0f0f0'>" & strUserDomain & "\" & strNameOfUser & "</td><TD align='center' 

bgcolor='#f0f0f0'>" & objProcess.WorkingSetSize/1024 & " kb</td><tr>"
Next
fileOutput.WriteLine "                                            </table>"
fileOutput.WriteLine "                                        </td></tr>"
'This section lists all the currently installed software on the machine.
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Installed Software</i></b></TD></TR>"
fileOutput.WriteLine "                                        <tr><td colspan='2' bgcolor='#f0f0f0'>"
Set colSoftware = objWMIService.ExecQuery ("Select * from Win32_Product")
For Each objSoftware in colSoftware
    fileOutput.WriteLine"                                            <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' 

bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
    fileOutput.WriteLine"                                                <tr><td width=30% align=center bgcolor='#e0e0e0'><b>Name</b></td><td width=30% align=center 

bgcolor='#e0e0e0'><b>Vendor</b></td><td width=30% align=center bgcolor='#e0e0e0'><b>Version</b></td></tr>"
    fileOutput.WriteLine"                                                <tr><td align=center bgcolor=#f0f0f0>" & objSoftware.Name & "</td><td align=center 

bgcolor=#f0f0f0>" & objSoftware.Vendor & "</td><td align=center bgcolor=#f0f0f0>" & objSoftware.Version & "</td></tr>"
    fileOutput.WriteLine"                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
    fileOutput.WriteLine"                                            </table>"
Next
fileOutput.WriteLine "                                        </td></tr>"
fileOutput.WriteLine "                                    </table>"
fileOutput.WriteLine "                                </td></tr>"
fileOutput.WriteLine "                            </table>"
fileOutput.WriteLine "                        </td></tr>"
fileOutput.WriteLine "                    </table>"
fileOutput.WriteLine "                </td></tr>"
fileOutput.WriteLine "            </table>"
fileOutput.WriteLine "            <p><small></small></p>"
fileOutput.WriteLine "        </center>"
fileOutput.WriteLine "    </body>"
fileOutput.WriteLine "<html>"
fileOutput.close
WScript.Quit

3 个答案:

答案 0 :(得分:0)

cputype超出了您尝试将其写入html的范围。它首先在select case语句中使用,因此它将超出select语句之外的范围。

良好的做法是明确声明所有变量并使用option explicit和option strict启动脚本,以避免出现这种情况。

答案 1 :(得分:0)

我试过了;仍然没有奏效。在@开始时声明它,将Case Else @在Select Case结构的末尾添加..

Dim strComputer, objWMIService, propValue, objItem
Dim strUserName, strPassword, colItems, SWBemlocator
Dim cputype

' This section queries for the workstation to be scanned.
UserName = ""
Password = ""
strComputer = "127.1.1.1"
ImgDir = "C:\Scripts\images\"

'Sets up the connections and opjects to be used throughout the script.
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer

(,"root\CIMV2",strUserName,strPassword)

'This determines the current date and time of the PC being scanned.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LocalTime", 

"WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem in colItems
    If objItem.Minute < 10 Then
        theMinutes = "0" & objItem.Minute
    Else
        theMinutes = objItem.Minute
    End If
    If objItem.Second < 10 Then
        theSeconds = "0" & objItem.Second
    Else
        theSeconds = objItem.Second
    End If
    DateTime = objItem.Month & "/" & objItem.Day & "/" & objItem.Year & " 

- " & objItem.Hour & ":" & theMinutes & ":" & theSeconds
Next

'Gets some ingomation about the Operating System including Service Pack 

level.
Set colItems = objWMIService.ExecQuery("Select * from 

Win32_OperatingSystem",,48)
For Each objItem in colItems
    WKID = objItem.CSName
    WKOS = objItem.Caption
    CSD = objItem.CSDVersion
    Architecture = objItem.OSArchitecture
    SysDir = objItem.SystemDirectory
    SysDrive = objItem.SystemDrive
    WinDir = objItem.WindowsDirectory
    ServicePack = objItem.ServicePackMajorVersion & "." & 

objItem.ServicePackMinorVersion
Next

'This section returns the Time Zone
Set colItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objItem in colItems
    Zone = objItem.Description
Next

'This section displays the Shadow Storage information
Set colItems = objWMIService.ExecQuery("Select * from 

Win32_ShadowStorage")
For Each objItem in colItems
    Allocated = int((objItem.AllocatedSpace/1024)/1024+1)
    UsedSpace = int((objItem.UsedSpace/1024)/1024+1)
    MaxSpace = int((objItem.MaxSpace/1024)/1024+1)
Next

'This section returns the InstallDate of the OS
Set objSWbemDateTime = _
  CreateObject("WbemScripting.SWbemDateTime")
Set colOperatingSystems = _
    objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem _
    in colOperatingSystems
    objSWbemDateTime.Value = _
        objOperatingSystem.InstallDate
    InstallDate = _
        objSWbemDateTime.GetVarDate(False)
Next

'This section returns the Video card and current resolution.
Set colItems = objWMIService.ExecQuery("Select * from 

Win32_DisplayConfiguration",,48)
For Each objItem in colItems
    VideoCard = objItem.DeviceName
    Resolution = objItem.PelsWidth & " x " & objItem.PelsHeight & " x " & 

objItem.BitsPerPel & " bits"
Next

'This section returns the Video card memory.
Set objWMIService = GetObject("winmgmts:root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from 

Win32_VideoController")
For Each objItem in colItems
    VideoMemory = objItem.AdapterRAM/1024/1024
Next

'This returns various system information including current logged on user, 

domain, memory, manufacture and model.
Set colItems = objWMIService.ExecQuery("Select * from 

Win32_ComputerSystem",,48)
For Each objItem in colItems
    UserName = objItem.UserName
    Domain = objItem.Domain
    TotalMemory = int((objItem.TotalPhysicalMemory/1024)/1024+1)
    Manufacturer = objItem.Manufacturer
    Model = objItem.Model
    SysType = objItem.SystemType
Next

'This determines the total hard drive space and free hard drive space.
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk 

Where Name='C:'",,48)
For Each objItem in colItems
    FreeHDSpace = Fix(((objItem.FreeSpace/1024)/1024)/1024)
    TotalHDSpace = Fix(((objItem.Size/1024)/1024)/1024)
Next

'This section returns the default printer and printer port.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Printer where 

Default=True", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem in colItems
    Printer = objItem.Name
    PortName = objItem.PortName
Next

'This returns the CPU information.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", 

"WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem in colItems
    CPUDesc = LTrim(objItem.Name)
Next


'// CPU Info
For each objCPU in GetObject("winmgmts:{impersonationLevel=impersonate}\\" 

& strComputer & "\root\cimv2").InstancesOf("Win32_Processor")
                        Select Case objCPU.Family
                                Case 2
                                        cputype = "Unknown"
                                Case 11
                                        cputype = "Pentium brand"
                                Case 12
                                        cputype = "Pentium Pro"
                                Case 13
                                        cputype = "Pentium II"
                                Case 14
                                        cputype = "Pentium processor with 

MMX technology"
                                Case 15
                                        cputype = "Celeron "
                                Case 16
                                        cputype = "Pentium II Xeon"
                                Case 17
                                        cputype = "Pentium III"
                                Case 28
                                        cputype = "AMD Athlon Processor 

Family"
                                Case 29
                                        cputype = "AMD Duron Processor"
                                Case 30
                                        cputype = "AMD2900 Family"
                                Case 31
                                        cputype = "K6-2+"
                                Case 130
                                        cputype = "Itanium Processor"
                                Case 176
                                        cputype = "Pentium III Xeon"
                                Case 177
                                        cputype = "Pentium III Processor 

with Intel SpeedStep Technology"
                                Case 178
                                        cputype = "Pentium 4"
                                Case 179
                                        cputype = "Intel Xeon"
                                Case 181
                                        cputype = "Intel Xeon processor 

MP"
                                Case 182
                                        cputype = "AMD AthlonXP Family"
                                Case 183
                                        cputype = "AMD AthlonMP Family"
                                Case 184
                                        cputype = "Intel Itanium 2"
                                Case 185
                                        cputype = "AMD Opteron Family"
                Case Else
                    cputype = "CPU Unidentified"
                        End Select
Next

'This returns the current uptime (time since last reboot) of the system.
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from 

Win32_OperatingSystem")
For Each objOS in colOperatingSystems
    dtmBootup = objOS.LastBootUpTime
    dtmLastBootupTime = WMIDateStringToDate(dtmBootup)
    dtmSystemUptime = DateDiff("h", dtmLastBootUpTime, Now)
    Uptime = dtmSystemUptime
Next
Function WMIDateStringToDate(dtmBootup)
    WMIDateStringToDate = CDate(Mid(dtmBootup, 5, 2) & "/" & Mid

(dtmBootup, 7, 2) & "/" & Left(dtmBootup, 4) & " " & Mid (dtmBootup, 9, 2) 

& ":" & Mid(dtmBootup, 11, 

2) & ":" & Mid(dtmBootup,13, 2))
End Function

dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

' -- The heart of the create file script -----------------------
' -- Creates the file using the value of strFile on Line 11
' --------------------------------------------------------------
Set fileOutput = objFSO.CreateTextFile( "x.html", true )

'Set fileOutput = objExplorer.Document

'This is the code for the web page to be displayed.

fileOutput.WriteLine "<html>"
fileOutput.WriteLine "    <head>"
fileOutput.WriteLine "        <title>System Information for '" & WKID & "' 

</title>"
fileOutput.WriteLine "    </head>"
fileOutput.WriteLine "    <body bgcolor='#FFFFFF' text='#000000' 

link='#0000FF' vlink='000099' alink='#00FF00'>"
fileOutput.WriteLine "        <center>"
fileOutput.WriteLine "            <h1>System Information for " & WKID & 

"</h1>"
fileOutput.WriteLine "            <table border='0' cellspacing='1' 

cellpadding='1' width='95%'>"
fileOutput.WriteLine "                <tr><td background='" & ImgDir & 

"blue_spacer.gif'>"
fileOutput.WriteLine "                    <table border='0' 

cellspacing='0' cellpadding='0' width='100%'>"
fileOutput.WriteLine "                        <tr><td>"
fileOutput.WriteLine "                            <table border='0' 

cellspacing='0' cellpadding='0' width='100%'>"
fileOutput.WriteLine "                                <tr>"
fileOutput.WriteLine "                                    <td width='5%' 

align='left' valign='middle' background='" & ImgDir & 

"blue_spacer.gif'><img src='" & ImgDir & 

"write.gif'></td>"
fileOutput.WriteLine "                                    <td width='95%' 

align='left' valign='middle' background='" & ImgDir & "blue_spacer.gif'> 

<font 

color='#FFFFFF' size='5'>WKInfo - </font><font color='#FFFFFF' 

size='3'>General information on the Workstation.</font></td>"
fileOutput.WriteLine "                                </tr>"
fileOutput.WriteLine "                                <tr><td colspan='2' 

bgcolor='#FFFFFF'>"
fileOutput.WriteLine "                                    <TABLE 

width='100%' cellspacing='0' cellpadding='2' border='1' 

bordercolor='#c0c0c0' 

bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
    fileOutput.WriteLine"                                                

<tr height=2><td height=10 align=center bgcolor=midnightblue 

colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>Date and 

Time</h3></b></TD></TR>"
    fileOutput.WriteLine"                                                

<tr height=2><td height=10 align=center bgcolor=midnightblue 

colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Date/Time</TD><td width='70%' 

bgcolor=#f0f0f0 

align=left><i>" & DateTime & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>System Uptime</TD><td 

width='70%' bgcolor=#f0f0f0 

align=left><i>" & Uptime & " hours</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Time Zone</TD><td width='70%' 

bgcolor=#f0f0f0 

align=left><i>" & Zone & " </i></td></tr>"
    fileOutput.WriteLine"                                                

<tr height=2><td height=10 align=center bgcolor=midnightblue 

colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>General Computer 

Information</h3></b></TD></TR>"
    fileOutput.WriteLine"                                                

<tr height=2><td height=10 align=center bgcolor=midnightblue 

colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Manufacturer</TD><td 

width='70%' bgcolor=#f0f0f0 

align=left><i>" & Manufacturer & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Model</TD><td width='70%' 

bgcolor=#f0f0f0 

align=left><i>" & Model & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>System Based</TD><td 

width='70%' bgcolor=#f0f0f0 

align=left><i>" & SysType & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Operating System</TD><td 

width='70%' bgcolor=#f0f0f0 

align=left><i>" & WKOS & " " & CSD & " " & Architecture & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Operating System Install 

Date</TD><td width='70%' 

bgcolor=#f0f0f0 align=left><i>" & InstallDate & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>UserName</TD><td width='70%' 

bgcolor=#f0f0f0 

align=left><i>" & UserName & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Workstation Name</TD><td 

width='70%' bgcolor=#f0f0f0 

align=left><i>" & WKID & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Domain</TD><td width='70%' 

bgcolor=#f0f0f0 

align=left><i>" & Domain & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>System Drive</TD><td 

width='70%' bgcolor=#f0f0f0 

align=left><i>" & SysDrive & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>System Directory</TD><td 

width='70%' bgcolor=#f0f0f0 

align=left><i>" & SysDir & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Windows Directory</TD><td 

width='70%' bgcolor=#f0f0f0 

align=left><i>" & WinDir & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>ShadowStorage Allocated 

Space</TD><td width='70%' 

bgcolor=#f0f0f0 align=left><i>" & Allocated & " MB</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>ShadowStorage Used 

Space</TD><td width='70%' 

bgcolor=#f0f0f0 align=left><i>" & UsedSpace & " MB</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>ShadowStorage Max Space</TD><td 

width='70%' 

bgcolor=#f0f0f0 align=left><i>" & MaxSpace & " MB</i></td></tr>"
    fileOutput.WriteLine"                                                

<tr height=2><td height=10 align=center bgcolor=midnightblue 

colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>General Hardware 

Information</h3></b></TD></TR>"
    fileOutput.WriteLine"                                                

<tr height=2><td height=10 align=center bgcolor=midnightblue 

colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>CPU</TD><td width='70%' 

bgcolor=#f0f0f0 

align=left><i>" & cputype & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Memory</TD><td width='70%' 

bgcolor=#f0f0f0 

align=left><i>" & TotalMemory & " MB</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Total HDD Space</TD><td 

width='70%' bgcolor=#f0f0f0 

align=left><i>" & TotalHDSpace & " GB</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Free HDD Space</TD><td 

width='70%' bgcolor=#f0f0f0 

align=left><i>" & FreeHDSpace & " GB</i></td></tr>"
    fileOutput.WriteLine"                                                

<tr height=2><td height=10 align=center bgcolor=midnightblue 

colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>General Video Card 

Information</h3></b></TD></TR>"
    fileOutput.WriteLine"                                                

<tr height=2><td height=10 align=center bgcolor=midnightblue 

colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Video Card</TD><td width='70%' 

bgcolor=#f0f0f0 

align=left><i>" & VideoCard & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Resolution</TD><td width='70%' 

bgcolor=#f0f0f0 

align=left><i>" & Resolution & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD 

width='30%' align='left' bgcolor='#e0e0e0'>Memory</TD><td width='70%' 

bgcolor=#f0f0f0 

align=left><i>" & VideoMemory & " MB</i></td></tr>"
'This section lists all the current services and their status.
fileOutput.WriteLine "                                        <TR><TD 

align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>Current Service 

Information</h3></b></TD></TR>"
fileOutput.WriteLine "                                        <tr><td 

colspan='2' bgcolor='#f0f0f0'>"
fileOutput.WriteLine "                                            <TABLE 

width='100%' cellspacing='0' cellpadding='2' border='1' 

bordercolor='#c0c0c0' 

bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLine "                                                

<TR><TD width='70%' align='center' bgcolor='#e0e0e0'><b>Service 

Name</b></td><TD width='30%' 

align='center' bgcolor='#e0e0e0'><b>Service State</b></td><tr>"
Set colRunningServices = objWMIService.ExecQuery("Select * from 

Win32_Service")
For Each objService in colRunningServices
fileOutput.WriteLine "                                            <TR><TD 

align='left' bgcolor='#f0f0f0'>" & objService.DisplayName & "</TD><td 

bgcolor=#f0f0f0 

align=center><i>" & objService.State & "</i></td></tr>"
    wscript.echo  "                                            <TR><TD 

align='left' bgcolor='#f0f0f0'>" & objService.DisplayName & "</TD><td 

bgcolor=#f0f0f0 

align=center><i>" & objService.State & "</i></td></tr>"
Next
fileOutput.WriteLine "                                            

</table>"
fileOutput.WriteLine "                                        </td></tr>"
'This section lists all the current running processes and some 

information.
fileOutput.WriteLine "                                        <TR><TD 

align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>Current Process 

Information</h3></b></TD></TR>"
fileOutput.WriteLine "                                        <tr><td 

colspan='2' bgcolor='#f0f0f0'>"
fileOutput.WriteLine "                                            <TABLE 

width='100%' cellspacing='0' cellpadding='2' border='1' 

bordercolor='#c0c0c0' 

bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLine "                                                

<TR><TD width='10%' align='center' bgcolor='#e0e0e0'><b>PID</b></td><TD 

width='35%' 

align='center' bgcolor='#e0e0e0'><b>Process Name</b></td><TD width='40%' 

align='center' bgcolor='#e0e0e0'><b>Owner</b></td><TD width='15%' 

align='center' 

bgcolor='#e0e0e0'><b>Memory</b></td></tr>"
Set colProcessList = objWMIService.ExecQuery("Select * from 

Win32_Process")
For Each objProcess in colProcessList
colProperties = objProcess.GetOwner(strNameOfUser,strUserDomain)
fileOutput.WriteLine "                                                

<TR><TD align='center' bgcolor='#f0f0f0'>" & objProcess.Handle & "</td><TD 

align='center' 

bgcolor='#f0f0f0'>" & objProcess.Name & "</td><TD align='center' 

bgcolor='#f0f0f0'>" & strUserDomain & "\" & strNameOfUser & "</td><TD 

align='center' 

bgcolor='#f0f0f0'>" & objProcess.WorkingSetSize/1024 & " kb</td><tr>"
Next
fileOutput.WriteLine "                                            

</table>"
fileOutput.WriteLine "                                        </td></tr>"
'This section lists all the currently installed software on the machine.
fileOutput.WriteLine "                                        <TR><TD 

align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Installed 

Software</i></b></TD></TR>"
fileOutput.WriteLine "                                        <tr><td 

colspan='2' bgcolor='#f0f0f0'>"
Set colSoftware = objWMIService.ExecQuery ("Select * from Win32_Product")
For Each objSoftware in colSoftware
    fileOutput.WriteLine"                                            

<TABLE width='100%' cellspacing='0' cellpadding='2' border='1' 

bordercolor='#c0c0c0' 

bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
    fileOutput.WriteLine"                                                

<tr><td width=30% align=center bgcolor='#e0e0e0'><b>Name</b></td><td 

width=30% align=center 

bgcolor='#e0e0e0'><b>Vendor</b></td><td width=30% align=center 

bgcolor='#e0e0e0'><b>Version</b></td></tr>"
    fileOutput.WriteLine"                                                

<tr><td align=center bgcolor=#f0f0f0>" & objSoftware.Name & "</td><td 

align=center 

bgcolor=#f0f0f0>" & objSoftware.Vendor & "</td><td align=center 

bgcolor=#f0f0f0>" & objSoftware.Version & "</td></tr>"
    fileOutput.WriteLine"                                                

<tr height=2><td height=10 align=center bgcolor=midnightblue 

colspan=3></td></tr>"
    fileOutput.WriteLine"                                            

</table>"
Next
fileOutput.WriteLine "                                        </td></tr>"
fileOutput.WriteLine "                                    </table>"
fileOutput.WriteLine "                                </td></tr>"
fileOutput.WriteLine "                            </table>"
fileOutput.WriteLine "                        </td></tr>"
fileOutput.WriteLine "                    </table>"
fileOutput.WriteLine "                </td></tr>"
fileOutput.WriteLine "            </table>"
fileOutput.WriteLine "            <p><small></small></p>"
fileOutput.WriteLine "        </center>"
fileOutput.WriteLine "    </body>"
fileOutput.WriteLine "<html>"
fileOutput.close
WScript.Quit

答案 2 :(得分:0)

Methical,

我查看了您的脚本并对其进行了更新。

使用原始脚本的tm(商标)似乎存在问题。我已经冒昧更新脚本工作..

    Option Explicit
Dim strComputer, objWMIService, propValue, objItem
Dim strUserName, strPassword, colItems, SWBemlocator
Dim ImgDir, DateTime, WKID, WKOS, CSD, Architecture, SysDir, SysDrive, WinDir, ServicePack, Zone
Dim Allocated, UsedSpace, MaxSpace, objSWbemDateTime, colOperatingSystems, InstallDate, objOperatingSystem
Dim VideoCard, Resolution, VideoMemory, UserName, Domain, TotalMemory, Manufacturer, Model, SysType
Dim FreeHDSpace, TotalHDSpace, Printer, PortName, CPUDesc, cputype, objOS
Dim dtmBootup, dtmLastBootupTime, dtmSystemUptime, Uptime, fileOutput
Dim objService, colRunningServices, objProcess, colProcessList, objSoftware, colSoftware, strNameOfUser, strUserDomain
Dim colProperties, PercentFree

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

' This section queries for the workstation to be scanned.
strUserName = ""
strPassword = ""
strComputer = "127.0.0.1"
ImgDir = "C:\Scripts\images\"

'Sets up the connections and opjects to be used throughout the script.
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(, "root\CIMV2", strUserName, strPassword)

'This determines the current date and time of the PC being scanned.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LocalTime", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
 DateTime = objItem.Month & "/" & objItem.Day & "/" & objItem.Year & " - " & Right(100 + objItem.Hour, 2) & ":" & Right(100 + objItem.Minute, 2) & ":" & Right(100 + objItem.Second, 2)
Next

'Gets some ingomation about the Operating System including Service Pack level.
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",, 48)
For Each objItem In colItems
 WKID = objItem.CSName
 WKOS = objItem.Caption
 CSD = objItem.CSDVersion
 'Architecture = objItem.OSArchitecture
 SysDir = objItem.SystemDirectory
 SysDrive = objItem.SystemDrive
 WinDir = objItem.WindowsDirectory
 ServicePack = objItem.ServicePackMajorVersion & "." & objItem.ServicePackMinorVersion
Next

'This section returns the Time Zone
Set colItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objItem In colItems
 Zone = objItem.Description
Next

'This section displays the Shadow Storage information
'Set colItems = objWMIService.ExecQuery("Select * from Win32_ShadowStorage")
'For Each objItem In colItems
'    Allocated = Int((objItem.AllocatedSpace/1024)/1024+1)
'   UsedSpace = Int((objItem.UsedSpace/1024)/1024+1)
'    MaxSpace = Int((objItem.MaxSpace/1024)/1024+1)
'Next

'This section returns the InstallDate of the OS
Set objSWbemDateTime = _
CreateObject("WbemScripting.SWbemDateTime")
Set colOperatingSystems = _
objWMIService.ExecQuery _
( "Select * from Win32_OperatingSystem" )
For Each objOperatingSystem _
 In colOperatingSystems
 objSWbemDateTime.Value = _
 objOperatingSystem.InstallDate
 InstallDate = _
 objSWbemDateTime.GetVarDate(False)
Next

'This section returns the Video card and current resolution.
Set colItems = objWMIService.ExecQuery("Select * from Win32_DisplayConfiguration",, 48)
For Each objItem In colItems
 VideoCard = objItem.DeviceName
 Resolution = objItem.PelsWidth & " x " & objItem.PelsHeight & " x " & objItem.BitsPerPel & " bits"
Next

'This section returns the Video card memory.
Set objWMIService = GetObject("winmgmts:root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_VideoController")
For Each objItem In colItems
 VideoMemory = objItem.AdapterRAM / 1024 / 1024
Next

'This returns various system information including current logged on user, domain, memory, manufacture and model.
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",, 48)
For Each objItem In colItems
 UserName = objItem.UserName
 Domain = objItem.Domain
 TotalMemory = Int((objItem.TotalPhysicalMemory / 1024) / 1024 + 1)
 Manufacturer = objItem.Manufacturer
 Model = objItem.Model
 SysType = objItem.SystemType
Next

'This determines the total hard drive space and free hard drive space.
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where Name='C:'",, 48)
For Each objItem In colItems
 FreeHDSpace = Fix(((objItem.FreeSpace / 1024) / 1024) / 1024)
 TotalHDSpace = Fix(((objItem.Size / 1024) / 1024) / 1024)
Next

'This section returns the default printer and printer port.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Printer where Default=True", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
 Printer = objItem.Name
 PortName = objItem.PortName
Next

'// CPU Info
'This returns the CPU information.
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
 CPUDesc = LTrim(objItem.Name)
 Select Case objItem.Family
  Case 2
   cputype = "Unknown"
  Case 11
   cputype = "Pentium brand"
  Case 12
   cputype = "Pentium Pro"
  Case 13
   cputype = "Pentium II"
  Case 14
   cputype = "Pentium processor with MMX technology"
  Case 15
   cputype = "Celeron "
  Case 16
   cputype = "Pentium II Xeon"
  Case 17
   cputype = "Pentium III"
  Case 28
   cputype = "AMD Athlon Processor Family"
  Case 29
   cputype = "AMD Duron Processor"
  Case 30
   cputype = "AMD2900 Family"
  Case 31
   cputype = "K6-2+"
  Case 130
   cputype = "Itanium Processor"
  Case 176
   cputype = "Pentium III Xeon"
  Case 177
   cputype = "Pentium III Processor with Intel SpeedStep Technology"
  Case 178
   cputype = "Pentium 4"
  Case 179
   cputype = "Intel Xeon"
  Case 181
   cputype = "Intel Xeon processor MP"
  Case 182
   cputype = "AMD AthlonXP Family"
  Case 183
   cputype = "AMD AthlonMP Family"
  Case 184
   cputype = "Intel Itanium 2"
  Case 185
   cputype = "AMD Opteron™ Family"
  Case Else
   cputype = "CPU Unidentified"
 End Select
Next

'This returns the current uptime (time since last reboot) of the system.
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS In colOperatingSystems
 dtmBootup = objOS.LastBootUpTime
 dtmLastBootupTime = WMIDateStringToDate(dtmBootup)
 dtmSystemUptime = DateDiff("h", dtmLastBootUpTime, Now)
 Uptime = dtmSystemUptime
Next
Function WMIDateStringToDate(dtmBootup)
 WMIDateStringToDate = CDate(Mid(dtmBootup, 5, 2) & "/" & Mid(dtmBootup, 7, 2) & "/" & Left(dtmBootup, 4) & " " & Mid(dtmBootup, 9, 2) & ":" & Mid(dtmBootup, 11, 2) & ":" & Mid(dtmBootup, 13, 2))
End Function

Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

' -- The heart of the create file script -----------------------
' -- Creates the file using the value of strFile on Line 11
' --------------------------------------------------------------
Set fileOutput = objFSO.CreateTextFile("C:\Scripts\x.html", True)

'Set fileOutput = objExplorer.Document

'This is the code for the web page to be displayed.

fileOutput.WriteLine "<html>"
fileOutput.WriteLine "    <head>"
fileOutput.WriteLine "        <title>System Information for '" & WKID & "' </title>"
fileOutput.WriteLine "    </head>"
fileOutput.WriteLine "    <body bgcolor='#FFFFFF' text='#000000' link='#0000FF' vlink='000099' alink='#00FF00'>"
fileOutput.WriteLine "        <center>"
fileOutput.WriteLine "            <h1>System Information for " & WKID & "</h1>"
fileOutput.WriteLine "            <table border='0' cellspacing='1' cellpadding='1' width='95%'>"
fileOutput.WriteLine "                <tr><td background='" & ImgDir & "blue_spacer.gif'>"
fileOutput.WriteLine "                    <table border='0' cellspacing='0' cellpadding='0' width='100%'>"
fileOutput.WriteLine "                        <tr><td>"
fileOutput.WriteLine "                            <table border='0' cellspacing='0' cellpadding='0' width='100%'>"
fileOutput.WriteLine "                                <tr>"
fileOutput.WriteLine "                                    <td width='5%' align='left' valign='middle' background='" & ImgDir & "blue_spacer.gif'><img src='" & ImgDir & "write.gif'></td>"
fileOutput.WriteLine "                                    <td width='95%' align='left' valign='middle' background='" & ImgDir & "blue_spacer.gif'> <font color='#FFFFFF' size='5'>WKInfo - </font><font color='#FFFFFF' size='3'>General information on the Workstation.</font></td>"
fileOutput.WriteLine "                                </tr>"
fileOutput.WriteLine "                                <tr><td colspan='2' bgcolor='#FFFFFF'>"
fileOutput.WriteLine "                                    <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>Date and Time</h3></b></TD></TR>"
fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Date/Time</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & DateTime & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>System Uptime</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & Uptime & " hours</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Time Zone</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & Zone & " </i></td></tr>"
fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>General Computer Information</h3></b></TD></TR>"
fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Manufacturer</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & Manufacturer & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Model</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & Model & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>System Based</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & SysType & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Operating System</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & WKOS & " " & CSD & " " & Architecture & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Operating System Install Date</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & InstallDate & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>UserName</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & UserName & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Workstation Name</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & WKID & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Domain</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & Domain & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>System Drive</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & SysDrive & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>System Directory</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & SysDir & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Windows Directory</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & WinDir & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>ShadowStorage Allocated Space</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & Allocated & " MB</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>ShadowStorage Used Space</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & UsedSpace & " MB</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>ShadowStorage Max Space</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & MaxSpace & " MB</i></td></tr>"
fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>General Hardware Information</h3></b></TD></TR>"
fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>CPU</td><td width='70%' bgcolor=#f0f0f0 align = Left > <i>" & CPUDesc & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>System Memory</td><td width='70%' bgcolor=#f0f0f0 align = Left > <i>" & TotalMemory & " MB </i></td></tr>"
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where DriveType = 3",, 48)
For Each objItem In colItems
 FreeHDSpace = "" & objItem.Name & " Free Space: " & Fix(((objItem.FreeSpace / 1024) / 1024) / 1024)
 TotalHDSpace = "" & objItem.Name & " Total Space: " & Fix(((objItem.Size / 1024) / 1024) / 1024)
 PerCentFree = "" & objItem.Name & " Percent Free Space: " & 100 * FormatNumber(Fix(((objItem.FreeSpace / 1024) / 1024) / 1024) / Fix(((objItem.Size / 1024) / 1024) / 1024), 2)
 fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Total HDD Space</td><td width='70%' bgcolor=#f0f0f0 align = Left > <i>" & TotalHDSpace & " GB </i></td></tr>"
 fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Free HDD Space</td><td width='70%' bgcolor=#f0f0f0 align = Left > <i>" & FreeHDSpace & " GB </i></td></tr>"
 fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Percent Free HDD Space</td><td width='70%' bgcolor=#f0f0f0 align = Left > <i>" & PerCentFree & "%</i></td></tr>"
Next
fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>General Video Card Information</h3></b></TD></TR>"
fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Video Card</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & VideoCard & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Video Resolution</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & Resolution & "</i></td></tr>"
fileOutput.WriteLine "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Video Memory</TD><td width='70%' bgcolor=#f0f0f0 align=Left><i>" & VideoMemory & " MB</i></td></tr>"
'This section lists all the current services and their status.
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>Current Service Information</h3></b></TD></TR>"
fileOutput.WriteLine "                                        <tr><td colspan='2' bgcolor='#f0f0f0'>"
fileOutput.WriteLine "                                            <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLine "                                                <TR><TD width='70%' align='center' bgcolor='#e0e0e0'><b>Service Name</b></td><TD width='30%' align='center' bgcolor='#e0e0e0'><b>Service State</b></td><tr>"
Set colRunningServices = objWMIService.ExecQuery("Select * from Win32_Service")
For Each objService In colRunningServices
 fileOutput.WriteLine "                                            <TR><TD align='left' bgcolor='#f0f0f0'>" & objService.DisplayName & "</TD><td bgcolor=#f0f0f0 align=center><i>" & objService.State & "</i></td></tr>"
 'WScript.echo  "                                            <TR><TD align='left' bgcolor='#f0f0f0'>" & objService.DisplayName & "</TD><td bgcolor=#f0f0f0 align=center><i>" & objService.State & "</i></td></tr>"
Next
fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
fileOutput.WriteLine "                                            </table>"
fileOutput.WriteLine "                                        </td></tr>"
'This section lists all the current running processes and some information.
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><h3>Current Process Information</h3></b></TD></TR>"
fileOutput.WriteLine "                                        <tr><td colspan='2' bgcolor='#f0f0f0'>"
fileOutput.WriteLine "                                            <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLine "                                                <TR><TD width='10%' align='center' bgcolor='#e0e0e0'><b>PID</b></td><TD width='35%' align='center' bgcolor='#e0e0e0'><b>Process Name</b></td><TD width='40%' align='center' bgcolor='#e0e0e0'><b>Process Owner</b></td><TD width='15%' align='center' bgcolor='#e0e0e0'><b>Memory Used</b></td></tr>"
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objProcess In colProcessList
 colProperties = objProcess.GetOwner(strNameOfUser,strUserDomain)
 fileOutput.WriteLine "                                                <TR><TD align='center' bgcolor='#f0f0f0'>" & objProcess.Handle & "</td><TD align='center' bgcolor='#f0f0f0'>" & objProcess.Name & "</td><TD align='center' bgcolor='#f0f0f0'>" & strUserDomain & "\" & strNameOfUser & "</td><TD align='center' bgcolor='#f0f0f0'>" & objProcess.WorkingSetSize/1024 & " kb</td><tr>"
 'fileOutput.WriteLine "                                                <TR><TD align='center' bgcolor='#f0f0f0'>" & objProcess.Handle & "</td><TD align='center' bgcolor='#f0f0f0'>" & objProcess.Name & "</td><TD align='center' bgcolor='#f0f0f0'></td><TD align='center' bgcolor='#f0f0f0'>" & objProcess.WorkingSetSize / 1024 & " kb</td><tr>"
Next
fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=4></td></tr>"
fileOutput.WriteLine "                                            </table>"
fileOutput.WriteLine "                                        </td></tr>"
'This section lists all the currently installed software on the machine.
fileOutput.WriteLine "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Installed Software</i></b></TD></TR>"
fileOutput.WriteLine "                                        <tr><td colspan='2' bgcolor='#f0f0f0'>"
fileOutput.WriteLine "                                            <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLine "                                                <tr><td width=30% align=center bgcolor='#e0e0e0'><b>Name</b></td><td width=30% align=center bgcolor='#e0e0e0'><b>Vendor</b></td><td width=30% align=center bgcolor='#e0e0e0'><b>Version</b></td></tr>"
Set colSoftware = objWMIService.ExecQuery("Select * from Win32_Product")
For Each objSoftware In colSoftware
 fileOutput.WriteLine "                                                <tr><td align=center bgcolor=#f0f0f0>" & objSoftware.Name & "</td><td align=center bgcolor=#f0f0f0>" & objSoftware.Vendor & "</td><td align=center bgcolor=#f0f0f0>" & objSoftware.Version & "</td></tr>"
Next
 fileOutput.WriteLine "                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
 fileOutput.WriteLine "                                            </table>"
fileOutput.WriteLine "                                        </td></tr>"
fileOutput.WriteLine "                                    </table>"
fileOutput.WriteLine "                                </td></tr>"
fileOutput.WriteLine "                            </table>"
fileOutput.WriteLine "                        </td></tr>"
fileOutput.WriteLine "                    </table>"
fileOutput.WriteLine "                </td></tr>"
fileOutput.WriteLine "            </table>"
fileOutput.WriteLine "            <p><small></small></p>"
fileOutput.WriteLine "        </center>"
fileOutput.WriteLine "    </body>"
fileOutput.WriteLine "<html>"
fileOutput.close
WScript.Quit