Personal tools
You are here: Home Inventory and SLM ldms_client ldms_client manual

ldms_client manual

by jack — last modified 2009-06-16 09:25

How to use ldms_client

Table of Contents

Overview

 

Execution 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

dataflow.png

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

  1. 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.
  2. 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.
  3. 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:

commit schema warning.png

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.

dbrepair

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.

coredbutil confirmation

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
   
 ldms_client_regreader-screenshot.PNGldms_client_core users tab
Item Does
Find Microsoft Outlook PST Files
Record the size and location of all PST files, as well as total size.
Find Microsoft Outlook OST Files
Record the size and location of all OST files, as well as total size.
 Find Lotus Notes NSF Files Record the size and location of all NSF files, as well as total size.

Email search
 This slider alters the behavior of PST and NSF file searching; three configuration levels are supported.
1) Search only the default email storage locations.
2) Search all directories in all user profiles.
3) Search the entire system drive.
Report on mapped drives
Lists currently mapped (as in with a drive letter, not just connected via UNC) network drives for the logged in user. Requires ldms_client_regreader.exe. ldms_client.exe passes a temporary file of possible mapped drive letters to a child program, which is called under the startasuser.exe wrapper to read the registry under the currently logged in user's rights. The temporary file (mdtemp.txt) may be left behind if things go sideways or you're in debug mode.

Collect Registry Keys from HKCU
Requires ldms_client_regreader.exe. ldms_client.exe passes a temporary file of registry keys to a child program, which is called under the startasuser.exe wrapper to read the registry under the currently logged in user's rights. The temporary file (rrtemp.txt) may be left behind if things go sideways or you're in debug mode.
Configure Registry Keys Button
Select up to 10 keys from the HKCU which should be read into LANDesk inventory.
screen Configures
 ldms_client_core system tab
ldms_client_reginfo-screenshot.PNG
Item Does
LANDesk Policy List
Resolve name and status of LANDesk policies which apply to the client, from the client's point of view. Crucial for troubleshooting policy-based software delivery. This supports the new 8.8 style policies as well as the older AMCLIENT.EXE based policies. For more information, see Did my policies work?

LANDesk Client Information
Record LANDesk Gateway Broker Configuration Mode. This is based on the Automate Laptop Remote Control Mode document, but gathers information only, and does not look at the remote control component (that data is already gathered by default and stored at "Computer"."LANDesk Management"."Remote Control"."Type").

Resolve Domain Members in Local Groups
Based on extendinv.vbs, this used locally cached information in the computer's SAM to report the names of domain accounts or groups which are members of local groups. For example, if your Local Domain Administrators Group has DOMAIN\Domain Administrators as a member, that will be reported instead of the object SID.

Collect Microsoft Product Keys (requires produkey.exe)
If produkey.exe version 1.26 or better can be located, this option causes ldms_client.exe to gather product keys and report them. A temporary .CSV file is created in the ldclient directory during the scan, and may be left behind if something goes awry.

Path to produkey.exe
If produkey.exe is not located in ldclient, you can specify its location with this option. This allows you to send produkey.exe as a managed script file transfer task, run it from sdmcache, and let it expire away when you're done. Note that you can put produkey.exe on a network drive and run it from there instead of distributing it.
Collect Registry Keys from HKLM
Does not require ldms_client_regreader.exe. This is arguably a replication of the functionality in LDAPPL3.INI, but it's easier to configure, and supports non-string information (REG_BINARY and REG_DWORD values are converted to strings).

Configure Registry Keys Button
Select up to 10 keys from the HKLM which should be read into LANDesk inventory.
Collect Machine SIDs
Vaguely related to this article... reports the Machine SID. "Short SIDs" aren't reported, as they're likely to be one of these. Also reports the machine's current Fully Qualified Domain Name.
screen Configures
 ldms_client_core hardware tab
Item Does
Battery Information
Gather installed battery information through WMI. LANDesk clients already can report some battery information on some types of hardware; however, this is very hardware, OS, and driver dependent. WMI is hardly perfect either, but between the two methods, you stand a better chance of finding that recalled battery before it bursts into flame.
Netstat Information
Record listening ports per netstat output. This toggles the inventory extension for Windows clients only; Macintosh clients use the Macintosh extension further down.

NIC Duplex Information
Gather NIC Duplex and Wake on LAN information from WMI. This is very driver dependent and at least moderately unreliable, but it's the best that can be done in an infrastructure provided by hardware vendors via WMI. Dell shops may be better served by the DCCU wrapper, though it's more of a performance impact.
Collect Dell Wake on LAN status (requires getwol.exe)
If you have Dell Client Configuration Utility, you can use it to generate a program named getwol.exe which will check the current status of the BIOS's Wake On LAN features. ldms_client.exe will lauch the program if necessary, or simply read its output file if that is found and report the status to LANDesk.

Path to getwol.exe
If getwol.exe is not located in ldclient, you can specify its location with this option. Note that the 3.x versions of DCCU provide a binary that does the same thing, named inventory.exe. Specifying that binary in this field will produce accurate results. This allows you to send the DCCU information gathering program as a managed script file transfer task, run it from sdmcache, and let it expire away when you're done.
Report number of crashes within the last week
Reads the system event log looking for event id 6008 from eventlog... these are generated when the system recovers from an unexpected shutdown. Only events within the last 7 days are reported, and only the number of events is reported. To see individual events, you'll have to connect to the machine.

Report on drive fragmentation
Uses Windows defrag utility's analysis-only mode to report system disk fragmentation level; you can then use a query to schedule ldms_client's defrag.bat (see %programfiles%\monkeynoodle\ldms_client on your core) as a policy.

Report SMART status of hard drives?
Returns failure prediction and reason code to the LDMS Inventory. Note that this is separate from LANDesk's own monitoring of those features; if you're using LDMS monitoring and alerting, this may not be necessary.
screen Configures
 ldms_client_core general tab

Item Does
Extend Macintosh Inventory
Enable Macintosh inventory extensions.
Configure Mac Inventory
Select which Mac inventory extensions to enable.
Macintosh Netstat Information: collects listening ports from the client
Optical Drive Information: collects CD and DVD drive information from System Profiler
Should it silently exit if launched without admin rights?
Because ldms_client.exe pulls information from WMI and the registry (not to mention hunting around the hard drive for other goodies), it can have permissions problems. Every attempt is made to fail gracefully, but in some cases it can crash after being denied. If your users are more strictly locked down than the usual, but you're still showing them the LANDesk Management program group, this will prevent a crash in the event that someone runs a LANDesk inventory scan from the start menu.
 OK Button  Write configuration file to //$CORE/ldlogon/ldms_client.ini
Cancel Button
Exit and do not save changes
Commit Schema Button
Alter the LANDesk Management Suite Schema. This is not without risk, but greatly increases database performance. See Database Schema Modification
Help Button
Launch this page in the web browser

 

 

 

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.

 

Server Says:
Work expands to fill the time available.
-- Cyril Northcote Parkinson, "The Economist", 1955
Safety First!
238 Days without a Dumpster fire.
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: