Software Scripts
Enumerating the Codec Files on a ComputerEnumerating Classic COM Classes
Enumerating Component Categories
Enumerating Classic COM Class Settings
Enumerating DCOM Applications
Enumerating DCOM Application Settings
Enumerating Installed or Advertised Components and Applications
Enumerating Installed Software
Returns a list of features for all the software that was installed on a computer using Windows Installer.
Enumerating ProgIDs
Installing Software on the Local Computer
Installing Software on a Remote Computer
Removing Software
Retrieving Information About Binary Files Used by an Application
Upgrading Software
Enumerating the Codec Files on a Computer
Uses WMI to return information about all the audio and video codec files installed on a computer.
strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_CodecFile",,48) For Each objItem in colItems Wscript.Echo "Access Mask: " & objItem.AccessMask Wscript.Echo "Archive: " & objItem.Archive Wscript.Echo "Caption: " & objItem.Caption strCreationDate = WMIDateStringToDate(objItem.CreationDate) Wscript.Echo "Creation Date: " & strCreationdate Wscript.Echo "Drive: " & objItem.Drive Wscript.Echo "Eight Dot Three File Name: " & _ objItem.EightDotThreeFileName Wscript.Echo "Extension: " & objItem.Extension Wscript.Echo "File Name: " & objItem.FileName Wscript.Echo "File Size: " & objItem.FileSize Wscript.Echo "File Type: " & objItem.FileType Wscript.Echo "File System Name: " & objItem.FSName Wscript.Echo "Group: " & objItem.Group Wscript.Echo "Hidden: " & objItem.Hidden strInstallDate = WMIDateStringToDate(objItem.InstallDate) Wscript.Echo "Last Accessed: " & strLastAccessed strLastModified = WMIDateStringToDate(objItem.LastModified) Wscript.Echo "Last Modified: " & strLastModified Wscript.Echo "Manufacturer: " & objItem.Manufacturer Wscript.Echo "Name: " & objItem.Name Wscript.Echo "Path: " & objItem.Path Wscript.Echo "Version: " & objItem.Version Next Function WMIDateStringToDate(dtmDate) WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _ Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _ & " " & Mid (dtmDate, 9, 2) & ":" & _ Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate, _ 13, 2)) End Function
Enumerating Classic COM Classes
Retrieves information about all the “classic” COM classes installed on a computer.
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ClassicCOMClass") For Each objItem in colItems Wscript.Echo "Component ID: " & objItem.ComponentId Wscript.Echo "Description: " & objItem.Description Wscript.Echo "Name: " & objItem.Name Wscript.Echo Next
Enumerating Component Categories
Retrieves information about the COM class component categories (COM classes that share common functionalities) found on a computer.
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComponentCategory") For Each objItem in colItems Wscript.Echo "Category ID: " & objItem.CategoryId Wscript.Echo "Name: " & objItem.Name Wscript.Echo Next
Enumerating Classic COM Class Settings
Returns configuration information for the “classic” COM classes installed on a computer.
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery _ ("Select * from Win32_ClassicCOMClassSetting") For Each objItem in colItems Wscript.Echo "Application ID: " & objItem.AppID Wscript.Echo "Component ID: " & objItem.ComponentId Wscript.Echo "Control: " & objItem.Control Wscript.Echo "Default Icon: " & objItem.DefaultIcon Wscript.Echo "Description: " & objItem.Description Wscript.Echo "Inprocess Server 32: " & objItem.InprocServer32 Wscript.Echo "Insertable: " & objItem.Insertable Wscript.Echo "Java Class: " & objItem.JavaClass Wscript.Echo "ProgId: " & objItem.ProgId Wscript.Echo "Version Independent ProgId: " & _ objItem.VersionIndependentProgId Wscript.Echo Next
Enumerating DCOM Applications
Returns information about all the DCOM (distributed COM) applications installed on a computer.
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_DCOMApplication") For Each objItem in colItems Wscript.Echo "Application ID: " & objItem.AppID Wscript.Echo "Name: " & objItem.Name Wscript.Echo Next
Enumerating DCOM Application Settings
Returns information about the configuration of each DCOM (distributed COM) application installed on a computer.
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_DCOMApplicationSetting") For Each objItem in colItems Wscript.Echo "Application ID: " & objItem.AppID Wscript.Echo "Description: " & objItem.Description Wscript.Echo "Enable At Storage Activation: " & _ objItem.EnableAtStorageActivation Wscript.Echo "Local Service: " & objItem.LocalService Wscript.Echo "Service Parameters: " & objItem.ServiceParameters Wscript.Echo "Use Surrogate: " & objItem.UseSurrogate Wscript.Echo Next
Enumerating Installed or Advertised Components and Applications
Returns a list of all Windows Installer components installed or advertised on a computer.
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ApplicationService") For Each objItem in colItems Wscript.Echo "Name: " & objItem.Name Wscript.Echo "Start Mode: " & objItem.StartMode Wscript.Echo Next
Enumerating Installed Software
Returns a list of software that was installed on a computer using Windows Installer.
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.CreateTextFile("c:\scripts\software.tsv", True) strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colSoftware = objWMIService.ExecQuery _ ("Select * from Win32_Product") objTextFile.WriteLine "Caption" & vbtab & _ "Description" & vbtab & "Identifying Number" & vbtab & _ "Install Date" & vbtab & "Install Location" & vbtab & _ "Install State" & vbtab & "Name" & vbtab & _ "Package Cache" & vbtab & "SKU Number" & vbtab & "Vendor" & vbtab _ & "Version" For Each objSoftware in colSoftware objTextFile.WriteLine objSoftware.Caption & vbtab & _ objSoftware.Description & vbtab & _ objSoftware.IdentifyingNumber & vbtab & _ objSoftware.InstallDate2 & vbtab & _ objSoftware.InstallLocation & vbtab & _ objSoftware.InstallState & vbtab & _ objSoftware.Name & vbtab & _ objSoftware.PackageCache & vbtab & _ objSoftware.SKUNumber & vbtab & _ objSoftware.Vendor & vbtab & _ objSoftware.Version Next objTextFile.Close
Returns a list of features for all the software that was installed on a computer using Windows Installer.
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.CreateTextFile("c:\scripts\software.tsv", True) strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colSoftware = objWMIService.ExecQuery _ ("Select * from Win32_Product") objTextFile.WriteLine "Caption" & vbtab & _ "Description" & vbtab & "Identifying Number" & vbtab & _ "Install Date" & vbtab & "Install Location" & vbtab & _ "Install State" & vbtab & "Name" & vbtab & _ "Package Cache" & vbtab & "SKU Number" & vbtab & "Vendor" & vbtab _ & "Version" For Each objSoftware in colSoftware objTextFile.WriteLine objSoftware.Caption & vbtab & _ objSoftware.Description & vbtab & _ objSoftware.IdentifyingNumber & vbtab & _ objSoftware.InstallDate2 & vbtab & _ objSoftware.InstallLocation & vbtab & _ objSoftware.InstallState & vbtab & _ objSoftware.Name & vbtab & _ objSoftware.PackageCache & vbtab & _ objSoftware.SKUNumber & vbtab & _ objSoftware.Vendor & vbtab & _ objSoftware.Version Next objTextFile.Close
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.CreateTextFile("c:\scripts\software.tsv", True) strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colSoftware = objWMIService.ExecQuery _ ("Select * from Win32_Product") objTextFile.WriteLine "Caption" & vbtab & _ "Description" & vbtab & "Identifying Number" & vbtab & _ "Install Date" & vbtab & "Install Location" & vbtab & _ "Install State" & vbtab & "Name" & vbtab & _ "Package Cache" & vbtab & "SKU Number" & vbtab & "Vendor" & vbtab _ & "Version" For Each objSoftware in colSoftware objTextFile.WriteLine objSoftware.Caption & vbtab & _ objSoftware.Description & vbtab & _ objSoftware.IdentifyingNumber & vbtab & _ objSoftware.InstallDate2 & vbtab & _ objSoftware.InstallLocation & vbtab & _ objSoftware.InstallState & vbtab & _ objSoftware.Name & vbtab & _ objSoftware.PackageCache & vbtab & _ objSoftware.SKUNumber & vbtab & _ objSoftware.Vendor & vbtab & _ objSoftware.Version Next objTextFile.Close
Enumerating ProgIDs
Returns a list of ProgIDs (Programmatic Identifiers) found on a computer.
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ProgIDSpecification") For Each objItem in colItems Wscript.Echo "Caption: " & objItem.Caption Wscript.Echo "Check ID: " & objItem.CheckID Wscript.Echo "Name: " & objItem.Name Wscript.Echo "Parent: " & objItem.Parent Wscript.Echo "ProgID: " & objItem.ProgID Next
Installing Software on the Local Computer
Installs a hypothetical software program (using a Windows Installer package) on a local computer.
Const ALL_USERS = True Set objService = GetObject("winmgmts:") Set objSoftware = objService.Get("Win32_Product") errReturn = objSoftware.Install("c:\scripts\database.msi", , ALL_USERS)
Installing Software on a Remote Computer
Installs a hypothetical software program (using a Windows Installer package) on a remote computer. Requires delegation for the computer and user accounts involved in the procedure.
Const wbemImpersonationLevelDelegate = 4 Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objConnection = objwbemLocator.ConnectServer _ ("WebServer", "root\cimv2", "fabrikam\administrator", _ "password", , "kerberos:WebServer") objConnection.Security_.ImpersonationLevel = wbemImpersonationLevelDelegate Set objSoftware = objConnection.Get("Win32_Product") errReturn = objSoftware.Install("\\atl-dc-02\scripts\1561_lab.msi",,True) Wscript.Echo errReturn
Removing Software
Uninstalls a hypothetical software program that was installed using Windows Installer.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colSoftware = objWMIService.ExecQuery _ ("Select * from Win32_Product Where Name = 'Personnel database'") For Each objSoftware in colSoftware objSoftware.Uninstall() Next
Retrieving Information About Binary Files Used by an Application
Returns the name and product code of binary information (such as bitmaps, icons, executable files, and so on) used by a Windows Installer application.
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Binary") For Each objItem in colItems Wscript.Echo "Name: " & objItem.Name Wscript.Echo "Product Code: " & objItem.ProductCode Wscript.Echo Next
Upgrading Software
Upgrades a hypothetical software program that was installed using Windows Installer.
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colSoftware = objWMIService.ExecQuery _ ("Select * from Win32__Product Where Name = 'Personnel Database'") For Each objSoftware in colSoftware errReturn = objSoftware.Upgrade("c:\scripts\database2.msi") Next