Get Software List Using WMI

Posted on 2006-04-10
Last Modified: 2009-03-24

How would you use wmi to get hardware/software information on a networked computer if you knew the network path and or computer name of a computer on your network?

Question by:narmi2
    LVL 11

    Accepted Solution

    Enter your computer name after u run this script:

    On Error Resume Next

    result = inputbox("Name", "Please enter the computer name", 100, 100)

    strComputer = result

    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
    For Each objItem in colItems
        Wscript.Echo "BootDevice: " & objItem.BootDevice
        Wscript.Echo "BuildNumber: " & objItem.BuildNumber
        Wscript.Echo "BuildType: " & objItem.BuildType
        Wscript.Echo "Caption: " & objItem.Caption
        Wscript.Echo "CodeSet: " & objItem.CodeSet
        Wscript.Echo "CountryCode: " & objItem.CountryCode
        Wscript.Echo "CreationClassName: " & objItem.CreationClassName
        Wscript.Echo "CSCreationClassName: " & objItem.CSCreationClassName
        Wscript.Echo "CSDVersion: " & objItem.CSDVersion
        Wscript.Echo "CSName: " & objItem.CSName
        Wscript.Echo "CurrentTimeZone: " & objItem.CurrentTimeZone
        Wscript.Echo "Debug: " & objItem.Debug
        Wscript.Echo "Description: " & objItem.Description
        Wscript.Echo "Distributed: " & objItem.Distributed
        Wscript.Echo "ForegroundApplicationBoost: " & objItem.ForegroundApplicationBoost
        Wscript.Echo "FreePhysicalMemory: " & objItem.FreePhysicalMemory
        Wscript.Echo "FreeSpaceInPagingFiles: " & objItem.FreeSpaceInPagingFiles
        Wscript.Echo "FreeVirtualMemory: " & objItem.FreeVirtualMemory
        Wscript.Echo "InstallDate: " & objItem.InstallDate
        Wscript.Echo "LastBootUpTime: " & objItem.LastBootUpTime
        Wscript.Echo "LocalDateTime: " & objItem.LocalDateTime
        Wscript.Echo "Locale: " & objItem.Locale
        Wscript.Echo "Manufacturer: " & objItem.Manufacturer
        Wscript.Echo "MaxNumberOfProcesses: " & objItem.MaxNumberOfProcesses
        Wscript.Echo "MaxProcessMemorySize: " & objItem.MaxProcessMemorySize
        Wscript.Echo "Name: " & objItem.Name
        Wscript.Echo "NumberOfLicensedUsers: " & objItem.NumberOfLicensedUsers
        Wscript.Echo "NumberOfProcesses: " & objItem.NumberOfProcesses
        Wscript.Echo "NumberOfUsers: " & objItem.NumberOfUsers
        Wscript.Echo "Organization: " & objItem.Organization
        Wscript.Echo "OSLanguage: " & objItem.OSLanguage
        Wscript.Echo "OSProductSuite: " & objItem.OSProductSuite
        Wscript.Echo "OSType: " & objItem.OSType
        Wscript.Echo "OtherTypeDescription: " & objItem.OtherTypeDescription
        Wscript.Echo "PlusProductID: " & objItem.PlusProductID
        Wscript.Echo "PlusVersionNumber: " & objItem.PlusVersionNumber
        Wscript.Echo "Primary: " & objItem.Primary
        Wscript.Echo "QuantumLength: " & objItem.QuantumLength
        Wscript.Echo "QuantumType: " & objItem.QuantumType
        Wscript.Echo "RegisteredUser: " & objItem.RegisteredUser
        Wscript.Echo "SerialNumber: " & objItem.SerialNumber
        Wscript.Echo "ServicePackMajorVersion: " & objItem.ServicePackMajorVersion
        Wscript.Echo "ServicePackMinorVersion: " & objItem.ServicePackMinorVersion
        Wscript.Echo "SizeStoredInPagingFiles: " & objItem.SizeStoredInPagingFiles
        Wscript.Echo "Status: " & objItem.Status
        Wscript.Echo "SystemDevice: " & objItem.SystemDevice
        Wscript.Echo "SystemDirectory: " & objItem.SystemDirectory
        Wscript.Echo "TotalSwapSpaceSize: " & objItem.TotalSwapSpaceSize
        Wscript.Echo "TotalVirtualMemorySize: " & objItem.TotalVirtualMemorySize
        Wscript.Echo "TotalVisibleMemorySize: " & objItem.TotalVisibleMemorySize
        Wscript.Echo "Version: " & objItem.Version
        Wscript.Echo "WindowsDirectory: " & objItem.WindowsDirectory
    LVL 1

    Author Comment

    Is that
    LVL 11

    Expert Comment

    Nope. It's WMI.
    LVL 11

    Expert Comment

    Well its vbscript using WMI :O
    LVL 11

    Assisted Solution

    You can access all software by going through the registry of each machine. I believe it's something like:

    Dim uninstallKey As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
            Dim rk As RegistryKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "<YourMachineNameHere>")
            For Each skName As String In rk.GetSubKeyNames()
                Dim sk As RegistryKey = rk.OpenSubKey(skName)

    *Note: You will need the correct user account in order to do this.


    LVL 10

    Assisted Solution

    you can also use the WMI extension provided by microsoft

    LVL 11

    Assisted Solution

    If the code I previously posted doesn;t work than this will :O

    Dim uninstallKey As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
            Dim rk As RegistryKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "<YourMachineName>")

            Dim searchKey As RegistryKey = rk.OpenSubKey(uninstallKey)

            For Each skName As String In searchKey.GetSubKeyNames()
                Dim sk As RegistryKey = searchKey.OpenSubKey(skName)
                Dim str As String = sk.GetValue("DisplayName")

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    How your wiki can always stay up-to-date

    Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
    - Increase transparency
    - Onboard new hires faster
    - Access from mobile/offline

    Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
    It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
    It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
    Sending a Secure fax is easy with eFax Corporate ( First, Just open a new email message.  In the To field, type your recipient's fax number You can even send a secure international fax — just include t…

    779 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    21 Experts available now in Live!

    Get 1:1 Help Now