Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 751941
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T14:43:29+00:00 2026-05-14T14:43:29+00:00

Using either VB.NET, C#, or VBScript, how can I check if the IIS 6

  • 0

Using either VB.NET, C#, or VBScript, how can I check if the IIS 6 Management Compatibility feature and its subfeatures have been installed on a machine running IIS 7.x?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T14:43:29+00:00Added an answer on May 14, 2026 at 2:43 pm

    I performed some tests using a trial copy of Registry Workshop (the Compare Registries function) and found the following:

    If IIS 7.x is installed, the following Registry key contains information about the installed subcomponents:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Components

    Each installed feature is represented with a value of DWORD 0x00000001. If a feature is not installed, the value is missing.

    For the Web Management Tools, the value names are as follows:

    Web Management Tools
      IIS 6 Management Compatibility
        IIS 6 Management Console                              (LegacySnapin)
        IIS 6 Scripting Tools                                 (LegacyScripts)
        IIS 6 WMI Compatibility                               (WMICompatibility)
        IIS Metabase and IIS 6 configuration compatibility    (Metabase + ADSICompatibility)
    
      IIS Management Console                                  (ManagementConsole)
      IIS Management Scripts and Tools                        (ManagementScriptingTools)
      IIS Management Service                                  (AdminService)
    

    Note that these component names came from a Windows 7 installation and might differ slightly from those of Windows Server 2008, though the Registry keys should be the same.

    Some of this is mentioned in a note to this article:
    Using Managed Code to Detect if IIS is Installed and ASP/ASP.NET is Registered

    A list of these and other subcomponents can be found here:
    Discover Installed Components

    Update:

    Some core functions from the final code. This is not the complete code but should be enough for anyone who spends the time looking up the component names for the various IIS versions:

    Function IsIISComponentInstalled(ByVal ComponentName)
        Dim result
        Dim intProcessorArchitecture
        intProcessorArchitecture = GetProcessorArchitectureIIS()
        If intProcessorArchitecture = 64 Then
            '64-bit system
            On Error Resume Next
            Err.Clear
            result = RegReadDWORD(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\InetStp\Components", ComponentName, 64)
            If Err.Number <> 0 Then
                Err.Clear
                IsIISComponentInstalled = False
            Else
                If result = 1 Then
                    IsIISComponentInstalled = True
                Else
                    IsIISComponentInstalled = False
                End If
            End If
        Else
            '32-bit system
            If RegReadStringIIS("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Components\" & ComponentName) = "1" Then
                IsIISComponentInstalled = True
            Else
                IsIISComponentInstalled = False
            End If
        End If
    
    End Function
    
    Function GetProcessorArchitectureIIS()
        Dim strProcessorArchitecture
        Dim oShell
    
        Set oShell = CreateObject("Wscript.Shell")
        strProcessorArchitecture = oShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE")
    
        If strProcessorArchitecture = "x86" Then
            GetProcessorArchitectureIIS = 32
        Else
            If strProcessorArchitecture = "AMD64" Then
                GetProcessorArchitectureIIS = 64
            Else
                GetProcessorArchitectureIIS = 0
            End If
        End If
    
    End Function
    
    Function RegReadStringIIS(sRegValue)
        Set oShell = CreateObject("WScript.Shell")
        On Error Resume Next
        RegReadStringIIS = oShell.RegRead(sRegValue)
        If Err Then
            RegReadStringIIS = ""
            Err.clear
        End If
        If VarType(RegReadStringIIS) < vbArray Then
            If RegReadStringIIS = sRegValue Then
                RegReadStringIIS = ""
            End If
        End If
        On Error Goto 0
    End Function
    
    '-------------------------------------------------------------------
    ' Reads a REG_SZ value from the local computer's registry using WMI.
    ' Parameters:
    '   RootKey - The registry hive (see http://msdn.microsoft.com/en-us/library/aa390788(VS.85).aspx for a list of possible values).
    '   Key - The key that contains the desired value.
    '   Value - The value that you want to get.
    '   RegType - The registry bitness: 32 or 64.
    '
    'References:
    '   http://stackoverflow.com/questions/1229760/how-do-i-read-64-bit-registry-values-from-vbscript-running-as-a-an-msi-post-inst
    '   http://msdn.microsoft.com/en-us/library/aa393067(VS.85).aspx
    '   http://msdn.microsoft.com/en-us/library/windows/desktop/aa390445(v=VS.85).aspx
    '
    Function RegReadDWORD(RootKey, Key, Value, RegType)
        Dim oCtx, oLocator, oReg, oInParams, oOutParams
        Set oCtx = CreateObject("WbemScripting.SWbemNamedValueSet")
        oCtx.Add "__ProviderArchitecture", RegType
        Set oLocator = CreateObject("Wbemscripting.SWbemLocator")
        Set oReg = oLocator.ConnectServer("", "root\default", "", "", , , , oCtx).Get("StdRegProv")
        Set oInParams = oReg.Methods_("GetDWORDValue").InParameters
        oInParams.hDefKey = RootKey
        oInParams.sSubKeyName = Key
        oInParams.sValueName = Value
        Set oOutParams = oReg.ExecMethod_("GetDWORDValue", oInParams, , oCtx)
        RegReadDWORD = oOutParams.uValue
    End Function
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 371k
  • Answers 371k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer You can make use of the operator[], substr, c_str and… May 14, 2026 at 7:02 pm
  • Editorial Team
    Editorial Team added an answer I prefer not to turn DEBUG off. Instead I put… May 14, 2026 at 7:02 pm
  • Editorial Team
    Editorial Team added an answer I believe strtr is multi-byte safe, either way since str_replace… May 14, 2026 at 7:02 pm

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.