VBS风格化弹出框

时间:2019-10-15 14:47:30

标签: vbscript popupwindow

我整理了许多脚本来生成PC信息和日志记录工具,以供我对计算机进行映像和部署时使用。作为一点额外的准备,我当时想在屏幕上显示一个弹出框,以防需要任何手写信息,但是我遇到了两个问题:

  1. 脚本暂停,直到返回/关闭弹出窗口。
  2. 文字很小,而且不是很吸引人(较大的文字和粗体可能会很好)。

到目前为止,这是我所拥有的,请记住,我还没有时间从头开始学习VBS,但是我知道如何打破别人的代码来做我想做的事。

Dim csvFilePath, csvColumns, objFSO
Const TristateTrue = -1
Const ForWriting = 2, ForAppending = 8

'------------------------------------------------------------------------
' If computer is on Domain, output to File Server
' If computer is not on domain, output to MDT Server
'------------------------------------------------------------------------

Set objWMISvc = GetObject( "winmgmts:\\.\root\cimv2" )
Set colItems = objWMISvc.ExecQuery( "Select * from Win32_ComputerSystem", , 48 )
For Each objItem in colItems
    strComputerDomain = objItem.Domain
    If objItem.PartOfDomain Then
        csvFilePath = "\\Path\To\Domain\Server\Share\MDT_Completion_Log\MDTCompletion.txt"
    Else
        csvFilePath = "\\Path\To\Deploy\Server\MDTCompletion.txt"
    End If
Next

Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(csvFilePath) Then
    Set objCSVFile = objFSO.OpenTextFile(csvFilePath, ForAppending, True, TristateTrue)
    'objCSVFile.WriteLine
Else
    Wscript.Echo "File does not exist."
    Set objCSVFile = objFSO.CreateTextFile(csvFilePath, ForAppending, True)

    csvColumns = "Computer Name,Make,Model,BIOS Version,TPM Version,TPM Firmware Version,TPM Enabled,TPM Active,TPM Owned,Time,Date"
    objCSVFile.Write csvColumns
    objCSVFile.Writeline
End If

'------------------------------------------------------------------------
' Computer Name and Serial #
'------------------------------------------------------------------------
'On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
'Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_BIOS",,48)

'For Each objItem in colItems
'WScript.Echo "Serial Number: " & objItem.SerialNumber
'Next

Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem",,48)
For Each objItem in colItems
    compName = objItem.Name
    compMake = objItem.Manufacturer
    compModel = objItem.Model
    WScript.Echo "Computer Name: " & compName
    WScript.Echo "Make: " & compMake
    WScript.Echo "Model: " & compModel
Next
'------------------------------------------------------------------------
' BIOS Information
'------------------------------------------------------------------------

Set colBIOS = objWMIService.ExecQuery _
    ("Select * from Win32_BIOS")

For each objBIOS in colBIOS
    compSerial = objBIOS.SerialNumber
    compBiosName = objBIOS.Name
    compBiosRel = objBIOS.ReleaseDate
    compBiosVer = objBIOS.Version
    Wscript.Echo "BIOS Name: " & compBiosName
    Wscript.Echo "Release Date: " & compBiosRel
    Wscript.Echo "Version: " & compBiosVer
    WScript.Echo "Serial Number: " & compSerial
Next

'------------------------------------------------------------------------
' TPM Get Section
'------------------------------------------------------------------------
Set objshell = CreateObject("wscript.shell")
    strComputer = objshell.ExpandEnvironmentStrings("%Computername%")
    Dim  sConnection ,oTpmWmi, objTpm
    sConnection = "winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!root\cimv2\Security\MicrosoftTpm"
    Set oTpmWmi = GetObject(sConnection)
    Set objTpm = oTpmWmi.Get("Win32_Tpm=@")

    tpmManVer = objTpm.ManufacturerVersion
    tpmSpecVer = objTpm.SpecVersion
    tpmActive = objTpm.IsActivated_InitialValue
    tpmEnabled = objTpm.IsEnabled_InitialValue
    tpmOwned = objTpm.IsOwned_InitialValue

    Wscript.Echo  "ManufacturerId             : " & objTpm.ManufacturerId
    Wscript.Echo  "ManufacturerVersion        : " & tpmManVer
    Wscript.Echo  "ManufacturerVersionInfo    : " & objTpm.ManufacturerVersionInfo
    Wscript.Echo  "PhysicalPresenceVersionInfo: " & objTpm.PhysicalPresenceVersionInfo
    Wscript.Echo  "SpecVersion                : " & tpmSpecVer
    Wscript.Echo  "IsActivated_InitialValue   : " & tpmActive
    Wscript.Echo  "IsEnabled_InitialValue     : " & tpmEnabled
    Wscript.Echo  "IsOwned_InitialValue       : " & tpmOwned

    If InStr(1, tpmSpecVer, "2.0", vbTextCompare) Then
        tpmSpecVer = "2.0"
    Else
        tpmSpecVer = "Not 2.0"
    End If
    If tpmActive = "True" Then
        tpmActive = "Active"
    Else
        tpmActive = "Not Active"
    End If
    If tpmEnabled = "True" Then
        tpmEnabled = "Enabled"
    Else
        tpmEnabled = "Disabled"
    End If
    If tpmOwned = "True" Then
        tpmOwned = "Owned"
    Else
        tpmOwned = "Not Owned"
    End If

'-------------------------------------------------------------------------
' Date and Time
'-------------------------------------------------------------------------
Set colItems = objWMIService.ExecQuery("Select * from Win32_LocalTime")
For Each objItem in colItems
    mdtYear = objItem.Year
    mdtMonth = objItem.Month
    mdtDay = objItem.Day
    If mdtDay < 10 Then
        mdtDay = "0" & mdtDay
    End If
    mdtDate = mdtYear & "/" & mdtMonth & "/" & mdtDay

    mdtHour = objItem.Hour
    mdtMinute = objItem.Minute
    If mdtMinute < 10 Then
        mdtMinute = "0" & mdtMinute
    End If
    mdtTime = mdtHour & ":" & mdtMinute

    WScript.Echo "Date: " & mdtDate
    Wscript.Echo "Hour: " & mdtTime
Next
'-------------------------------------------------------------------------
' Write to CSV
'-------------------------------------------------------------------------

objCSVFile.Write compName & "," & compMake & "," & compModel & "," & compBiosVer & "," & tpmSpecVer & "," & tpmManVer & "," & tpmEnabled & "," & tpmActive & "," & tpmOwned & "," & mdtDate & "," & mdtTime
objCSVFile.WriteLine

Msgbox "Computer Name: " & compName &VBnewline& "Make: " & compMake &VBnewline& "Model: " & compModel &VBnewline& "TPM Version: " & tpmSpecVer &VBnewline& "TPM Activate Status: " & tpmActive &VBnewline& "TPM Enabled Status: " & tpmEnabled &VBnewline& "TPM Ownership Status: " & tpmOwned &VBnewline& "Date: " & mdtDate &VBnewline& "Hour: " & mdtTime, 64,"Computer Information"

objCSVFile.Close

0 个答案:

没有答案