Deleting an HTTP Virtual Server

Deleting an HTTP Virtual Server

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

The following example deletes the specified HTTP virtual server. This example uses functions for Deleting All HTTP Virtual Directories, Determining If the Specified Server Is a Clustered Server, and Deleting a Cluster Resource.

Visual Basic

'//////////////////////////////////////////////////////////////////////
' Function: deleteHTTPVirtualServer()
' Purpose:  Deletes the specified virtual server.
'
' Input:    szDomainName:               Domain of the Exchange organization
'           szOrganizationName:         Name of Exchange Organization
'           szAdministrativeGroupName:  Name of Administrative Group
'           szServerName:               Name of server to use
'           szEntryId:                  ID of server to delete
'           szVirtualServerName:        Name of virtual server
'           szUserName:                 Admin Username
'           szUserPwd:                  Admin pwd
'           szDirectoryServer:          Name of the Directory Server
'
' Output:   getNextAvailableEntryID:    Contains Error code (if any)
'
' Note:  In order for this example to function correctly, it may be necessary to include
' references to the following libraries: Active DS Type Library, Microsoft CDO for
' Exchange Management Library, Microsoft Cluster Service Automation Classes,
' Microsoft CDO for Windows 2000 Library.
'//////////////////////////////////////////////////////////////////////
Public Function deleteHTTPVirtualServer(ByVal szDomainName As String, _
                                        ByVal szOrganizationName As String, _
                                        ByVal szAdministrativeGroupName As String, _
                                        ByVal szServerName As String, _
                                        ByVal szEntryID As String, _
                                        ByVal szVirtualServerName As String, _
                                        ByVal szUserName As String, _
                                        ByVal szUserPwd As String, _
                                        ByVal szDirectoryServer) As Integer

    Dim objLdap As IADsOpenDSObject
    Dim objHosting As IADsContainer
    Dim szConnString As String
    Dim bIsCluster As Boolean
    Dim szaDomTokens() As String
    Dim szDomainDN As String

    On Error GoTo errhandler

    ' Put the domain name into an ldap string.
    szaDomTokens = Split(szDomainName, ".", -1, 1)
    szDomainDN = Join(szaDomTokens, ",dc=")
    szDomainDN = "dc=" & szDomainDN

    ' Delete all the directories in this server first.

    deleteHTTPVirtualDirectories szDomainName, _
                                 szOrganizationName, _
                                 szAdministrativeGroupName, _
                                 szServerName, _
                                 szEntryID, _
                                 szUserName, _
                                 szUserPwd, _
                                 szDirectoryServer

    ' Build the ldap connection string.

    szConnString = "LDAP://" + szDirectoryServer + _
                   "/cn=http,cn=protocols,cn=" + szServerName + _
                   ",cn=servers,cn=" + szAdministrativeGroupName + _
                   ",cn=Administrative Groups,cn=" + szOrganizationName + _
                   ",cn=Microsoft Exchange,cn=services,cn=configuration," + _
                   szDomainDN

    ' Open up the directory with the passed credentials (preferably the admin).

    Set objLdap = GetObject("LDAP:")

    ' Get a container object from the connection string.

    Set objHosting = objLdap.OpenDSObject(szConnString, _
                                          szUserName, _
                                          szUserPwd, _
                                          ADS_SECURE_AUTHENTICATION)

    ' Delete the server object.

    objHosting.Delete "protocolCfgHTTPServer", "cn=" + szEntryID

    ' Is this server a cluster?

    isClusteredServer szDomainName, _
                      szOrganizationName, _
                      szAdministrativeGroupName, _
                      szServerName, _
                      szUserName, _
                      szUserPwd, _
                      bIsCluster, _
                      szDirectoryServer

    If bIsCluster Then

        ' If the value of szVirtualServerName has the server name at the end, it must be removed.
        ' For example, if szVirtualServerName contained "www.fourthcoffee.com (calhost12)", "(calhost12)" must
        ' be removed from the string.

        ' Assumptions: only the server name will exist with a (), no other occurrances of () will
        ' exist in the string and ) will be the end of the string

        iCounter = InStr(szVirtualServerName, "(")

        If iCounter <> 0 Then
            szVirtualServerName = Mid(szVirtualServerName, 1, iCounter - 1)
            szVirtualServerName = Trim(szVirtualServerName)
        End If

        szVirtualServerName = szVirtualServerName + " (" + szServerName + ")"
        deleteClusterResource szServerName, _
                              szServerName, _
                              szVirtualServerName, _
                              szUserName, _
                              szUserPwd
    End If

    deleteHTTPVirtualServer = 0

    ' Clean up.
    Set objLdap = Nothing
    Set objHosting = Nothing

    Exit Function

    ' Error handling.
errhandler:

    Set objLdap = Nothing
    Set objHosting = Nothing
    deleteHTTPVirtualServer = 1

    ' Implement error logging here.
    Exit Function

End Function

Send us your feedback about the Microsoft Exchange Server 2003 SDK.

Build: June 2007 (2007.618.1)

© 2003-2006 Microsoft Corporation. All rights reserved. Terms of use.