VBS 计算机信息脚本 [英] VBS Computer Info Script

查看:39
本文介绍了VBS 计算机信息脚本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以帮我修改一下吗?

Can someone help me modify this please?

不是在开始时出现询问计算机ID/名称的对话框,而是自动输入,所以它是自动的吗?最后,不要打开文件,只是将它存储在硬盘上(与脚本目录相同)

Instead of the dialog box appearing at the start to ask for computer ID/Name, is there anyway for this to be automatically put in, so its all automatic? And at the end, not to open the file, just to have it stored on the hdd (same dir as script)

On Error Resume Next
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002

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

' This section queries for the workstation to be scanned.
strComputer = inputbox ("Workstation", "Enter the workstation ID to scan.",".")
UserName = ""
Password = ""
ImgDir = "C:\Scripts\images\"

'Sets up the connections and objects to be used throughout the script.
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"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 information 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
    ServicePack = objItem.ServicePackMajorVersion & "." & objItem.ServicePackMinorVersion
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:\\" & strComputer & "\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
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

'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

'This sets up the Internet Explorer window in order to show the results.
Set objExplorer = WScript.CreateObject("InternetExplorer.Application", "IE_")
With objExplorer
    .Navigate "about:Blank"
    .Toolbar = 0
    .StatusBar = 0
    .Width = 800
    .Height = 600
    .Left = 75
    .Top = 0
    .Visible = 1
End With
Set fileOutput = objExplorer.Document

'This is the code for the web page to be displayed.
fileOutput.Open
fileOutput.WriteLn "<html>"
fileOutput.WriteLn "    <head>"
fileOutput.WriteLn "        <title>System Information for '" & WKID & "' </title>"
fileOutput.WriteLn "    </head>"
fileOutput.WriteLn "    <body bgcolor='#FFFFFF' text='#000000' link='#0000FF' vlink='000099' alink='#00FF00'>"
fileOutput.WriteLn "        <center>"
fileOutput.WriteLn "            <h3>Workstaion/Server Information for " & WKID & "</h3>"
fileOutput.WriteLn "            <table border='0' cellspacing='1' cellpadding='1' width='95%'>"
fileOutput.WriteLn "                <tr><td background='" & ImgDir & "blue_spacer.gif'>"
fileOutput.WriteLn "                    <table border='0' cellspacing='0' cellpadding='0' width='100%'>"
fileOutput.WriteLn "                        <tr><td>"
fileOutput.WriteLn "                            <table border='0' cellspacing='0' cellpadding='0' width='100%'>"
fileOutput.WriteLn "                                <tr>"
fileOutput.WriteLn "                                    <td width='5%' align='left' valign='middle' background='" & ImgDir & "blue_spacer.gif'><img src='" & ImgDir & "write.gif'></td>"
fileOutput.WriteLn "                                    <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.WriteLn "                                </tr>"
fileOutput.WriteLn "                                <tr><td colspan='2' bgcolor='#FFFFFF'>"
fileOutput.WriteLn "                                    <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Last Scanned</i></b></TD></TR>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Date/Time</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & DateTime & "</i></td></tr>"
fileOutput.WriteLn "                                        <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.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>General Information</i></b></TD></TR>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Workstation ID</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & WKID & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Domain</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & Domain & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>UserName</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & UserName & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>General OS Information</i></b></TD></TR>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Operating System</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & WKOS & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Service Pack</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & ServicePack & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>General Computer Information</i></b></TD></TR>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Manufacturer</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & Manufacturer & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Model</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & Model & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>General Hardware Information</i></b></TD></TR>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>CPU</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & CPUDesc & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Memory</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & TotalMemory & " MB</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Total HD Space</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & TotalHDSpace & " GB</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Free HD Space</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & FreeHDSpace & " GB</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>General Video Card Information</i></b></TD></TR>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Video Card</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & VideoCard & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Resolution</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & Resolution & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Memory</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & VideoMemory & " MB</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Default Printer Information</i></b></TD></TR>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Printer</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & Printer & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Port Name</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & PortName & "</i></td></tr>"
fileOutput.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Shared Directories</i></b></TD></TR>"
'This sextion lists all the current shares enabled on the PC.
fileOutput.WriteLn "                                        <tr><td colspan='2' bgcolor='#f0f0f0'>"
fileOutput.WriteLn "                                            <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLn "                                                <TR><TD width='30%' align='center' bgcolor='#e0e0e0'><b>Name</b></td><TD width='40%' align='center' bgcolor='#e0e0e0'><b>Path</b><TD width='40%' align='center' bgcolor='#e0e0e0'><b>Description</b></td><tr>"
Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")
For each objShare in colShares
    fileOutput.WriteLn "                                                <TR><TD width='30%' align='left' bgcolor='#f0f0f0'><i>" & objShare.Name & "</i></TD><td bgcolor=#f0f0f0 align=left><i>" & objShare.Path & "</i></TD><td bgcolor=#f0f0f0 align=left><i>" & objShare.Caption & "</i></td></tr>"
