'+ ' write_to_ie_v2.vbs ' ' This script demoes how to provide text rendition in a window from VBScript. ' Trick is to create an Internet Explorer document, then populate the document with data and HTML tags. ' ' Input : None ' Output : Display within an ie page ' Side effects: None ' ' v1 Initial version from http://technet.microsoft.com/en-us/library/ee176580.aspx with some customization. ' v2.0-0 7-nov-2010 Didier.Morandi at gmail.com (http://didier.morandi.free.fr/vbs): Sort before loading display '- Option Explicit Dim ObjExplorer, objDocument, objWMIService, DataList, ColServices, Service Dim strBgColor, strTextColor, strComputer, strComputerName, strScriptInfo Dim intRunning, intStopped Const Black = "#000000", White="#FFFFFF", Blue="#0000FF", Green="#00FF00", Yellow="#FFFF00", Red="#FF0000" Const adVarChar = 200 Const MaxCharacters = 255 wscript.echo "Opening Windows display" '--- Creating instance of ie --- Set objExplorer = CreateObject("InternetExplorer.Application") objExplorer.Navigate "about:blank" objExplorer.ToolBar = 0 objExplorer.StatusBar = 0 objExplorer.Width = 1024 objExplorer.Height = 600 objExplorer.Left = 300 objExplorer.Top = 100 objExplorer.Visible = 1 '--- This loop allows ie to terminate its initialization before creating a document --- Do While (objExplorer.Busy) Loop '--- Creating object document --- Set objDocument = objExplorer.Document objDocument.Open strBgColor = White strTextColor = Blue strComputerName = GetComputerName() '--- Building ie page --- objDocument.Writeln "Service Status" objDocument.Writeln "" objDocument.Writeln "" objDocument.Writeln "" objDocument.Writeln "" objDocument.Writeln "" objDocument.Writeln "" objDocument.Writeln "" objDocument.Writeln "" wscript.echo "loading data..." '--- Creating disconnected recordset --- Set DataList = CreateObject("ADOR.Recordset") DataList.Fields.Append "ServiceName", adVarChar, MaxCharacters DataList.Fields.Append "ServiceState", adVarChar, MaxCharacters DataList.Fields.Append "ServiceDisplayName", adVarChar, MaxCharacters DataList.Open '--- Fetching data --- strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer& "\root\cimv2") Set colServices = objWMIService.ExecQuery("SELECT * FROM Win32_Service") For Each Service in colServices DataList.AddNew DataList("ServiceName") = Service.Name DataList("ServiceState") = Service.State DataList("ServiceDisplayName") = Service.DisplayName DataList.Update Next '--- Sorting data --- wscript.echo "sorting data..." DataList.Sort = "ServiceName" '--- Loading data in page --- intRunning = 0 intStopped = 0 DataList.MoveFirst Do Until DataList.EOF objDocument.Writeln "" objDocument.Writeln "" if DataList.Fields.Item("ServiceState") = "Stopped" then strTextColor = Red intStopped = intStopped + 1 else strTextColor = Blue intRunning = intRunning + 1 end if objDocument.writeln "" objDocument.writeln "" objDocument.Writeln "" DataList.MoveNext Loop '--- Building footer --- strScriptInfo = GetScriptEngineInfo() objDocument.Writeln "
Services on " & strComputerName & "StateDescription
" &_ DataList.Fields.Item("ServiceName") &_ "" &_ DataList.Fields.Item("ServiceState") &_ "" &_ DataList.Fields.Item("ServiceDisplayName") &_ "
" objDocument.Writeln "---" objDocument.Writeln "
" objDocument.Writeln "Running services: " & intRunning & ", Stopped services: " & intStopped & ". Total: " &_ (intRunning + intStopped) & " services on " & strComputerName & "." objDocument.Writeln "
" objDocument.Writeln "Listing provided by " & Ucase(wscript.ScriptName) & " on " & now &_ ". " & strScriptInfo & "" objDocument.Writeln "
" objDocument.Writeln "" objDocument.Write() objDocument.Close wscript.echo "Display done." wscript.quit '------------------------------------------------------------------------ Function GetComputerName() Dim objWshNetwork Set objWshNetwork = WScript.CreateObject("WScript.Network") GetComputerName = objWshNetwork.ComputerName End Function '------------------------------------------------------------------------ Function GetScriptEngineInfo Dim s s = "" s = ScriptEngine & " Version " s = s & ScriptEngineMajorVersion & "." s = s & ScriptEngineMinorVersion & "." s = s & ScriptEngineBuildVersion GetScriptEngineInfo = s End Function