NickolajA / ConfigMgrWebService

48 stars 35 forks source link

[Request] Add SetDataDiscoveryRecord / GetDataDiscoveryRecord #22

Open CDLeber opened 5 years ago

CDLeber commented 5 years ago

Added web method SetDataDiscoveryRecord and GetDataDiscoveryRecord. Allows to set custom discovery data.

For example: Operating System Name and Version = “Contoso Windows 10 1903”

OSD Collection Query: select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System where SMS_R_System.OperatingSystemNameandVersion = " Contoso Windows 10 1903"

After the client sends the heartbeat, It will automatically fall out of the OSD install collection

https://docs.microsoft.com/en-us/sccm/develop/core/servers/configure/how-to-create-a-data-discovery-record

That would be very helpful

ChadSimmons commented 4 years ago

Just curious, you "inject" a non-standard value into the computer's DDR data to remove the computer from a collection because the collection membership rule relies on a standard value? That's a neat trick. Does the DDR "correct" the value when it runs on its normal cycle? If so wouldn't the computer become a collection member again?

CDLeber commented 4 years ago

When a new Device object is created, the Operating System Name and Version field is empty. Because, this field will be set with the first DDR data. So, for the OSD staging process we have a own interface. Through this interface we create a new Device object with the MAC address and our own Operating System Name

image image

When the OSD Staging is finished, in one of the first steps, the client will send his Operating System Name and Version e.g. “Microsoft Windows NT Workstation 10.0” . This data overwrites our own “Operating System Name and Version” custom field and the client is removed from the OSD Staging Collection.

With this method, you have the ability to create your own Discover Data Record for each Device; such as Location, Role etc.

image