다음을 통해 공유


$Target

Applies To: Operations Manager 2007 R2, System Center Operations Manager 2007

The $Target variable notation refers to the targeted class type of a monitoring object and allows for runtime access of the targeted class type.

$Target/Host/Property[Type=” Name of class ”]/PropertyName$

Remarks

Within an instance of a monitoring object, such as rule or a unit monitor, the $Target variable can retrieve data from its target class type. The target class type is the value of the Target attribute of an element that defines a Management Pack element type. For example, a rule that must groom a database nightly at midnight is targeted at the class that hosts the databases. When you create the rule that will groom the databases, you will not know the name of the SQL Server that hosts the database or even the names of the databases that must groomed. Therefore, you can use the $Target variable to retrieve this information at run time.

The $Target variable is also used in a type projection Component element to refer to the target of a relationship type definition.

Syntax Section Description

$Target

The name of the variable you need to use.

Type=ID of ClassType

The value of ID attribute of the class type that is the target of this Management Pack element. This can be the value of the Target attribute of this Management Pack element or a class that hosts the target of this Management Pack element.

Relationship=ID of RelationshipType

The value of ID attribute of the relationship type in the type projection element.

SeedRole=ID of RelationshipType

Defines what role the seed element should play in the relationship hierarchy in a type projection. Can be one of two values: “Target” or “Source”. If “Source” is specified, the SeedRole element is the source of the relationship. If “Target is specified, the SeedRole element is the target of the relationship.

TypeConstraint=ID of RelationshipType

The value of the ID attribute of a class type instance referred to in a type projection element. Used to restrict the element to class type derivations.

PropertyName

Name of the property whose value you want to retrieve.

Host

Use if the class type in the class name section is the host of the target class.

Property

Use if you are naming a property of the class type named in the class name section.

Path

Use if you are referring to the target of a relationship type definition in a type projection definition.

The following example instructs Operations Manager to find the FQDN, which is the value of the NetworkName property, for each instance of the target class of the monitoring object you are creating.

<ComputerName>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName

The following example retrieves the value of the NetworkName property for all instances of the class that hosts the target class. The hosting class is the Computer class that is defined in the Microsoft Windows Library.

$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$

You can retrieve a property value from a class all the way up the hosting tree. You specify how high to go simply by adding another host. For example, if you wanted a value from a computer class that hosts a server class that hosts a database server class that hosts the database, use the following syntax:

$Target/Host/Host/Host/Property

If the discovery is targeted at a class hosted two levels above the computer, the Host section of the syntax must be specified twice, as in $Target/Host/Host. Use the following syntax to retrieve the value of the NetworkName property from the hosting class that is two levels above the current class:

<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>

The value retrieved by the $Target variable can also be appended to text. The following syntax prepends SqlServer to the name of each instance of a discovered object:

 <InstanceName>SqlServer$Target/Property/SQLInstanceName$</InstanceName>

The final sample illustrates how to refer to a relationship path within a hierarchy tree for a type projection element. In this case, each target notation refers to the Target element in the specified relationship. For the Reviewer element, the relationship type is the System.ReviewActivityHasReviewer relationship type of which System.Reviewer is the target. For the User element, the relationship type is the System.ReviewerIsUser relationship type of which System.User is the target.

<TypeProjection ID="System.WorkItem.Activity.ReviewActivityViewProjection" Accessibility="Public" Type="CoreActivity!System.WorkItem.Activity.ReviewActivity">
  <Component Alias="Reviewer" Path="$Target/Path[Relationship='CoreActivity!System.ReviewActivityHasReviewer']$">
    <Component Alias="User" Path="$Target/Path[Relationship='CoreActivity!System.ReviewerIsUser']$" />
  </Component>
</TypeProjection>