Your example works as expected. Thank you for the corrections.

SCOM is very powerful, but quite difficult (for me) to find relevant 
information on MP Authoring. So a sincere thanks for contributing as much as 
you do. You and Brian Wren have been invaluable resources for me to even get to 
the novice level that I'm at.

From: [email protected] [mailto:[email protected]] On 
Behalf Of Kevin Holman
Sent: Wednesday, June 29, 2016 10:59 AM
To: [email protected]
Subject: [msmom] RE: Creating Groups in VSAE:


ATTENTION: This email came from an external source. DO NOT open attachments or 
click on links from unknown senders or unexpected emails.

Here is what I see wrong:

1.  You are using a computer group as your base class.  This in itself is not 
wrong, but given additional criteria - it might be the issue.

For example - you use Computer Group as the base class, but your relationship 
is Microsoft.SystemCenter.InstanceGroupContainsEntities

When you use computer group as a base class, you should use 
Microsoft.SystemCenter.ComputerGroupContainsComputer relationship.

Additionally - you chose a Computer Group - but you aren't adding instances of 
Windows Computer, you are adding instances of 
Windows!Microsoft.Windows.Server.Computer, which is "Windows Server" class.

In general I do not recommend modifying/extending the Windows Server class, or 
adding it to groups.  The Windows Computer is the class we want to extend and 
have groups contain, because Windows Computer pretty much hosts/contains all 
subsequent classes on an agent.

Therefore - I'd recommend you do something like this:


<ManagementPackFragment SchemaVersion="2.0" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
<!-- In this fragment you need to replace ##CompanyID##, ##AppName##, 
##ClassID## -->
<!-- In this fragment we create a group of Windows Computers that CONTAIN an 
instance of your custom class -->
<!-- This fragment depends on references:
            SC!                   =          Microsoft.SystemCenter.Library
            MSIL!    =          Microsoft.SystemCenter.InstanceGroup.Library
-->
  <TypeDefinitions>
    <EntityTypes>
      <ClassTypes>
        <ClassType ID="##CompanyID##.##AppName##.Computers.Group" 
Accessibility="Public" Abstract="false" 
Base="MSIL!Microsoft.SystemCenter.InstanceGroup" Hosted="false" 
Singleton="true" Extension="false" />
      </ClassTypes>
    </EntityTypes>
  </TypeDefinitions>
  <Monitoring>
    <Discoveries>
      <Discovery ID="##CompanyID##.##AppName##.Computers.Group.Discovery" 
Enabled="true" Target="##CompanyID##.##AppName##.Computers.Group" 
ConfirmDelivery="false" Remotable="true" Priority="Normal">
        <Category>Discovery</Category>
        <DiscoveryTypes>
          <DiscoveryRelationship 
TypeID="MSIL!Microsoft.SystemCenter.InstanceGroupContainsEntities" />
        </DiscoveryTypes>
        <DataSource ID="GroupPopulationDataSource" 
TypeID="SC!Microsoft.SystemCenter.GroupPopulator">
          <RuleId>$MPElement$</RuleId>
          
<GroupInstanceId>$MPElement[Name="##CompanyID##.##AppName##.Computers.Group"]$</GroupInstanceId>
          <MembershipRules>
            <MembershipRule>
              
<MonitoringClass>$MPElement[Name="Windows!Microsoft.Windows.Computer"]$</MonitoringClass>
              
