How To : VB Script to Remove the Machine Names from COM+ catalog.

We had a lot of remote servers configured in Component Services. Some of the servers later got decommissioned. Now when we try to click on the machine name nodes in Component Services it hangs and does not respond. We ran the VB script below to remove the machine name nodes from COM+ catalog.You need to be the local administrator on the machine to be able to run the script below:

 

' Script to delete Machine names from COM+ catalog
' ===========================================================

Dim catalog 'As COMAdmin.COMAdminCatalog
Dim Machines 'As COMAdminCatalogCollection

Set Catalog = CreateObject("COMAdmin.COMAdminCatalog")

'Collect input from user
Dim sMachine
sMachine = Inputbox("Enter Machine name to be deleted (case sensitive):","Delete Machine name", "My Computer")  
 If sMachine="" Then
    MsgBox"Invalid input, restart the program"
    WScript.Quit
 End If
If sMachine="My Computer" Then
   msgbox ("You cannot delete My Computer")
   WScript.Quit
End If
 

'Get the Machines collection in COM+ catalog
 Set Machines = Catalog.GetCollection("ComputerList")
 Machines.Populate

'Get the count of the number of objects
 MsgBox("No. of Machine names found : " & Machines.Count)

'Get the correct machine name
 counter = 0
 Dim MachineObj 'As COMAdminCatalogObject
 For Each MachineObj in Machines
    If MachineObj.Name=sMachine Then
             MsgBox(MachineObj.Name)
             Exit For            
    End If
    counter = counter +1
 Next

'Delete the machine name
If counter < machines.count Then
Dim answer
    answer = Msgbox("Are you sure you want to delete: " & sMachine, vbYesNo, "Confirm Deletion?")
    If answer=vbYes Then
       Machines.Remove(counter)
       Machines.SaveChanges
    End If
Else
   Msgbox "'" & sMachine & "' not found in the COM+ catalog.", vbOkOnly,"Machine Not Found"
End If