"Is Virtual Node" Discovery
-
Monday, December 05, 2011 5:09 PM
Does anyone knows wich discovery populates the Microsoft.Windows.Server.Computer class property "Is Virtual Node"?
SCOM does not discover the operating system of a server because the property "Is Virtual Node" is set to True. This machine is not a virtual node but the server name was used in the past as a virtual node that was deleted months ago. For some reason, SCOM retained the information and when the machine was discovered (this week) the property "Is Virtual Node" was set to True!
There is any way to change the property value?
Thank You.
All Replies
-
Wednesday, December 07, 2011 5:48 AMModerator
Hi,
Please check if any information as below will help:
Your MP Discoveries and Clustering
http://blogs.technet.com/b/authormps/archive/2011/03/13/your-mp-discoveries-and-clustering.aspx
Service Monitor for Cluster
Vivian Xing
TechNet Community Support
-
Wednesday, December 07, 2011 7:42 PM
the discovery which populates this property never sets false for it. Property either empty or set to true by the discovery.
- i think the easiest supported way for you is to remove agent, wait two days until SCOM grooms marked for deletion records, then install agent back
- next supported option is to author custom discovery which resets this property to null, enable discovery only for your object.
- direct DB editing. UNSUPPORTED. your table dbo.MT_Computer_1. join it with dbo.BaseManagedEntity to get computer name.
- Marked As Answer by HermanoF Tuesday, December 27, 2011 9:07 AM
-
Thursday, December 08, 2011 9:04 AM
Hi,
if you can provide as more information about your problem and to understand you're talking about a cluster and if I understood well you have a physical node that was a virtual node?
Oussama Oueslati | System Engineer | vNext Consulting -
Monday, December 12, 2011 5:16 PM
Hello,
I removed the agent but the server remained within the Monitoring/"Windows Computers" View with a greyed out state.
The result of the query:
SELECT * FROM dbo.[BasemanagedEntity] where FullName Like '%Windows.Computer%' ,
name sfor the server hows the "IsDeleted" column with a 0 value. So i think the db didnt notice that the computer has been deleted!After 3 days i installed the agent back with the same result. The "Is Virtual Node" property is still set to True.
For now i´m trying to author a discovery to change the property.
- Edited by HermanoF Monday, December 12, 2011 10:50 PM
-
Monday, December 12, 2011 5:30 PM
Hello,
The cluster was deleted months ago, but the name of one virtual node of that old cluster is now the name of a physical machine.
I think scom "maps" the old information with the new server discovery.
-
Tuesday, December 13, 2011 7:17 AMModerator
if you remove the agent from the machine. You need to wait a bit at first (as you have done) but also make sure that it is not there anymore in the scom admin console in agent managed, agentless managed, pending management. If you see it than delete it. wait again. To speed up the process go to the operations manager shell and give the command:
remove-disabledmonitoringobject
This should go through the database and set the isdeleted column to 1 for that machine. After that grooming should do its job and remove the entry.
Bob Cornelissen - BICTT (My BICTT Blog) - Microsoft Community Contributor 2011 Recipient- Marked As Answer by Vivian XingModerator Monday, December 26, 2011 8:42 AM
- Unmarked As Answer by HermanoF Tuesday, December 27, 2011 9:08 AM
-
Tuesday, December 13, 2011 10:34 AM
Hi Bob,
First i deleted the server through "agent managed" view and then i uninstalled the agent from the machine! The only place i still see it is in Monitoring/"Windows Computers" View (grey).
i´m going to try your tip and run the command remove-disabledmonitoringobject.
Thank you.
- Edited by HermanoF Tuesday, December 13, 2011 4:01 PM
-
Tuesday, December 27, 2011 9:07 AM
Hello,
I could not find a way to reset the value to Null, but i made a custom discovery to set the property to "False". The problem is solved!
Thank you.
- Marked As Answer by HermanoF Tuesday, December 27, 2011 9:10 AM
-
Tuesday, December 27, 2011 9:10 AM
The command didnt work in this case because the object is not marked for deletion!
- Edited by HermanoF Tuesday, December 27, 2011 9:10 AM
-
Friday, May 25, 2012 6:51 PM
Hi,
I have written a custom MP to discover all servers which have a specific reg keys. Class is a windows.localapplication and discovery for this class is targetted at windows.server.computer.
When I see the results, I can only find some clustered nodes got discovered but not the nodes which are not clustered ones.
Expression only inlcudes if regkey exist.
I added a property to my class IsaCluster=true|false and it will pick its value from isvirtualnode property of windows.server.computer.
Do you think because of this property no recieveing value for nonclustered nodes, i am able to see only clustrered seervers in my discovery view.
Any suggestions how to discvoer both clustered and non clustered nodes. Let me know if I have to post the discovery XML.
ThanksManish
-
Monday, May 28, 2012 10:46 AM
Hello,
If a server is not a virtual node, then the value of your class property will be null: "IsaCluster=" (null value)! I think this property is not the problem, can you post the discovery XML?
- Edited by HermanoF Monday, May 28, 2012 3:52 PM
-
Tuesday, May 29, 2012 6:56 PM<ComputerName>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<RegistryAttributeDefinitions>
<RegistryAttributeDefinition>
<AttributeName>ApplicationExists</AttributeName>
<Path>SOFTWARE\APPGROUP\APPA</Path>
<PathType>0</PathType>
<AttributeType>0</AttributeType>
</RegistryAttributeDefinition>
</RegistryAttributeDefinitions>
<Frequency>14400</Frequency>
<ClassId>$MPElement[Name="CustomPack.APP.Common.Servers"]$</ClassId>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="CustomPack.APP.Common.Servers"]/IsVirtualNode$</Name>
<Value>false</Value>
</Setting>
<Setting>
<Name>$MPElement[Name="System!System.Entity"]/DisplayName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$</Value>
</Setting>
</Settings>
</InstanceSettings>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Boolean">Values/ApplicationExists</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="Boolean">true</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">$Target/Property[Type='Windows!Microsoft.Windows.Server.Computer']/IsVirtualNode$</XPathQuery>
</ValueExpression>
<Operator>NotEqual</Operator>
<ValueExpression>
<Value Type="String">true</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">$Target/Property[Type='Windows!Microsoft.Windows.Server.Computer']/IsVirtualNode$</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">true</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</And>
</Expression>
</Configuration>Manish
-
Wednesday, May 30, 2012 12:15 AM
basically, i have a set of sql servers on which i have to run a specific script.
Some of sql servers are stand alone and others are clustered ones. I want to run script only on the cluster name instead of individual nodes. Along with this, i also want to run same script on stand alone servers.
Script takes server name as paramter.
Any suggestions as how to achieve this.
Thanks
MAnishManish