<RelationshipClass>$MPElement[Name="MSIL!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
              <Expression>
                <RegExExpression>
                  <ValueExpression>
                    
<Property>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$</Property>
                  </ValueExpression>
                  <Operator>ContainsSubstring</Operator>
                  <Pattern>HOSTNAME</Pattern>
                </RegExExpression>
              </Expression>
            </MembershipRule>
          </MembershipRules>
        </DataSource>
      </Discovery>
    </Discoveries>
  </Monitoring>
  <LanguagePacks>
    <LanguagePack ID="ENU" IsDefault="true">
      <DisplayStrings>
        <DisplayString ElementID="##CompanyID##.##AppName##.Computers.Group">
          <Name>##CompanyID## ##AppName## Computers Group</Name>
        </DisplayString>
        <DisplayString 
ElementID="##CompanyID##.##AppName##.Computers.Group.Discovery">
          <Name>##CompanyID## ##AppName## Computers Group Discovery</Name>
          <Description>This discovery rule populates a group of Windows 
Computer Objects that contain a ##ClassID## instance</Description>
        </DisplayString>
      </DisplayStrings>
    </LanguagePack>
  </LanguagePacks>
</ManagementPackFragment>







From: [email protected]<mailto:[email protected]> 
[mailto:[email protected]] On Behalf Of Orlebeck, Geoffrey
Sent: Wednesday, June 29, 2016 12:24 PM
To: '[email protected]' 
<[email protected]<mailto:[email protected]>>
Subject: [msmom] Creating Groups in VSAE:

I am attempting (for the first time) to author a group via VSAE. I am 
attempting to just match on a hostname as a first step, but I haven't 
successfully populated the group. I also tried creating a group in the console, 
exporting the unsealed MP and following the logic without success.

I referenced these links:
https://blogs.technet.microsoft.com/kevinholman/2009/06/10/creating-custom-dynamic-computer-groups-based-on-registry-keys-on-agents/<https://urldefense.proofpoint.com/v2/url?u=https-3A__na01.safelinks.protection.outlook.com_-3Furl-3Dhttps-253a-252f-252fblogs.technet.microsoft.com-252fkevinholman-252f2009-252f06-252f10-252fcreating-2Dcustom-2Ddynamic-2Dcomputer-2Dgroups-2Dbased-2Don-2Dregistry-2Dkeys-2Don-2Dagents-252f-26data-3D01-257c01-257ckevin.holman-2540microsoft.com-257caf1738fc07dd425b503b08d3a0430c96-257c72f988bf86f141af91ab2d7cd011db47-257c1-26sdata-3DSTdqN2BetIGqEqi4BXmlfRGaPfuVQ7onkHg81c0t1jo-253d&d=CwMFAg&c=GtV7VYka8XzFJya76SH24R7OU_QKFTyBlklHoDMCjFY&r=WF1NZuUqAd1bRIxLFT_0w30F8M_M_gGEsQe-nOAcmCM&m=w4kOVshHc5Zs1_rXtq2b3Iy1pv2FrYBqtgXDujVFwjQ&s=i_SIB0XJQt3Zy-KXWYEKXwVA9on6DQM2bE2sJcy2aEA&e=>
http://blog.scomskills.com/create-a-computer-or-instance-group/<https://urldefense.proofpoint.com/v2/url?u=https-3A__na01.safelinks.protection.outlook.com_-3Furl-3Dhttp-253a-252f-252fblog.scomskills.com-252fcreate-2Da-2Dcomputer-2Dor-2Dinstance-2Dgroup-252f-26data-3D01-257c01-257ckevin.holman-2540microsoft.com-257caf1738fc07dd425b503b08d3a0430c96-257c72f988bf86f141af91ab2d7cd011db47-257c1-26sdata-3DVuZsKXSg9B62M-252fKPmNfBVcPwZc3W6s-252b7LVlv5G33K68-253d&d=CwMFAg&c=GtV7VYka8XzFJya76SH24R7OU_QKFTyBlklHoDMCjFY&r=WF1NZuUqAd1bRIxLFT_0w30F8M_M_gGEsQe-nOAcmCM&m=w4kOVshHc5Zs1_rXtq2b3Iy1pv2FrYBqtgXDujVFwjQ&s=pXCrkp8mAWuuay3KxknYdsq_uGjWnSvuCwdhcVJ_BeM&e=>
https://stefanroth.net/2013/11/11/scom-vsae-custom-dynamic-computer-groups-based-on-server-registry-keys/<https://urldefense.proofpoint.com/v2/url?u=https-3A__na01.safelinks.protection.outlook.com_-3Furl-3Dhttps-253a-252f-252fstefanroth.net-252f2013-252f11-252f11-252fscom-2Dvsae-2Dcustom-2Ddynamic-2Dcomputer-2Dgroups-2Dbased-2Don-2Dserver-2Dregistry-2Dkeys-252f-26data-3D01-257c01-257ckevin.holman-2540microsoft.com-257caf1738fc07dd425b503b08d3a0430c96-257c72f988bf86f141af91ab2d7cd011db47-257c1-26sdata-3DSd4Q37NYisACX-252fmUbZoAC30TQGIkqA4zZWbJ-252feF8iks-253d&d=CwMFAg&c=GtV7VYka8XzFJya76SH24R7OU_QKFTyBlklHoDMCjFY&r=WF1NZuUqAd1bRIxLFT_0w30F8M_M_gGEsQe-nOAcmCM&m=w4kOVshHc5Zs1_rXtq2b3Iy1pv2FrYBqtgXDujVFwjQ&s=brwskqeRr6wmfkwDoV_WjdX1w3fgXoFlIEAaxF9qNxA&e=>

Any help is appreciated. Thank you very much.

Sanitized MP Fragment:

<ManagementPackFragment SchemaVersion="2.0" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.w3.org_2001_XMLSchema&d=CwMFAg&c=GtV7VYka8XzFJya76SH24R7OU_QKFTyBlklHoDMCjFY&r=WF1NZuUqAd1bRIxLFT_0w30F8M_M_gGEsQe-nOAcmCM&m=w4kOVshHc5Zs1_rXtq2b3Iy1pv2FrYBqtgXDujVFwjQ&s=QjKOJiAhQpNjVknsroKAg47fUzLo4UQTy4KuGItfZ28&e=>">
  <TypeDefinitions>
    <EntityTypes>
      <ClassTypes>
        <ClassType ID="Test.Override.Group" Abstract="false" 
Accessibility="Public" Base="SC!Microsoft.SystemCenter.ComputerGroup" 
Hosted="false" Singleton="true" />
      </ClassTypes>
    </EntityTypes>
  </TypeDefinitions>
  <Monitoring>
    <Discoveries>
      <Discovery ID="Test.Override.Group.DiscoveryRule" Enabled="true" 
Target="Test.Override.Group" ConfirmDelivery="false" Remotable="true" 
Priority="Normal">
        <Category>Discovery</Category>
        <DiscoveryTypes>
          <DiscoveryRelationship 
TypeID="MSIL!Microsoft.SystemCenter.InstanceGroupContainsEntities" />
        </DiscoveryTypes>
        <DataSource ID="GroupPopulationDataSource" 
TypeID="SC!Microsoft.SystemCenter.GroupPopulator">
          <RuleId>$MPElement$</RuleId>
          
<GroupInstanceId>$MPElement[Name="Test.Override.Group"]$</GroupInstanceId>
          <MembershipRules>
            <MembershipRule>
              
<MonitoringClass>$MPElement[Name="Windows!Microsoft.Windows.Server.Computer"]$</MonitoringClass>
              
<RelationshipClass>$MPElement[Name="MSIL!Microsoft.SystemCenter.InstanceGroupContainsEntities"]$</RelationshipClass>
              <Expression>
                <RegExExpression>
                  <ValueExpression>
                    
<Property>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/NetbiosComputerName$</Property>
                  </ValueExpression>
                  <Operator>ContainsSubstring</Operator>
                  <Pattern>HOSTNAME</Pattern>
                </RegExExpression>
              </Expression>
            </MembershipRule>
          </MembershipRules>
        </DataSource>
      </Discovery>
    </Discoveries>
  </Monitoring>
  <LanguagePacks>
    <LanguagePack ID="ENU" IsDefault="true">
      <DisplayStrings>
        <DisplayString ElementID="Test.Override.Group">
          <Name>Test Override</Name>
          <Description>Searches for 'Windows Server Computer' matching 
"HOSTNAME".</Description>
        </DisplayString>
        <DisplayString ElementID="Test.Override.Group.DiscoveryRule">
          <Name>Discovery rule populates "Test Override" group.</Name>
        </DisplayString>
      </DisplayStrings>
    </LanguagePack>
  </LanguagePacks>
</ManagementPackFragment>
Confidentiality Notice: This is a transmission from Community Hospital of the 
Monterey Peninsula. This message and any attached documents may be confidential 
and contain information protected by state and federal medical privacy 
statutes. They are intended only for the use of the addressee. If you are not 
the intended recipient, any disclosure, copying, or distribution of this 
information is strictly prohibited. If you received this transmission in error, 
please accept our apologies and notify the sender. Thank you.





Reply via email to