Hello Team, does anybody know if it is possible to set a userAttribute via csv file directly into the device registry? Under Library -> Attributes I have created an userAttribute and ticked the box "Store for Device". The Help File says: Check Store for Device if you want the Device Attribute information to be stored on the device and not on the hard drive of the MSP server. This saves space on the server. If a server is communicating with a large amount of devices with many device attributes, the disk space may become significant. I am assuming that an userattribute can be stored on the device in that way. But it is not working. Any ideas or do I missunderstand this functionallity? Thomas
MSP3.2 / Setting User Attributes on devices// Expert user has replied. |
2 Replies
"Store for Device" means "do we store the value in the MSP Database, attached to the device record?" - and it should almost always be set to TRUE. But it does NOT mean that the value in the database is sent to the device. Looks like documentation could be more clear on this - sorry for the confusion. Attribute values flow only one way - from the device to the server/database. It is possible to send a package to a device that results in creation of an attribute on the device, and that will cause the device to send in the attribute name/value pair. Check out the discussion in the 3.2.1 User Guide called "Device Attribute Origins". The short version of that discussion is this: If you want an attribute to exist only in the Database, and not be changed by the terminal, then import it into the database by Attribute.. Upload. But if you want a value to be in the database AND on the terminal, put the attribute on the terminal and let it send that attribute in to the database. Then if the attribute changes on the terminal, the new value will be sent to the database on the next check in. So the next natural question may be "OK, then how do I get an attribute value downloaded to the terminal?". The generic answer is to do something - anything - that causes a key to be inserted in the terminal's registry under HKLM/SOFTWARE/MSP/Attributes, like this: [HKEY_LOCAL_MACHINE\SOFTWARE\MSP\Attributes] "assetName"="myMC50" The mere fact that the key name/key value pair appears in this section of the device registy will cause it to be reported as an attribute name/value pair by the MSP agent. You can (1) insert such a key by hand if you have a registry editor, or (2) deploy a .reg file containing the key setting, or (3) write a program to run on the terminal and insert the key and set its value. You can also (4) create an Attribute Setting object in MSP and deploy that, but remember only one such setting can be in effect at any one time. My favorite methods are (2) and (3) because I can deploy as many such attributes as I want to a terminal. If you want to deploy the same attribute value to a lot of terminals, methods (2) and (4) work fine except if you use (4) to deploy another attribute tomorrow, it will remove the one you deployed today. If you want to deploy different attribute value to each of a lot of terminals, then in the current versio of MSP you will need to come up with a method of delivering a different package to each terminal OR you may be able to write a program that will generate a different value for each of the terminals when it runs on them, say by doing a lookup or calculation based on something unique about the terminal like its WLAN mac address. Hope this is helpful, and not just more confusing.
Hi Larry, thanks for the detailed explanation. I stumbled on the "Store on Device" checkbox during attribute creation in MSP (library -> attribute) that confused me. Thomas