Next
fileOutput.WriteLn "                                            </table>"
fileOutput.WriteLn "                                        </td></tr>"
'This section lists all the current services and their status.
fileOutput.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Current Service Information</i></b></TD></TR>"
fileOutput.WriteLn "                                        <tr><td colspan='2' bgcolor='#f0f0f0'>"
fileOutput.WriteLn "                                            <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLn "                                                <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.WriteLn "                                            <TR><TD align='left' bgcolor='#f0f0f0'>" & objService.DisplayName & "</TD><td bgcolor=#f0f0f0 align=center><i>" & objService.State & "</i></td></tr>"
Next
fileOutput.WriteLn "                                            </table>"
fileOutput.WriteLn "                                        </td></tr>"
'This section lists all the current running processes and some information.
fileOutput.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Current Process Information</i></b></TD></TR>"
fileOutput.WriteLn "                                        <tr><td colspan='2' bgcolor='#f0f0f0'>"
fileOutput.WriteLn "                                            <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
fileOutput.WriteLn "                                                <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.WriteLn "                                                <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.WriteLn "                                            </table>"
fileOutput.WriteLn "                                        </td></tr>"
'This section lists all the currently installed software on the machine.
fileOutput.WriteLn "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Installed Software</i></b></TD></TR>"
fileOutput.WriteLn "                                        <tr><td colspan='2' bgcolor='#f0f0f0'>"
Set colSoftware = objWMIService.ExecQuery ("Select * from Win32_Product")
For Each objSoftware in colSoftware
    fileOutput.WriteLn"                                            <TABLE width='100%' cellspacing='0' cellpadding='2' border='1' bordercolor='#c0c0c0' bordercolordark='#ffffff' bordercolorlight='#c0c0c0'>"
    fileOutput.WriteLn"                                                <tr><td align=left bgcolor='#e0e0e0'><b>Caption:</b></td><td colspan=2 bgcolor=#f0f0f0>" & objSoftware.Caption & "</td></tr>"
    fileOutput.WriteLn"                                                <tr><td align=left bgcolor='#e0e0e0'><b>Install Location:</b></td><td colspan=2 bgcolor=#f0f0f0>" & objSoftware.InstallLocation & "</td></tr>"
    fileOutput.WriteLn"                                                <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.WriteLn"                                                <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.WriteLn"                                                <tr height=2><td height=10 align=center bgcolor=midnightblue colspan=3></td></tr>"
    fileOutput.WriteLn"                                            </table>"
Next
fileOutput.WriteLn "                                        </td></tr>"
fileOutput.WriteLn "                                    </table>"
fileOutput.WriteLn "                                </td></tr>"
fileOutput.WriteLn "                            </table>"
fileOutput.WriteLn "                        </td></tr>"
fileOutput.WriteLn "                    </table>"
fileOutput.WriteLn "                </td></tr>"
fileOutput.WriteLn "            </table>"
fileOutput.WriteLn "            <p><small></small></p>"
fileOutput.WriteLn "        </center>"
fileOutput.WriteLn "    </body>"
fileOutput.WriteLn "<html>"
fileOutput.close
WScript.Quit 

推荐答案

这是您的代码的稍微修改版本.它将要查询的工作站名称以及两个可选参数用户名和密码作为命令行参数.我没有将结果输出到 IE 窗口,而是稍作更改以使用 File System 对象将您的 html 代码输出到一个名为:workstation.html 的文件,其中工作站是在传递给脚本时被扫描的实际工作站名称.

Here is a slightly modified version of your code. It takes as command line arguments the workstation name to query, as well as two optional parameters, username and password. Instead of outputting the results to an IE window, I made a slight change to use the File System object to output your html code to a file called: workstation.html, where workstation is the actual workstation name that was scanned as passed to the script.

我添加的代码部分在两个位置,在 IE 窗口部分的顶部和右侧,我在两者周围放置了 ' ************* 注释,以便您可以发现它们迅速地.我离开了你的文件输出变量,但将它从 fileOutput.writeln 修改为 fileOutput.writeline.

