About DDR Properties

In Configuration Manager, the architecture for a resource is defined in both the database and the data discovery record (DDR). If the architecture is not defined in the database, the definition is created from the setting in the DDR.

The architecture definition consists of properties and their types, maximum lengths, and flag settings. Some flag settings can be taken only from the architecture definition in the database, some can be overwritten by settings in the DDR, and others are taken only from the DDR. Even flags that can be set only in the DDR have meaning in the architecture definition in the database because these are used to set the flags on the DDRs that are replicated to a site's parent. These replicated DDRs are sent up when an incoming DDR is processing and are the combination of the incoming DDR and the resource stored in the database.

Property Flags

Name Value Description
0x00000001 Replace all array values with those from the DDR. Set only the scalar value if the value is null.
DISCOVERY_FLAG_GUID 0x00000002 Configuration Manager unique ID, usually specified in the database.
DISCOVERY_FLAG_KEY 0x00000008 A key property, which if present, uniquely identifies the item.
DISCOVERY_FLAG_ARRAY_PROP 0x00000010 The property is an array property.
DISCOVERY_FLAG_NAME_PROP 0x00000040 The property should be used as the item name, if present.
DISCOVERY_FLAG_NAME2_PROP 0x00000080 The property should be used as the item description.
DISCOVERY_FLAG_FIRST 0x00010000 First choice for the name.
DISCOVERY_FLAG_SECOND 0x00020000 Second choice for the name.
DISCOVERY_FLAG_THIRD 0x00040000 Third choice for the name.
DISCOVERY_FLAG_FOURTH 0x00080000 Fourth choice for the name.
DISCOVERY_FLAG_FIFTH 0x00100000 Fifth choice for the name.


The GUID (or SMSUID) definitively identifies a resource. If it exists in the DDR, it alone is used to match the DDR to a record in the database. Because the value of this property for a particular resource should not change from discovery to discovery, it is an artificial value that is generated by the client. The GUID property is always taken from the architecture definition in the database. As a result, if this flag is set for a property in a DDR, it is meaningful only if the architecture has not been created yet. For the System architecture, the GUID is the string property "SMS Unique Identifier".

Prior to SMS 2003 SP1, changes were allowed to records if a DDR arrived with a new GUID but with the same key properties. As of SMS 2003 SP1, this changed—a new GUID generates a new record even if the key properties remain the same.


GUIDs are case insensitive; however, the case should never vary after the GUID has been submitted to the database. GUID processing issues will arise, if the GUID changes case.

Key Properties

Key properties are physical properties that individually can be used to uniquely identify a resource. Because they are physical properties, they might be subject to change. For this reason, in addition to the fact that not all discovery agents can discover a particular property, an architecture should have several key properties. The key property setting is taken from the DDR, not the architecture definition in the database. For the System architecture, the key properties are "MAC Addresses" and "NetBIOS Name".

Array Properties

A property can have either a single (scalar) value or multiple (array) values. The array flag in the DDR should match the architecture definition.

Full Replace and Low Confidence

The meaning of this flag depends on whether the property is a scalar property or an array property. If it is a scalar value and this flag is set in the DDR, the DDR value should overwrite the database value only if the database value is null (not set). Usually, the value in the DDR overwrites the value in the database. If the property is an array property, the set of values in the DDR should fully replace the values in the database. Typically, the values in the DDR are added to the set of values in the database. This flag setting varies from discovery agent to discovery agent and is taken from the DDR. One example of this is the IP Addresses property reported by Network Discovery. Because Network Discovery might not be able to discover all the IP addresses for a computer, the Full Replace flag is not set in its DDR.

Name Flags

Each resource has an auto-generated name property called Name, which is generated by the Data Discovery Manager (DDM). This property is used as the display name of the resource and shows up as the name in the collection membership. If a Name property exists in the DDR, it is overwritten. The Name property is selected from the first non-null DDR property with the Name flag set. The properties are tried in the order according to the ordering flags. Each name candidate property should have both the Name flag and an ordering flag set. If a Name2 flag is set, it is taken as the description and appended to the Name property in parentheses: "<name> (<name2>)". The name flags are taken from the architecture definition but can be overwritten in the DDR. The DDR is rejected as corrupt if the Name property cannot be populated. The name properties for the System architecture in order of preference are "NetBIOS Name", "Resource Names", "IP Addresses", and "MAC Addresses".

Property Type, Property Length, and Property Value

Property Type

The property type defines the data type of the property. Each property type can be either a scalar or an array property. Currently used and accepted ones are:

  • Integer: 8
  • String: 11
  • Date/Time: 12

The property type in the architecture must match the type in the DDR.

Property Length

The length setting is only applicable to string properties and represents the maximum length of the string. The value in the DDR permanently overrides the value in the architecture definition. Therefore, if this setting does not match, it permanently changes the architecture definition.

Property Value

The property value should be represented in string format. Numbers should be represented in base 10 and contain no non-numeric characters. Dates should be formatted as "MM/DD/YY HH:MM:SS". If the property value is null, it should be set to the string "(null)". The value for a string should not exceed the maximum length.

Special System Properties

Operating System Name and Version

This property is used by the DDM to determine when to generate a client configuration request (CCR) for push client installation. The property takes the format of "<operating system name> <operating system version>". The operating system name should be the common name of the operating system, not the name of the release ("Windows NT" instead of "Windows 2000" or "Windows XP"). The recognized operating system names for push installation are "Microsoft Windows NT Server" (servers products), "Microsoft Windows NT Workstation" (workstation products), and "Microsoft Windows NT Advanced Server".

Client Type

Client type 1 is the Configuration Manager client type.