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 isn't 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 |
---|---|---|
DISCOVERY_FLAG_FULL_REPLACE DISCOVERY_FLAG_LOW_CONFIDENCE |
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, 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. |
GUID
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 shouldn't change from discovery to discovery, it's 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's meaningful only if the architecture hasn't 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.
Important
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're 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's 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 isn't 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's 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's 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 can't 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 doesn't 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 shouldn't 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.