ldms_client manual
How to use ldms_client
Table of Contents
OverviewExecution details
Installation
Uninstallation
Database Schema Modification
Inventory Collection Configuration
Overview
ldms_client.exe runs as an inventory extension on Windows clients, gathering additional information for use in inventory. Its configuration is read at runtime from a configuration file on the core server. That configuration file is produced and edited with the ldms_client_core.exe program. ldms_client_mac is the equivalent for Macintosh.
This structure allows administrators to turn "extra" inventory scanning components on and off throughout the environment on an as-needed basis. If a value is unchecked at the core, the clients will quit sending it and that data point will disappear from the inventory.
Execution details

Windows: LANDesk's ldiscn32.exe reads ldscnhlp.ini and sees it's supposed to launch ldms_client.exe. ldms_client.exe uses LANDesk's sdclient.exe to pull down ldms_client.ini from the core, reads what it should scan, and scans for it. It then deletes the local copy of ldms_client.ini and writes the scan results into ldms_client.dat, which ldiscn32.exe reads and sends to the core as part of its inventory update. To complicate matters, some things that ldms_client.exe scans for need to run as local user, so it may use the LANDesk startasuser.exe utility to launch ldms_client_regreader.exe. Logging is written to ldms_client.log in the LDClient directory.
Macintosh: LANDesk's ldcron launches ldms_client_mac whenever you tell it to. ldms_client_mac uses LANDesk's sdclient to download ldms_client.ini from the core, reads what it should scan, and scans for it. It then deletes the local copy of ldms_client.ini and writes the scan results into ldms_client.xml, which LANDesk's ldscan reads and sends to the core as part of its inventory update. ldscan runs every four hours and on IP address change, by default, so it's advisable to run ldms_client_mac on a similar schedule if data is to be updated. Logging is written to ldms_client.log.
Installation
- Run the downloaded ldms_client_setup.exe installer program on your core; this will install ldms_client.exe, ldms_client_regreader.exe, ldms_client_core.exe, a modified LDSCNHLP.INI, and ldms_client.bat to your core. If you edit the LDSCNHLP.INI file, be careful about numbering... DATA lines and DATANOPREPEND lines are numbered separately, and if both lists don't begin with 1, the .dat files won't be consumed.
- Run ldms_client_core.exe for initial configuration. Make your choices and click OK to save the configuration file at \\$CORENAME\ldlogon\ldms_client.ini. Additional changes can be made by running Start > All Programs > Monkeynoodle > ldms_client > Configure ldms_client.
- Use LANDesk Management Suite to distribute the downloaded ldms_client_node_install.exe to your clients. This is an .exe that silently installs ldms_client.exe, ldms_client_regreader.exe, and ldscnhlp.ini to the LDClient directory. There is no associated uninstallation or ability to customize the ldscnhlp.ini that is sent, unless you'd like to modify the .nsi file (see the %Program Files%/Monkeynoodle/ldms_client/ldms_client_sources.zip file if you're willing and able to do so).
Uninstallation
To remove ldms_client from the core, go to Start > All Programs > Monkeynoodle > ldms_client > Uninstall, or use the Control Panel Add/Remove Programs facility.Removal from clients is not automated, because of the potential complexities around restoring a properly configured ldscnhlp.ini. A default file should be available in ldlogon, and a batch file like this should be all you need.
@ECHO OFF DEL /Q /S "%PROGRAMFILES%\LANDESK\LDCLIENT\ldms_client*" XCOPY /Q /Y "\\CORENAME\LDLOGON\LDSCNHLP.INI" "%PROGRAMFILES%\LANDESK\LDCLIENT\LDSCNHLP.INI"
Database Schema Modification
A database schema is the map of the database; it's how programs know where to read and write data from. LANDesk's database has an extremely clever trick available to it, which allows it to extend that map on the fly. If you send it data that it doesn't know how to map, it will figure out what you wanted and make it happen. For instance, if you add "Foo"."Bar" = "Baz" to an inventory scan, it will reason that you must want to assign Baz to a value named Bar, which is under an object named Foo. So it takes the data, puts together a attribute relationship, and stores it all in the UNMODELEDDATA tables.
By default, much of the data that ldms_client provides is unmodeled... after all, if it were modeled that would mean that LDMS was already gathering it, and ldms_client wouldn't need to. If you just need ldms_client temporarily, this is fine. For example, if you're just trying to quickly ascertain license compliance or force Dell WoL into a known state, you probably don't want to make a permanent change to your database.
On the other hand, performance of unmodeled data is potentially very poor, especially as the number of nodes reporting it goes up. That means that if you're using some of ldms_client's features as a permanent part of your inventory, you'll want to model the data. To do so, you should run Start > All Programs > Monkeynoodle > ldms_client > Configure ldms_client, and click the Commit Schema button. Doing so will present a warning message:
This process will involve at least some level of restarting your inventory service, deleting stored data, and rebooting your core, so be prepared. Most importantly, you should not click yes until you've got a database backup that you can restore from.
If it's the first time you've done this, ldms_client_core will open a browser pointing to LANDesk DOC 2538, and it will suggest that you read it.
It will then ask if you're ready to stop inventory and launch dbrepair (assuming dbrepair is available, otherwise you'll be told to go download it). You should wait for dbrepair to arrive on your screen; I've seen it take up to 10 minutes to do so when the database is chock-full of unmodeled data.
The dbrepair utility shows you what's in your unmodeled data tables, and gives you the ability to delete the data and the relationship mappings. This isn't strictly necessary, except that you won't see the performance benefit of switching to modeled data if you leave your unmodeled data in place. To remove unmodeled data, navigate to the desired node, then click Clean. The recommended procedure at this point is to delete the unmodeled data from these ldms_client produced nodes:
- Battery > Internal Battery
- Battery > Portable Battery
- Custom Data > HKCU > Network
- Netstat
- Mass Storage
- Email
When you've finished, close dbrepair.exe and return to ldms_client_core.
Clicking Yes on this dialog will copy the ldms_client.xml file describing the schema changes that need to be made into LDMAIN, then run coredbutil /buildcomponents /xml=ldms_client.xml. This should take a minute or two (for comparison's sake, coredbutil's schema upgrading activity is what takes all the time in a LANDesk Service Pack installation). LDMAIN\Coredbutil.exe.log will have the results of its run; don't be alarmed at ALTER TABLE conflict errors, but do be alarmed at INCORRECT SYNTAX errors.
When the task is completed, your inventory service will be restarted. Click Okay to exit ldms_client_core.exe; if you click Cancel, your database will still be modified, but Mass Storage attributes will not use modeled data.
At this point, LANDesk recommends a core reboot; it's not entirely necessary, but it's not a bad idea either. You will be gathering modeled data from here on whether you reboot or not.
Inventory Collection Configuration
For a detailed listing of the inventory items gathered, as well as their storage locations in the LANDesk inventory tree, see ldms_client collection
| Screen | Configures | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |
|
| screen | Configures | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |
|
| screen | Configures | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |
|
| screen | Configures | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |
|
ldms_client_core command line switches
| switch |
does |
|---|---|
| /d(ebug) | Used to turn on debugging mode. All events are logged in the Windows Event Viewer. -d or --debug will also work. |
| /h(elp) | Simple usage information. -h or --help too. |
ldms_client command line switches
| switch |
does |
|---|---|
| /d(ebug) | Use -d to turn on debugging mode. All events are logged in ldms_client.log in %PROGRAM FILES%\LANDesk\LDClient. This file is overwritten with every run. |
| /h(elp) | Simple usage information. -h or --help too. |