First published on TECHNET on May 03, 2010
<br/>
The Component Services snap-in under Administrative Tools allows you manage the COM+ applications on different computers on your network. This is done by adding the computer to a list which is then saved for the next time you open the application. While this means you don't need to keep adding a computer, it can also cause the application to appear hung if a computer in the list no longer exists.
In the Component Services snap-in, if a you try to add a computer name to the Computers node that does not exist or is not responding, or that ceases to respond at some point, the MMC may become unresponsive. This probably looks like a hang, since the period of unresponsiveness is at least a couple minutes and increases with each user input. If the invalid node is not removed from the Computers list, this will occur every time the user loads the Component Services snap-in and attempts to expand the Computers node. The same behavior may be noticed if a computer that has firewall enabled is added to the list.
The MMC should respond after a while, but the time span of the hang can vary depending on the number of stale objects that are available under the Computer node.
The following work-arounds can be used to get around the period of unresponsiveness:
WorkAround 1
1. Open Component Services
Start -> Run -> dcomcnfg
or
Control Panel - > Administrative tools -> Component Services.
2. Drop down into the Computers node from the Component Services node.
3. Make a note of the computer names in this list (apart from My Computer ) that are no longer available on the network.
4. Close Component Services (you may need to kill the application from Task Manager if it is not responding).
5. Open the HOSTS file in a text editor (the file can be found in \System32\drivers\etc\; backup a copy of the file first)
6. Add entries for each computer name you noted, and assign each the loopback IP address (127.0.0.1). This will result in a quick valid response from each computer name when the plug-in tries to access it. It won’t be the real IP address of the unavailable computer, but the MMC does not know that.
7. Save the HOSTS file.
8. Reopen Component Services and drop down to the Computers list.
9. You may take a bit of time, but now you should be able to select the invalid computers in the list and remove them.
10. Once the invalid computer names are removed and the plug-in is responsive when opened, edit the HOSTS file again to remove the entries you've added.
Workaround 2
The following VBS script can be used to delete the reference of the computers from the COM+ catalogue. Copy the below code to a notepad file and rename it to VBS (eg- RemoveMachineComAdmin.vbs). While entering the name of the server make sure it is entered as it was used in the component console; it is case sensitive.
NOTE: Microsoft does not support the creation or functionality of custom scripts. This script is supplied as an example, and is not officially supported. Use at your own risk.
' 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
Thanks for your time,
Gangadharan Prashanth
Share this post : |
|
|
|
|
|
|
|
|
<br/>
Published Mar 16, 2019
Version 1.0CraigMarcho
Microsoft
Joined March 15, 2019
Ask The Performance Team
Follow this blog board to get notified when there's new activity