The sections of code I added are in two locations, at the top and right before the IE window portion, I have put ' ************* comments around both so you can spot them quickly. I left your fileoutput var but modified it from fileOutput.writeln to fileOutput.writeline.

有关文件系统对象检查的更多详细信息在此处删除 MSDN 文章.

有关命令行选项的详细信息cscript.exe 查看这篇 MSDN 文章.

这是一个 MS TechNet 页面,其中包含关于 在 VBS 中使用命令行参数.

Here is a MS TechNet page with good information on using command line arguments in VBS.

On Error Resume Next
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002

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

ImgDir = "C:\Scripts\images\"

' *******************************************************************
' This section gets workstation name, username and password from the command prompt.
Set objArgs = WScript.Arguments

If objArgs.Count = 1 then
    strComputer = objArgs(0)
    UserName = ""
    Password = ""
ElseIf objArgs.Count = 3 then
    strComputer = objArgs(0)
    UserName = objArgs(1)
    Password = objArgs(2)
Else
    wscript.echo "SYNTAX:  cscript scan.vbs [machinename] [username] [password]"
    wscript.echo "Parameter: Machinename - required"
    wscript.echo "Parameter: username - optional"
    wscript.echo "Parameter: password- required if username provided."
    wscript.quit
End If
' *******************************************************************

'Sets up the connections and opjects to be used throughout the script.
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"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
    ServicePack = objItem.ServicePackMajorVersion & "." & objItem.ServicePackMinorVersion
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:\\" & strComputer & "\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
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

'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

' *******************************************************************
Const TristateFalse = 0
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set fileOutput = objFSO.OpenTextFile("c:\scan_results\" & strComputer & ".html", ForWriting, True, TristateFalse)
' *******************************************************************

'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 "            <h3>Workstaion/Server Information for " & WKID & "</h3>"
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><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Last Scanned</i></b></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 align='center' bgcolor='#d0d0d0' colspan='2'><b><i>General Information</i></b></TD></TR>"
fileOutput.writeline "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Workstation ID</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'>UserName</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & UserName & "</i></td></tr>"
fileOutput.writeline "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>General OS Information</i></b></TD></TR>"
fileOutput.writeline "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Operating System</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & WKOS & "</i></td></tr>"
fileOutput.writeline "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Service Pack</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & ServicePack & "</i></td></tr>"
fileOutput.writeline "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>General Computer Information</i></b></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 align='center' bgcolor='#d0d0d0' colspan='2'><b><i>General Hardware Information</i></b></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'>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 HD 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 HD Space</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & FreeHDSpace & " GB</i></td></tr>"
fileOutput.writeline "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>General Video Card Information</i></b></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>"
fileOutput.writeline "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Default Printer Information</i></b></TD></TR>"
fileOutput.writeline "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Printer</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & Printer & "</i></td></tr>"
fileOutput.writeline "                                        <TR><TD width='30%' align='left' bgcolor='#e0e0e0'>Port Name</TD><td width='70%' bgcolor=#f0f0f0 align=left><i>" & PortName & "</i></td></tr>"
fileOutput.writeline "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Shared Directories</i></b></TD></TR>"
'This sextion lists all the current shares enabled on the PC.
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='40%' align='center' bgcolor='#e0e0e0'><b>Path</b><TD width='40%' align='center' bgcolor='#e0e0e0'><b>Description</b></td><tr>"
Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")
For each objShare in colShares
    fileOutput.writeline "                                                <TR><TD width='30%' align='left' bgcolor='#f0f0f0'><i>" & objShare.Name & "</i></TD><td bgcolor=#f0f0f0 align=left><i>" & objShare.Path & "</i></TD><td bgcolor=#f0f0f0 align=left><i>" & objShare.Caption & "</i></td></tr>"
Next
fileOutput.writeline "                                            </table>"
fileOutput.writeline "                                        </td></tr>"
'This section lists all the current services and their status.
fileOutput.writeline "                                        <TR><TD align='center' bgcolor='#d0d0d0' colspan='2'><b><i>Current Service Information</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='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>"
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><i>Current Process Information</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='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 align=left bgcolor='#e0e0e0'><b>Caption:</b></td><td colspan=2 bgcolor=#f0f0f0>" & objSoftware.Caption & "</td></tr>"
    fileOutput.writeline"                                                <tr><td align=left bgcolor='#e0e0e0'><b>Install Location:</b></td><td colspan=2 bgcolor=#f0f0f0>" & objSoftware.InstallLocation & "</td></tr>"
    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

这篇关于VBS 计算机信息脚本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