Chat now with support
Chat with Support

KACE Systems Management Appliance 9.1 Common Documents - Administrator Guide

About the KACE Systems Management Appliance (SMA) Getting started
Configuring the appliance
Requirements and specifications Power-on the appliance and log in to the Administrator Console Access the Command Line Console Tracking configuration changes Configuring System-level and Admin-level General Settings Configure appliance date and time settings Enable Two-Factor Authentication for all users Verifying port settings, NTP service, and website access Configuring network and security settings Configuring Agent settings Configuring session timeout and auto-refresh settings Configuring locale settings Configuring the default theme Configure data sharing preferences About DIACAP compliance requirements Configuring Mobile Device Access Enable fast switching for organizations and linked appliances Linking Quest KACE appliances Configuring history settings
Setting up and using labels to manage groups of items Configuring user accounts, LDAP authentication, and SSO Using Replication Shares Managing credentials Configuring assets
About the Asset Management component Using the Asset Management Dashboard About managing assets Adding and customizing Asset Types and maintaining asset information Managing Software assets Managing physical and logical assets Maintaining and using manual asset information Managing locations Managing contracts Managing licenses Managing purchase records
Setting up License Compliance Managing License Compliance Setting up Service Desk Configure the Cache Lifetime for Service Desk widgets Creating and managing organizations Importing and exporting appliance resources
Managing inventory
Using the Inventory Dashboard Using Device Discovery Managing device inventory
About managing devices Features available for each device management method About inventory information Tracking changes to inventory settings Managing inventory information Finding and managing devices Provisioning the KACE SMA Agent Manually deploying the KACE SMA Agent Using Agentless management Adding devices manually in the Administrator Console or by using the API Forcing inventory updates Managing MIA devices Obtaining Dell warranty information
Managing applications on the Software page Managing Software Catalog inventory
About the Software Catalog Viewing Software Catalog information Adding applications to the Software Catalog Managing License assets for Software Catalog applications Associate Managed Installations with Cataloged Software Using software metering Using Application Control Update or reinstall the Software Catalog
Managing process, startup program, and service inventory Writing custom inventory rules
Deploying packages to managed devices
Distributing software and using Wake-on-LAN Broadcasting alerts to managed devices Running scripts on managed devices Managing Mac profiles Using Task Chains
Patching devices and maintaining security
About patch management Subscribing to and downloading patches Creating and managing patch schedules Managing patch inventory Managing Dell devices and updates Maintaining device and appliance security
Using reports and scheduling notifications Monitoring servers
Getting started with server monitoring Working with monitoring profiles Managing monitoring for devices Working with alerts
Using the Service Desk
Configuring Service Desk Using the Service Desk Dashboard Managing Service Desk tickets, processes, and reports
Overview of Service Desk ticket lifecycle Creating tickets from the Administrator Console and User Console Creating and managing tickets by email Viewing tickets and managing comments, work, and attachments Merging tickets Using the ticket escalation process Using Service Desk processes Using Ticket Rules Run Service Desk reports Archiving, restoring, and deleting tickets Managing ticket deletion
Managing Service Desk ticket queues About User Downloads and Knowledge Base articles Customizing Service Desk ticket settings Configuring SMTP email servers
Maintenance and troubleshooting
Maintaining the appliance Troubleshooting the KACE SMA
Appendixes Glossary About us Legal notices

Add devices manually with the Administrator Console

Add devices manually with the Administrator Console

You can add devices to the KACE SMA inventory manually by entering device information on the Device Detail page.

Once created, manual records are not touched or modified by the KACE SMA or Agents. Subsequently, the fields in a manual record can only be updated manually by an administrator.

1.
Go to the Devices list:
a.
Log in to the KACE SMA Administrator Console, http://KACE_SMA_hostname/admin. Or, if the Show organization menu in admin header option is enabled in the appliance General Settings, select an organization in the drop-down list in the top-right corner of the page next to the login information.
2.
Select Choose Action > New > Manual Device to display the Device Detail page.
Under Import device.xml, click Choose File to find and import an XML file that includes device inventory information. See Valid XML schema for Windows and Upload an XML file using the Administrator Console.

In the Summary section, enter a Name for the device, then skip to step 10.

In the Summary section, provide the following information:

Item

Description

Database field

Name

The hostname or IP address of the device.

NAME

System Description

A description of the device.

SYSTEM_DESCRIPTION

Model

The device model.

CS_MODEL

Chassis Type

The type of device, such as desktop or laptop.

CHASSIS_TYPE

IP Address

The IP address of the device.

IP

MAC

The device’s Media Access Control (MAC) address number.

MAC

OS Name

The operating system of the device, such as Windows, Mac OS X, or Linux.

OS_NAME

Service Pack

The service pack version number (Windows only).

SERVICE_PACK

Device Timezone

The KACE SMA Agent installed on the device uses this timezone.

TZ_AGENT

User

A user associated with this device.

USER

Domain

The domain of the device.

CS_DOMAIN

Notes

Any additional information you want to provide.

NOTES

4.
In the Hardware section, provide the following information:

Item

Description

Database field

RAM Maximum

The maximum amount of random-access memory (RAM) available.

RAM_MAX

Manufacturer

The device manufacturer.

CS_MANUFACTURER

CSP ID Number

Information used to identify the device.

BIOS_SERIAL_NUMBER

Asset Tag

Information used to identify device hardware.

ASSET_TAG

Motherboard Primary Bus

The main bus.

MOTHERBOARD_PRIMARY_BUS

Motherboard Secondary Bus

The peripheral bus.

MOTHERBOARD_SECONDARY_BUS

Processors

The CPU count, type, and manufacturer.

PROCESSORS

Architecture

The architecture of the device operating system, such as x86 or x64.

SYS_ARCH

Virtual Device

Used to identify devices that are virtual, such as devices running on VMware platforms. Not displayed for physical devices, such as laptops and servers.

VIRTUAL

CD/DVD Drives

The configuration of CD-ROM and DVD-ROM drives installed on the device.

CDROM_DEVICES

Sound Devices

Information about audio devices on the device.

SOUND_DEVICES

Monitors

The type and manufacturer of the monitor attached to the device. This field is not displayed for virtual devices.

MONITOR

Video Controllers

Information about video controllers on the device.

VIDEO_CONTROLLERS

BIOS Name

The BIOS name.

BIOS_NAME

BIOS Release Date

The date the BIOS version was released.

BIOS_RELEASE_DATE

BIOS Version

The BIOS version.

BIOS_VERSION

BIOS Manufacturer

The BIOS manufacturer.

BIOS_MANUFACTURER

BIOS Description

The BIOS description.

BIOS_DESCRIPTION

BIOS Identification Code

The BIOS identification code.

BIOS_IDENTIFICATION_CODE

BIOS Serial Number

The BIOS serial number.

BIOS_SERIAL_NUMBER

5.
In the Printers section, specify printer information related to the device.
6.
In the Agent section, specify the version number of the KACE SMA Agent installed on the device.
7.
In the User section, provide user information.

Item

Description

Database field

User Logged

The user currently logged in to the device. This entry includes the username and the domain to which the user belongs.

USER_LOGGED

User Fullname

The full name of the user who owns the device.

USER_FULLNAME

User Domain

The domain to which the user belongs.

USER_DOMAIN

Last User

The name of the most recent user who logged in to the device. Some devices might have multiple users.

USER

8.
In the Operating System section, provide information about the operating system installed on the device.

Item

Description

Database field

Version

The version number of the operating system.

OS_VERSION

Build

The build number of the operating system.

OS_BUILD

Number

The number of the operating system.

OS_NUMBER

Major Version

The number that identifies the major version of the operating system.

OS_MAJOR

Minor Version

The number that identifies the minor version of the operating system.

OS_MINOR

Minor Version (2)

Additional operating system version information.

OS_MINOR2

Architecture

The architecture of the device operating system, such as x86 or x64.

OS_ARCH

Family

The product family of the operating system.

OS_FAMILY

Domain

The domain of the device.

CS_DOMAIN

Installed Date

The date the operating system was installed.

OS_INSTALLED_DATE

Last Reboot

The length of time the operating system has been running.

LAST_REBOOT

Last Startup

The last time the operating system was turned off.

LAST_REBOOT

System Directory

The location of the system directory.

SYSTEM_DIRECTORY

Registry Size

The size of the registry.

REGISTRY_SIZE

Registry Maximum Size

The maximum size of the registry.

REGISTRY_MAX_SIZE

9.
In the Other section, provide additional information related to the device:

Item

Description

Database field

RAM Total

The total amount of random-access memory (RAM) on the device.

RAM_TOTAL

RAM Used

The amount of random-access memory (RAM) in use on the device.

RAM_USED

Internet Explorer Version

The version of Internet Explorer installed on the device.

IE_VERSION

.NET Versions

The version or versions of .NET installed on the device.

DOT_NET_VERSIONS

WMI Status

The status of the Windows Management Instrumentation (WMI) service (Windows Devices only).

WMI_STATUS

10.
Click Save.

The manual device icon appears in the device’s Status column on the Devices page: . Inventory for manual devices must be updated manually.

Adding devices manually using the API

Adding devices manually using the API

You can add devices to the KACE SMA manually by creating an XML file and uploading that file to the KACE SMA using the API (application programming interface). Adding devices in this way is useful for devices that might not be able to run the KACE SMA Agent for security reasons, and devices that cannot connect to the LAN (Local Area Network) to report inventory.

The XML file you create can be modeled on the sample script in this section.

Devices that are added to inventory through the API do not count toward the KACE SMA license limit. See View KACE SMA license information.

Application inventory that is uploaded through the API is displayed on the Software page, but it is not displayed on the Software Catalog page. See:

NOTE: The inventory API supports HTTP and HTTPS communications, depending on your appliance configuration. To upload inventory information, use the following URL: http://KACE SMA_hostname/service/wsapi.php, where KACE SMA_hostname is the hostname of your appliance.
Enable inventory API access

API inventory access enables you to upload inventory data using the API. This access is useful if you want to import inventory information from devices that do not have the KACE SMA Agent installed.

1.
Go to the appliance Control Panel:
If the Organization component is enabled on the appliance, log in to the KACE SMA System Administration Console, http://KACE_SMA_hostname/system, or select System in the drop-down list in the top-right corner of the page, then click Settings.
2.
Click Security Settings to display the Security Settings page.
3.
Select Enable Inventory API access.
4.
In the API password field, enter the password you want to use for API access.
5.
Click Save.

After the appliance restarts, you can use external API commands to upload inventory information.

Submit inventory information using the API

To submit inventory using the API, you first need to generate an XML file that contains the inventory information.

For examples, see:

After you generate an XML file with the expected content, you can submit inventory using the API.

Submit keyreq=true in the body of the request to get a session string in response.
a.
Construct the auth string as:
b.
Run MD5 on the auth string.
Submit req=newuuid&key=$auth in the body of the request to get a UUID in response.

Submit req=loadxml&key=$auth&KUID=$uuid&version=6.0 in the GET line and inventory XML in the body of the request.

See Sample Perl script.

Sample Perl script

You can use Perl scripts to upload XML files with device inventory information to the appliance.

The following is a sample Perl script that uploads a user-created XML file to the KACE SMA. For information about using this script, contact Quest Support at https://support.quest.com/contact-support.


#!/usr/bin/perl
use strict;
use warnings;
use WWW::Curl::Easy;
use XML::Simple;
use Data::Dumper;
use Digest::MD5 qw(md5 md5_hex md5_base64);

# Curl Output Handler ...
my $response;
sub write_data($$$$) {
$response = shift;
return length($response);
}

# -----------------------------------------------------
# KACE SMA Configuration ...
# -----------------------------------------------------
my $password = "xxx"; # password set in Settings -> Security Settings
my $host = "hostname"; # hostname or IP address here
my $http = "https"; # HTTP or HTTPS

# --------------------------------------------------------
# Build XML Package ...
# --------------------------------------------------------
my $simple = new XML::Simple(keeproot => 1, forcearray => 1);
my $data = $simple->XMLin("machine.xml");
my $uuid = $data->{MachineStruct}->[0]->{MAC}->[0];

# --------------------------------------------------------
# Setup CURL stuff ...
# --------------------------------------------------------
my $url = "$http://$host/service/wsapi.php";
my $ch = WWW::Curl::Easy->new;
$ch->setopt(CURLOPT_URL, $url); # set url to post to
$ch->setopt(CURLOPT_SSL_VERIFYPEER, 0); # ok for self-signed ca
$ch->setopt(CURLOPT_VERBOSE, 0);
$ch->setopt(CURLOPT_WRITEFUNCTION, \&write_data); # return into a variable
$ch->setopt(CURLOPT_HEADER, 0);
$ch->setopt(CURLOPT_TIMEOUT, 40); # times out after 4s
$ch->setopt(CURLOPT_POST, 1);
$ch->setopt(CURLOPT_COOKIEFILE, '/tmp/cookiefile.txt');

# --------------------------------------------------------
# STEP 1 - Request Session from KACE SMA ...
# --------------------------------------------------------
$ch->setopt(CURLOPT_POSTFIELDS, "keyreq=true"); # add POST fields
my $out = $ch->perform;
if ( $out != 0 ) {
die ("Error: $out " .
$ch->strerror($out) .
" " .
$ch->errbuf . "\n");
}
my $sess = $response;

# --------------------------------------------------------
# STEP 2 - Build Authorization Token ...
# --------------------------------------------------------
my $auth = md5_hex("$sess|".md5_hex($password));

# --------------------------------------------------------
# STEP 3 - Request new UUID from KACE SMA (if creating a new
# device record. If editing an existing device
# be sure it is set in the XML ...
# --------------------------------------------------------
if ( 1 ) {
print "Using UUID From XML File: $uuid\n";
} else {
$ch->setopt(CURLOPT_POSTFIELDS,"req=newuuid&key=$auth");
$out = $ch->perform;
if ( $out != 0 ) {
die ("Error: $out " .
$ch->strerror($out) .
" " .
$ch->errbuf . "\n");
}
$uuid = $response;
$data->{MachineStruct}->[0]->{MAC}->[0] = $uuid;
$data->{MachineStruct}->[0]->{NAME}->[0] = "WSAPI-" . $uuid;
print "Created New UUID: $uuid\n";
}

# convert Simple XML hash back to XML string ...
my $xml = $simple->XMLout(
$data,
KeepRoot => 1,
NoAttr => 1,
);

# --------------------------------------------------------
# STEP 4 - Send XML to KACE SMA ...
# --------------------------------------------------------
my @curlHeader = ("Content-Type: text/xml");
$url = "$http://$host/service/wsapi.php?req=loadxml&key=$auth&KUID=
$uuid&version=6.0";
$ch->setopt(CURLOPT_URL, $url); # set url to post to
$ch->setopt(CURLOPT_HTTPHEADER, \@curlHeader);
$ch->setopt(CURLOPT_POSTFIELDS, $xml);
$out = $ch->perform;
if ( $out != 0 ) {
die ("Error: $out " . $ch->strerror($out) . " " . $ch->errbuf . "\n");
}

print "Loaded $uuid to KACE SMA ($host)\n";

Valid XML schema for Windows

Files used to upload inventory information for Windows devices must conform to valid XML schemas.

The following is an example of a valid XML schema for Windows devices.


<?xml version="1.0" encoding="utf-8"?>
<MachineStruct xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi=">
http://www.w3.org/2001/XMLSchema-instance"
<NAME>@@__m_computerSystemName__@@</NAME>
<IP>@@__m_IPAddress__@@</IP>
<MAC>@@__m_versionKaceId__@@</MAC>
<OS_NAME>@@__m_operatingSystemCaption__@@</OS_NAME>
<OS_NUMBER>@@__m_operatingSystemVersion__@@</OS_NUMBER>
<OS_MAJOR>@@__m_operatingSystemVersionMajor__@@</OS_MAJOR>
<OS_MINOR>@@__m_operatingSystemVersionMinor__@@</OS_MINOR>
<SERVICE_PACK>@@__m_operatingSystemCsdVersion__@@</SERVICE_PACK>
<USER>@@__m_userAccountName__@@</USER>
<USER_FULLNAME>@@__m_userAccountFullName__@@</USER_FULLNAME>
<DOMAIN>@@__m_computerSystemDomain__@@</DOMAIN>
<OS_VERSION>@@__m_operatingSystemVersion__@@</OS_VERSION>
<OS_BUILD>@@__m_operatingSystemBuildNumber__@@</OS_BUILD>
<OS_INSTALLED_DATE>@@__m_operatingSystemInstallDate__@@</OS_INSTALLED_DATE>
<LAST_REBOOT>@@__m_operatingSystemLastBootupTime__@@</LAST_REBOOT>
<LAST_SHUTDOWN>@@__m_operatingSystemLastBootupTime__@@</LAST_SHUTDOWN>
<UPTIME>@@__m_operatingSystemUptime__@@</UPTIME>
<SYSTEM_DIRECTORY>@@__m_operatingSystemWindowsDirectory__@@</SYSTEM_DIRECTORY>
<SYSTEM_DESCRIPTION>@@__m_operatingSystemDescription__@@</SYSTEM_DESCRIPTION>
<RAM_TOTAL>@@__m_physicalMemoryTotalSize__@@</RAM_TOTAL>
<RAM_USED>@@__m_operatingSystemUsedPhysicalMemory__@@</RAM_USED>
<CS_MANUFACTURER>@@__m_computerSystemManufacturer__@@</CS_MANUFACTURER>
<CS_MODEL>@@__m_computerSystemModel__@@</CS_MODEL>
<CHASSIS_TYPE>@@__m_systemEnclosureChassisType__@@</CHASSIS_TYPE>
<TZ_AGENT>@@__m_versionTimeZone__@@</TZ_AGENT>
<USER_LOGGED>@@__m_computerSystemUserName__@@</USER_LOGGED>
<CS_DOMAIN>@@__m_computerSystemDomain__@@</CS_DOMAIN>
<USER_NAME>@@__m_userAccountName__@@</USER_NAME>
<USER_DOMAIN>@@__m_userAccountDomain__@@</USER_DOMAIN>
<BIOS_NAME>@@__m_biosName__@@</BIOS_NAME>
<BIOS_VERSION>@@__m_biosVersion__@@</BIOS_VERSION>
<BIOS_MANUFACTURER>@@__m_biosManufacturer__@@</BIOS_MANUFACTURER>
<BIOS_DESCRIPTION>@@__m_biosDescription__@@</BIOS_DESCRIPTION>
<BIOS_SERIAL_NUMBER>@@__m_biosSerialNumber__@@</BIOS_SERIAL_NUMBER>
<MOTHERBOARD_PRIMARY_BUS>@@__m_motherboardDevicePrimaryBusType__@@
</MOTHERBOARD_PRIMARY_BUS>
<MOTHERBOARD_SECONDARY_BUS>@@__m_motherboardDeviceSecondaryBusType__@@
</MOTHERBOARD_SECONDARY_BUS>
<PROCESSORS>CPU Chip Count: @@__m_processorCount__@@
CPU Core Count: @@__m_processorCoreCount__@@
@@__m_processorList__@@ </PROCESSORS>
<SOUND_DEVICES>@@__m_soundDeviceDescription__@@</SOUND_DEVICES>
<CDROM_DEVICES>@@__m_CDROMDeviceName__@@</CDROM_DEVICES>
<VIDEO_CONTROLLERS>@@__m_videoControllerName__@@</VIDEO_CONTROLLERS>
<REGISTRY_SIZE>@@__m_registryCurrentSize__@@</REGISTRY_SIZE>
<REGISTRY_MAX_SIZE>@@__m_registryMaximumSize__@@</REGISTRY_MAX_SIZE>
<DISK_DRIVES>
@@__m_logicalDiskDriveList__@@ </DISK_DRIVES>
<NETWORK_INTERFACES>
@@__m_networkAdapterConfigurationList__@@ </NETWORK_INTERFACES>
<PRINTERS>@@__m_printerList__@@</PRINTERS>
<STARTUP_PROGRAMS>
@@__m_startupProgramsList__@@ </STARTUP_PROGRAMS>
<PROCESSES>
@@__m_processList__@@ </PROCESSES>
<NT_SERVICES>
@@__m_servicesList__@@ </NT_SERVICES>
<INSTALLED_software>
@@__m_installedProgramsList__@@ </INSTALLED_software>
<CLIENT_VERSION>@@__m_appVersion__@@</CLIENT_VERSION>
</MachineStruct>
Example using the XML schema for Windows devices

You can view an example of a file that conforms to the valid XML schema for Windows devices.

The following is an example of valid XML that uses the schema in Valid XML schema for Windows.


<?xml version="1.0" encoding="utf-8"?>
<MachineStruct xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NAME>TestComputer</NAME>
<IP>10.10.10.10</IP>
<MAC>F1234567-C2D2-4055-85BB-294E6A3D22D9</MAC>
<OS_NAME>Microsoft Windows 7 Professional</OS_NAME>
<OS_NUMBER>6.1.7601.17514</OS_NUMBER>
<OS_MAJOR>6</OS_MAJOR>
<OS_MINOR>1</OS_MINOR>
<SERVICE_PACK>Service Pack 1</SERVICE_PACK>
<USER>Administrator</USER>
<USER_FULLNAME>Tom Silver</USER_FULLNAME>
<DOMAIN>WORK</DOMAIN>
<OS_VERSION>6.1.7601</OS_VERSION>
<OS_BUILD>17514</OS_BUILD>
<OS_INSTALLED_DATE>2017-08-30 14:22:39 -0400</OS_INSTALLED_DATE>
<LAST_REBOOT>2017-08-30 14:25:05 -0400</LAST_REBOOT>
<LAST_SHUTDOWN>2017-08-30 14:25:05 -0400</LAST_SHUTDOWN>
<UPTIME>4 days </UPTIME>
<SYSTEM_DIRECTORY>C:\WINDOWS</SYSTEM_DIRECTORY>
<SYSTEM_DESCRIPTION>Windows 7 Machine</SYSTEM_DESCRIPTION>
<RAM_TOTAL>512.00MB</RAM_TOTAL>
<RAM_USED>180MB</RAM_USED>
<CS_MANUFACTURER>VMware, Inc.</CS_MANUFACTURER>
<CS_MODEL>VMware Virtual Platform</CS_MODEL>
<CHASSIS_TYPE>Other</CHASSIS_TYPE>
<USER_LOGGED>Tom</USER_LOGGED>
<CS_DOMAIN>WORK</CS_DOMAIN>
<USER_NAME>Administrator</USER_NAME>
<USER_DOMAIN>Work</USER_DOMAIN>
<BIOS_NAME>PhoenixBIOS 4.0 Release 5.5 </BIOS_NAME>
<BIOS_VERSION>INTEL - 6040000</BIOS_VERSION>
<BIOS_MANUFACTURER>Phoenix Technologies LTD</BIOS_MANUFACTURER>
<BIOS_DESCRIPTION>PhoenixBIOS 4.0 Release 5.5 </BIOS_DESCRIPTION>
<BIOS_SERIAL_NUMBER>VMware-56 4d bd d3 5e 4f a5 4e-6a ce a0 d3 39 bd ae 02
</BIOS_SERIAL_NUMBER>
<MOTHERBOARD_PRIMARY_BUS>PCI</MOTHERBOARD_PRIMARY_BUS>
<MOTHERBOARD_SECONDARY_BUS>ISA</MOTHERBOARD_SECONDARY_BUS>
<PROCESSORS>CPU Chip Count: 1
CPU Core Count: 0
CPU0: Intel Celeron processor (0 cores) </PROCESSORS>
<SOUND_DEVICES>Creative AudioPCI (ES1371,ES1373) (WDM)
</SOUND_DEVICES>
<CDROM_DEVICES>TSSTcorp DVD+-RW TS-U633F
</CDROM_DEVICES>
<VIDEO_CONTROLLERS>VMware SVGA II
</VIDEO_CONTROLLERS>
<REGISTRY_SIZE>1MB</REGISTRY_SIZE>
<REGISTRY_MAX_SIZE>86MB</REGISTRY_MAX_SIZE>
<DISK_DRIVES>
<DiskDrive>
<NAME>Drive C: (Physical Disk) FileSystem: NTFS Used: 2.08GB Total: 39.99GB</NAME>
<DISK_SIZE>39.9906</DISK_SIZE>
<DISK_USED>2.07966</DISK_USED>
<DISK_FREE>37.9109</DISK_FREE>
<PERCENT_USED>5.2</PERCENT_USED>
</DiskDrive>
</DISK_DRIVES>
<NETWORK_INTERFACES>
<NetworkInterface>
<NIC>AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler
Miniport</NIC>
<MAC>00:0C:29:BD:AE:03</MAC>
<IP>192.168.220.132</IP>
<DHCP_ENABLED>True</DHCP_ENABLED>
</NetworkInterface>
</NETWORK_INTERFACES>
<PRINTERS></PRINTERS>
<STARTUP_PROGRAMS>
<StartupProgram>
<NAME>desktop</NAME>
</StartupProgram>
<StartupProgram>
<NAME>VMware Tools</NAME>
<COMMAND_EXE>C:\Program Files\VMware\VMware Tools\VMwareTray.exe</COMMAND_EXE>
<COMMAND_ARGS />
<FILE_INFO>
<FILE_NAME>VMwareTray.exe</FILE_NAME>
<FILE_DESCRIPTION>VMware Tools tray application</FILE_DESCRIPTION>
<FILE_VERSION>8.4.6.16648</FILE_VERSION>
<PRODUCT_NAME>VMware Tools</PRODUCT_NAME>
<PRODUCT_VERSION>8.4.6 build-385536</PRODUCT_VERSION>
<COMPANY_NAME>VMware, Inc.</COMPANY_NAME>
</FILE_INFO>
</StartupProgram>
<StartupProgram>
<NAME>VMware User Process</NAME>
<COMMAND_EXE>C:\Program Files\VMware\VMware Tools\VMwareUser.exe</COMMAND_EXE>
<COMMAND_ARGS />
<FILE_INFO>
<FILE_NAME>VMwareUser.exe</FILE_NAME>
<FILE_DESCRIPTION>VMware Tools Service</FILE_DESCRIPTION>
<FILE_VERSION>8.4.6.16648</FILE_VERSION>
<PRODUCT_NAME>VMware Tools</PRODUCT_NAME>
<PRODUCT_VERSION>8.4.6 build-385536</PRODUCT_VERSION>
<COMPANY_NAME>VMware, Inc.</COMPANY_NAME>
</FILE_INFO>
</StartupProgram>
</STARTUP_PROGRAMS>
<PROCESSES>
<MachineProcess>
<NAME>AMPAgent.exe</NAME>
<COMMAND_EXE>C:\Program Files\Quest\KACE\AMPAgent.exe</COMMAND_EXE>
<COMMAND_ARGS />
<FILE_INFO>
<FILE_NAME>AMPAgent.exe</FILE_NAME>
<FILE_DESCRIPTION>AMP Service</FILE_DESCRIPTION>
<FILE_VERSION>5.2.38916</FILE_VERSION>
<PRODUCT_NAME>KACE Agent</PRODUCT_NAME>
<PRODUCT_VERSION>5.2.38916</PRODUCT_VERSION>
<COMPANY_NAME>Quest Software Inc.</COMPANY_NAME>
</FILE_INFO>
</MachineProcess>
</PROCESSES>
<NT_SERVICES>
<NtService>
<NAME>Alerter</NAME>
<DISPLAY_NAME>Alerter</DISPLAY_NAME>
<STATUS>SERVICE_STOPPED</STATUS>
<STARTUP_TYPE>SERVICE_DISABLED</STARTUP_TYPE>
<DESCRIPTION />
<LOGON_AS_USER>NT AUTHORITY\LocalService</LOGON_AS_USER>
<CAN_INTERACT_WITH_DESKTOP>False</CAN_INTERACT_WITH_DESKTOP>
<COMMAND_EXE>C:\WINDOWS\system32\svchost.exe</COMMAND_EXE>
<COMMAND_ARGS> -k LocalService</COMMAND_ARGS>
<FILE_INFO>
<FILE_NAME>svchost.exe</FILE_NAME>
<FILE_DESCRIPTION>Generic Host Process for Win32 Services</FILE_DESCRIPTION>
<FILE_VERSION>6.1.7600.16385 (win7_rtm.090713-1255)</FILE_VERSION>
<PRODUCT_NAME>Microsoft® Windows® Operating System</PRODUCT_NAME>
<PRODUCT_VERSION>6.1.7600.16385</PRODUCT_VERSION>
<COMPANY_NAME>Microsoft Corporation</COMPANY_NAME>
</FILE_INFO>
</NtService>
</NT_SERVICES>
<INSTALLED_software>
<software>
<DISPLAY_VERSION>5.2.38916</DISPLAY_VERSION>
<HELP_LINK />
<README />
<INSTALL_DATE>20170830</INSTALL_DATE>
<PUBLISHER>Quest Software Inc.</PUBLISHER>
<UNINSTALL_STRING />
<URLINFO_ABOUT />
<DISPLAY_NAME>Quest KACE Agent</DISPLAY_NAME>
</software>
</INSTALLED_software>
<CLIENT_VERSION>8.0.xxxxx</CLIENT_VERSION>
</MachineStruct>
Valid XML schema for Linux and Mac devices

Files used to upload inventory information for Linux and Mac devices must use valid XML schemas.

The following is an example of an XML schema for Linux and Mac devices.


<?xml version="1.0" encoding="utf-8"?>
<MachineStruct>
<NAME>@@__m_versionHostName__@@</NAME>
<CLIENT_VERSION>@@__m_appVersion__@@</CLIENT_VERSION>
<IP>@@__m_IPAddress__@@</IP>
<MAC>@@__m_versionKaceId__@@</MAC>
<OS_NAME>@@__m_operatingSystemCaption__@@</OS_NAME>
<OS_NUMBER>@@__m_operatingSystemVersion__@@</OS_NUMBER>
<OS_MAJOR>@@__m_operatingSystemVersionMajor__@@</OS_MAJOR>
<OS_MINOR>@@__m_operatingSystemVersionMinor__@@</OS_MINOR>
<SERVICE_PACK></SERVICE_PACK>
<INSTALL_DATE></INSTALL_DATE>

<OS_ARCH>@@__m_operatingSystemOSArchitecture__@@</OS_ARCH>
<OS_FAMILY>@@__m_operatingSystemOSFamily__@@</OS_FAMILY>
<OS_VERSION>@@__m_operatingSystemVersion__@@</OS_VERSION>
<OS_BUILD>@@__m_operatingSystemBuildNumber__@@</OS_BUILD>
<DOMAIN>@@__m_userAccountDomain__@@</DOMAIN>
<CS_DOMAIN>@@__m_userAccountDomain__@@</CS_DOMAIN>

<LAST_REBOOT>@@__m_operatingSystemLastBootupTime__@@</LAST_REBOOT>
<TZ_AGENT>@@__m_versionTimeZone__@@</TZ_AGENT>
<UPTIME>@@__m_operatingSystemUptime__@@</UPTIME>

<RAM_TOTAL>@@__m_operatingSystemTotalVisibleMemorySize__@@</RAM_TOTAL>
<RAM_USED>@@__m_operatingSystemUsedPhysicalMemory__@@</RAM_USED>
<CS_MANUFACTURER>@@__m_biosManufacturer__@@</CS_MANUFACTURER>
<CS_MODEL></CS_MODEL>
<USER_LOGGED>@@__m_userAccountName__@@</USER_LOGGED>
<USER>@@__m_userAccountName__@@</USER>
<USER_NAME>@@__m_userAccountName__@@</USER_NAME>
<USER_FULLNAME>@@__m_userAccountFullName__@@</USER_FULLNAME>
<USER_DOMAIN>@@__m_userAccountDomain__@@</USER_DOMAIN>
<BIOS_NAME>@@__m_biosName__@@</BIOS_NAME>
<BIOS_VERSION>@@__m_biosVersion__@@</BIOS_VERSION>
<BIOS_MANUFACTURER>@@__m_biosManufacturer__@@</BIOS_MANUFACTURER>
<BIOS_DESCRIPTION>@@__m_biosName__@@</BIOS_DESCRIPTION>
<BIOS_SERIAL_NUMBER>@@__m_biosSerialNumber__@@</BIOS_SERIAL_NUMBER>
<MOTHERBOARD_PRIMARY_BUS></MOTHERBOARD_PRIMARY_BUS>
<MOTHERBOARD_SECONDARY_BUS></MOTHERBOARD_SECONDARY_BUS>
<PROCESSORS>@@__m_processorList__@@</PROCESSORS>
<SOUND_DEVICES>@@__m_soundDeviceDescription__@@</SOUND_DEVICES>
<CDROM_DEVICES>@@__m_CDROMDeviceName__@@</CDROM_DEVICES>
<MONITOR>@@__m_desktopMonitorDescription__@@</MONITOR>

<VIDEO_CONTROLLERS>@@__m_videoControllerName__@@</VIDEO_CONTROLLERS>
<DISK_DRIVES>
@@__m_logicalDiskDriveList__@@</DISK_DRIVES>
<NETWORK_INTERFACES>
@@__m_networkAdapterConfigurationList__@@</NETWORK_INTERFACES>
<PRINTERS>@@__m_printerList__@@</PRINTERS>
<STARTUP_PROGRAMS>
@@__m_startupProgramsList__@@</STARTUP_PROGRAMS>
<PROCESSES>
@@__m_processList__@@</PROCESSES>
<INSTALLED_software>
@@__m_installedProgramsList__@@</INSTALLED_software>
</MachineStruct>
Upload an XML file using the Administrator Console

You can upload an XML file that contains device inventory information using the Administrator Console. This type of information is referred to as manual inventory information.

The KACE SMA Agent is installed on the device that is having its inventory information added.

You create the XML file on the device to be inventoried, then move to the KACE SMA to upload the file.

Manual inventory information appears on the Software page but it does not appear on the Software Catalog page. See:

Windows 32-bit systems: C:\Program Files\Quest\KACE
Windows 64-bit systems: C:\Program Files (x86)\Quest\KACE
Mac OS X systems: /Library/Application Support/Quest/KACE/bin
Linux systems: /opt/quest/kace/bin

Where filename is the path to the XML file you want to create. If the path contains spaces, enclose the entire path in double quotation marks.

The Agent collects the inventory data and generates the XML file.

2.
On the KACE SMA Administrator Console, go to the Devices list:
a.
Log in to the KACE SMA Administrator Console, http://KACE_SMA_hostname/admin. Or, if the Show organization menu in admin header option is enabled in the appliance General Settings, select an organization in the drop-down list in the top-right corner of the page next to the login information.
3.
Select Choose Action > New > Manual Device to display the Device Detail page.
4.
Under Import Device, click Browse.
5.
6.
Click Save.

The device's information is added to inventory. If you uploaded an XML file, the appliance ignores all other information on the page and uses the XML file for inventory information.

Enable inventory API access

Adding devices manually using the API

You can add devices to the KACE SMA manually by creating an XML file and uploading that file to the KACE SMA using the API (application programming interface). Adding devices in this way is useful for devices that might not be able to run the KACE SMA Agent for security reasons, and devices that cannot connect to the LAN (Local Area Network) to report inventory.

The XML file you create can be modeled on the sample script in this section.

Devices that are added to inventory through the API do not count toward the KACE SMA license limit. See View KACE SMA license information.

Application inventory that is uploaded through the API is displayed on the Software page, but it is not displayed on the Software Catalog page. See:

NOTE: The inventory API supports HTTP and HTTPS communications, depending on your appliance configuration. To upload inventory information, use the following URL: http://KACE SMA_hostname/service/wsapi.php, where KACE SMA_hostname is the hostname of your appliance.
Enable inventory API access

API inventory access enables you to upload inventory data using the API. This access is useful if you want to import inventory information from devices that do not have the KACE SMA Agent installed.

1.
Go to the appliance Control Panel:
If the Organization component is enabled on the appliance, log in to the KACE SMA System Administration Console, http://KACE_SMA_hostname/system, or select System in the drop-down list in the top-right corner of the page, then click Settings.
2.
Click Security Settings to display the Security Settings page.
3.
Select Enable Inventory API access.
4.
In the API password field, enter the password you want to use for API access.
5.
Click Save.

After the appliance restarts, you can use external API commands to upload inventory information.

Submit inventory information using the API

To submit inventory using the API, you first need to generate an XML file that contains the inventory information.

For examples, see:

After you generate an XML file with the expected content, you can submit inventory using the API.

Submit keyreq=true in the body of the request to get a session string in response.
a.
Construct the auth string as:
b.
Run MD5 on the auth string.
Submit req=newuuid&key=$auth in the body of the request to get a UUID in response.

Submit req=loadxml&key=$auth&KUID=$uuid&version=6.0 in the GET line and inventory XML in the body of the request.

See Sample Perl script.

Sample Perl script

You can use Perl scripts to upload XML files with device inventory information to the appliance.

The following is a sample Perl script that uploads a user-created XML file to the KACE SMA. For information about using this script, contact Quest Support at https://support.quest.com/contact-support.


#!/usr/bin/perl
use strict;
use warnings;
use WWW::Curl::Easy;
use XML::Simple;
use Data::Dumper;
use Digest::MD5 qw(md5 md5_hex md5_base64);

# Curl Output Handler ...
my $response;
sub write_data($$$$) {
$response = shift;
return length($response);
}

# -----------------------------------------------------
# KACE SMA Configuration ...
# -----------------------------------------------------
my $password = "xxx"; # password set in Settings -> Security Settings
my $host = "hostname"; # hostname or IP address here
my $http = "https"; # HTTP or HTTPS

# --------------------------------------------------------
# Build XML Package ...
# --------------------------------------------------------
my $simple = new XML::Simple(keeproot => 1, forcearray => 1);
my $data = $simple->XMLin("machine.xml");
my $uuid = $data->{MachineStruct}->[0]->{MAC}->[0];

# --------------------------------------------------------
# Setup CURL stuff ...
# --------------------------------------------------------
my $url = "$http://$host/service/wsapi.php";
my $ch = WWW::Curl::Easy->new;
$ch->setopt(CURLOPT_URL, $url); # set url to post to
$ch->setopt(CURLOPT_SSL_VERIFYPEER, 0); # ok for self-signed ca
$ch->setopt(CURLOPT_VERBOSE, 0);
$ch->setopt(CURLOPT_WRITEFUNCTION, \&write_data); # return into a variable
$ch->setopt(CURLOPT_HEADER, 0);
$ch->setopt(CURLOPT_TIMEOUT, 40); # times out after 4s
$ch->setopt(CURLOPT_POST, 1);
$ch->setopt(CURLOPT_COOKIEFILE, '/tmp/cookiefile.txt');

# --------------------------------------------------------
# STEP 1 - Request Session from KACE SMA ...
# --------------------------------------------------------
$ch->setopt(CURLOPT_POSTFIELDS, "keyreq=true"); # add POST fields
my $out = $ch->perform;
if ( $out != 0 ) {
die ("Error: $out " .
$ch->strerror($out) .
" " .
$ch->errbuf . "\n");
}
my $sess = $response;

# --------------------------------------------------------
# STEP 2 - Build Authorization Token ...
# --------------------------------------------------------
my $auth = md5_hex("$sess|".md5_hex($password));

# --------------------------------------------------------
# STEP 3 - Request new UUID from KACE SMA (if creating a new
# device record. If editing an existing device
# be sure it is set in the XML ...
# --------------------------------------------------------
if ( 1 ) {
print "Using UUID From XML File: $uuid\n";
} else {
$ch->setopt(CURLOPT_POSTFIELDS,"req=newuuid&key=$auth");
$out = $ch->perform;
if ( $out != 0 ) {
die ("Error: $out " .
$ch->strerror($out) .
" " .
$ch->errbuf . "\n");
}
$uuid = $response;
$data->{MachineStruct}->[0]->{MAC}->[0] = $uuid;
$data->{MachineStruct}->[0]->{NAME}->[0] = "WSAPI-" . $uuid;
print "Created New UUID: $uuid\n";
}

# convert Simple XML hash back to XML string ...
my $xml = $simple->XMLout(
$data,
KeepRoot => 1,
NoAttr => 1,
);

# --------------------------------------------------------
# STEP 4 - Send XML to KACE SMA ...
# --------------------------------------------------------
my @curlHeader = ("Content-Type: text/xml");
$url = "$http://$host/service/wsapi.php?req=loadxml&key=$auth&KUID=
$uuid&version=6.0";
$ch->setopt(CURLOPT_URL, $url); # set url to post to
$ch->setopt(CURLOPT_HTTPHEADER, \@curlHeader);
$ch->setopt(CURLOPT_POSTFIELDS, $xml);
$out = $ch->perform;
if ( $out != 0 ) {
die ("Error: $out " . $ch->strerror($out) . " " . $ch->errbuf . "\n");
}

print "Loaded $uuid to KACE SMA ($host)\n";

Valid XML schema for Windows

Files used to upload inventory information for Windows devices must conform to valid XML schemas.

The following is an example of a valid XML schema for Windows devices.


<?xml version="1.0" encoding="utf-8"?>
<MachineStruct xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi=">
http://www.w3.org/2001/XMLSchema-instance"
<NAME>@@__m_computerSystemName__@@</NAME>
<IP>@@__m_IPAddress__@@</IP>
<MAC>@@__m_versionKaceId__@@</MAC>
<OS_NAME>@@__m_operatingSystemCaption__@@</OS_NAME>
<OS_NUMBER>@@__m_operatingSystemVersion__@@</OS_NUMBER>
<OS_MAJOR>@@__m_operatingSystemVersionMajor__@@</OS_MAJOR>
<OS_MINOR>@@__m_operatingSystemVersionMinor__@@</OS_MINOR>
<SERVICE_PACK>@@__m_operatingSystemCsdVersion__@@</SERVICE_PACK>
<USER>@@__m_userAccountName__@@</USER>
<USER_FULLNAME>@@__m_userAccountFullName__@@</USER_FULLNAME>
<DOMAIN>@@__m_computerSystemDomain__@@</DOMAIN>
<OS_VERSION>@@__m_operatingSystemVersion__@@</OS_VERSION>
<OS_BUILD>@@__m_operatingSystemBuildNumber__@@</OS_BUILD>
<OS_INSTALLED_DATE>@@__m_operatingSystemInstallDate__@@</OS_INSTALLED_DATE>
<LAST_REBOOT>@@__m_operatingSystemLastBootupTime__@@</LAST_REBOOT>
<LAST_SHUTDOWN>@@__m_operatingSystemLastBootupTime__@@</LAST_SHUTDOWN>
<UPTIME>@@__m_operatingSystemUptime__@@</UPTIME>
<SYSTEM_DIRECTORY>@@__m_operatingSystemWindowsDirectory__@@</SYSTEM_DIRECTORY>
<SYSTEM_DESCRIPTION>@@__m_operatingSystemDescription__@@</SYSTEM_DESCRIPTION>
<RAM_TOTAL>@@__m_physicalMemoryTotalSize__@@</RAM_TOTAL>
<RAM_USED>@@__m_operatingSystemUsedPhysicalMemory__@@</RAM_USED>
<CS_MANUFACTURER>@@__m_computerSystemManufacturer__@@</CS_MANUFACTURER>
<CS_MODEL>@@__m_computerSystemModel__@@</CS_MODEL>
<CHASSIS_TYPE>@@__m_systemEnclosureChassisType__@@</CHASSIS_TYPE>
<TZ_AGENT>@@__m_versionTimeZone__@@</TZ_AGENT>
<USER_LOGGED>@@__m_computerSystemUserName__@@</USER_LOGGED>
<CS_DOMAIN>@@__m_computerSystemDomain__@@</CS_DOMAIN>
<USER_NAME>@@__m_userAccountName__@@</USER_NAME>
<USER_DOMAIN>@@__m_userAccountDomain__@@</USER_DOMAIN>
<BIOS_NAME>@@__m_biosName__@@</BIOS_NAME>
<BIOS_VERSION>@@__m_biosVersion__@@</BIOS_VERSION>
<BIOS_MANUFACTURER>@@__m_biosManufacturer__@@</BIOS_MANUFACTURER>
<BIOS_DESCRIPTION>@@__m_biosDescription__@@</BIOS_DESCRIPTION>
<BIOS_SERIAL_NUMBER>@@__m_biosSerialNumber__@@</BIOS_SERIAL_NUMBER>
<MOTHERBOARD_PRIMARY_BUS>@@__m_motherboardDevicePrimaryBusType__@@
</MOTHERBOARD_PRIMARY_BUS>
<MOTHERBOARD_SECONDARY_BUS>@@__m_motherboardDeviceSecondaryBusType__@@
</MOTHERBOARD_SECONDARY_BUS>
<PROCESSORS>CPU Chip Count: @@__m_processorCount__@@
CPU Core Count: @@__m_processorCoreCount__@@
@@__m_processorList__@@ </PROCESSORS>
<SOUND_DEVICES>@@__m_soundDeviceDescription__@@</SOUND_DEVICES>
<CDROM_DEVICES>@@__m_CDROMDeviceName__@@</CDROM_DEVICES>
<VIDEO_CONTROLLERS>@@__m_videoControllerName__@@</VIDEO_CONTROLLERS>
<REGISTRY_SIZE>@@__m_registryCurrentSize__@@</REGISTRY_SIZE>
<REGISTRY_MAX_SIZE>@@__m_registryMaximumSize__@@</REGISTRY_MAX_SIZE>
<DISK_DRIVES>
@@__m_logicalDiskDriveList__@@ </DISK_DRIVES>
<NETWORK_INTERFACES>
@@__m_networkAdapterConfigurationList__@@ </NETWORK_INTERFACES>
<PRINTERS>@@__m_printerList__@@</PRINTERS>
<STARTUP_PROGRAMS>
@@__m_startupProgramsList__@@ </STARTUP_PROGRAMS>
<PROCESSES>
@@__m_processList__@@ </PROCESSES>
<NT_SERVICES>
@@__m_servicesList__@@ </NT_SERVICES>
<INSTALLED_software>
@@__m_installedProgramsList__@@ </INSTALLED_software>
<CLIENT_VERSION>@@__m_appVersion__@@</CLIENT_VERSION>
</MachineStruct>
Example using the XML schema for Windows devices

You can view an example of a file that conforms to the valid XML schema for Windows devices.

The following is an example of valid XML that uses the schema in Valid XML schema for Windows.


<?xml version="1.0" encoding="utf-8"?>
<MachineStruct xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NAME>TestComputer</NAME>
<IP>10.10.10.10</IP>
<MAC>F1234567-C2D2-4055-85BB-294E6A3D22D9</MAC>
<OS_NAME>Microsoft Windows 7 Professional</OS_NAME>
<OS_NUMBER>6.1.7601.17514</OS_NUMBER>
<OS_MAJOR>6</OS_MAJOR>
<OS_MINOR>1</OS_MINOR>
<SERVICE_PACK>Service Pack 1</SERVICE_PACK>
<USER>Administrator</USER>
<USER_FULLNAME>Tom Silver</USER_FULLNAME>
<DOMAIN>WORK</DOMAIN>
<OS_VERSION>6.1.7601</OS_VERSION>
<OS_BUILD>17514</OS_BUILD>
<OS_INSTALLED_DATE>2017-08-30 14:22:39 -0400</OS_INSTALLED_DATE>
<LAST_REBOOT>2017-08-30 14:25:05 -0400</LAST_REBOOT>
<LAST_SHUTDOWN>2017-08-30 14:25:05 -0400</LAST_SHUTDOWN>
<UPTIME>4 days </UPTIME>
<SYSTEM_DIRECTORY>C:\WINDOWS</SYSTEM_DIRECTORY>
<SYSTEM_DESCRIPTION>Windows 7 Machine</SYSTEM_DESCRIPTION>
<RAM_TOTAL>512.00MB</RAM_TOTAL>
<RAM_USED>180MB</RAM_USED>
<CS_MANUFACTURER>VMware, Inc.</CS_MANUFACTURER>
<CS_MODEL>VMware Virtual Platform</CS_MODEL>
<CHASSIS_TYPE>Other</CHASSIS_TYPE>
<USER_LOGGED>Tom</USER_LOGGED>
<CS_DOMAIN>WORK</CS_DOMAIN>
<USER_NAME>Administrator</USER_NAME>
<USER_DOMAIN>Work</USER_DOMAIN>
<BIOS_NAME>PhoenixBIOS 4.0 Release 5.5 </BIOS_NAME>
<BIOS_VERSION>INTEL - 6040000</BIOS_VERSION>
<BIOS_MANUFACTURER>Phoenix Technologies LTD</BIOS_MANUFACTURER>
<BIOS_DESCRIPTION>PhoenixBIOS 4.0 Release 5.5 </BIOS_DESCRIPTION>
<BIOS_SERIAL_NUMBER>VMware-56 4d bd d3 5e 4f a5 4e-6a ce a0 d3 39 bd ae 02
</BIOS_SERIAL_NUMBER>
<MOTHERBOARD_PRIMARY_BUS>PCI</MOTHERBOARD_PRIMARY_BUS>
<MOTHERBOARD_SECONDARY_BUS>ISA</MOTHERBOARD_SECONDARY_BUS>
<PROCESSORS>CPU Chip Count: 1
CPU Core Count: 0
CPU0: Intel Celeron processor (0 cores) </PROCESSORS>
<SOUND_DEVICES>Creative AudioPCI (ES1371,ES1373) (WDM)
</SOUND_DEVICES>
<CDROM_DEVICES>TSSTcorp DVD+-RW TS-U633F
</CDROM_DEVICES>
<VIDEO_CONTROLLERS>VMware SVGA II
</VIDEO_CONTROLLERS>
<REGISTRY_SIZE>1MB</REGISTRY_SIZE>
<REGISTRY_MAX_SIZE>86MB</REGISTRY_MAX_SIZE>
<DISK_DRIVES>
<DiskDrive>
<NAME>Drive C: (Physical Disk) FileSystem: NTFS Used: 2.08GB Total: 39.99GB</NAME>
<DISK_SIZE>39.9906</DISK_SIZE>
<DISK_USED>2.07966</DISK_USED>
<DISK_FREE>37.9109</DISK_FREE>
<PERCENT_USED>5.2</PERCENT_USED>
</DiskDrive>
</DISK_DRIVES>
<NETWORK_INTERFACES>
<NetworkInterface>
<NIC>AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler
Miniport</NIC>
<MAC>00:0C:29:BD:AE:03</MAC>
<IP>192.168.220.132</IP>
<DHCP_ENABLED>True</DHCP_ENABLED>
</NetworkInterface>
</NETWORK_INTERFACES>
<PRINTERS></PRINTERS>
<STARTUP_PROGRAMS>
<StartupProgram>
<NAME>desktop</NAME>
</StartupProgram>
<StartupProgram>
<NAME>VMware Tools</NAME>
<COMMAND_EXE>C:\Program Files\VMware\VMware Tools\VMwareTray.exe</COMMAND_EXE>
<COMMAND_ARGS />
<FILE_INFO>
<FILE_NAME>VMwareTray.exe</FILE_NAME>
<FILE_DESCRIPTION>VMware Tools tray application</FILE_DESCRIPTION>
<FILE_VERSION>8.4.6.16648</FILE_VERSION>
<PRODUCT_NAME>VMware Tools</PRODUCT_NAME>
<PRODUCT_VERSION>8.4.6 build-385536</PRODUCT_VERSION>
<COMPANY_NAME>VMware, Inc.</COMPANY_NAME>
</FILE_INFO>
</StartupProgram>
<StartupProgram>
<NAME>VMware User Process</NAME>
<COMMAND_EXE>C:\Program Files\VMware\VMware Tools\VMwareUser.exe</COMMAND_EXE>
<COMMAND_ARGS />
<FILE_INFO>
<FILE_NAME>VMwareUser.exe</FILE_NAME>
<FILE_DESCRIPTION>VMware Tools Service</FILE_DESCRIPTION>
<FILE_VERSION>8.4.6.16648</FILE_VERSION>
<PRODUCT_NAME>VMware Tools</PRODUCT_NAME>
<PRODUCT_VERSION>8.4.6 build-385536</PRODUCT_VERSION>
<COMPANY_NAME>VMware, Inc.</COMPANY_NAME>
</FILE_INFO>
</StartupProgram>
</STARTUP_PROGRAMS>
<PROCESSES>
<MachineProcess>
<NAME>AMPAgent.exe</NAME>
<COMMAND_EXE>C:\Program Files\Quest\KACE\AMPAgent.exe</COMMAND_EXE>
<COMMAND_ARGS />
<FILE_INFO>
<FILE_NAME>AMPAgent.exe</FILE_NAME>
<FILE_DESCRIPTION>AMP Service</FILE_DESCRIPTION>
<FILE_VERSION>5.2.38916</FILE_VERSION>
<PRODUCT_NAME>KACE Agent</PRODUCT_NAME>
<PRODUCT_VERSION>5.2.38916</PRODUCT_VERSION>
<COMPANY_NAME>Quest Software Inc.</COMPANY_NAME>
</FILE_INFO>
</MachineProcess>
</PROCESSES>
<NT_SERVICES>
<NtService>
<NAME>Alerter</NAME>
<DISPLAY_NAME>Alerter</DISPLAY_NAME>
<STATUS>SERVICE_STOPPED</STATUS>
<STARTUP_TYPE>SERVICE_DISABLED</STARTUP_TYPE>
<DESCRIPTION />
<LOGON_AS_USER>NT AUTHORITY\LocalService</LOGON_AS_USER>
<CAN_INTERACT_WITH_DESKTOP>False</CAN_INTERACT_WITH_DESKTOP>
<COMMAND_EXE>C:\WINDOWS\system32\svchost.exe</COMMAND_EXE>
<COMMAND_ARGS> -k LocalService</COMMAND_ARGS>
<FILE_INFO>
<FILE_NAME>svchost.exe</FILE_NAME>
<FILE_DESCRIPTION>Generic Host Process for Win32 Services</FILE_DESCRIPTION>
<FILE_VERSION>6.1.7600.16385 (win7_rtm.090713-1255)</FILE_VERSION>
<PRODUCT_NAME>Microsoft® Windows® Operating System</PRODUCT_NAME>
<PRODUCT_VERSION>6.1.7600.16385</PRODUCT_VERSION>
<COMPANY_NAME>Microsoft Corporation</COMPANY_NAME>
</FILE_INFO>
</NtService>
</NT_SERVICES>
<INSTALLED_software>
<software>
<DISPLAY_VERSION>5.2.38916</DISPLAY_VERSION>
<HELP_LINK />
<README />
<INSTALL_DATE>20170830</INSTALL_DATE>
<PUBLISHER>Quest Software Inc.</PUBLISHER>
<UNINSTALL_STRING />
<URLINFO_ABOUT />
<DISPLAY_NAME>Quest KACE Agent</DISPLAY_NAME>
</software>
</INSTALLED_software>
<CLIENT_VERSION>8.0.xxxxx</CLIENT_VERSION>
</MachineStruct>
Valid XML schema for Linux and Mac devices

Files used to upload inventory information for Linux and Mac devices must use valid XML schemas.

The following is an example of an XML schema for Linux and Mac devices.


<?xml version="1.0" encoding="utf-8"?>
<MachineStruct>
<NAME>@@__m_versionHostName__@@</NAME>
<CLIENT_VERSION>@@__m_appVersion__@@</CLIENT_VERSION>
<IP>@@__m_IPAddress__@@</IP>
<MAC>@@__m_versionKaceId__@@</MAC>
<OS_NAME>@@__m_operatingSystemCaption__@@</OS_NAME>
<OS_NUMBER>@@__m_operatingSystemVersion__@@</OS_NUMBER>
<OS_MAJOR>@@__m_operatingSystemVersionMajor__@@</OS_MAJOR>
<OS_MINOR>@@__m_operatingSystemVersionMinor__@@</OS_MINOR>
<SERVICE_PACK></SERVICE_PACK>
<INSTALL_DATE></INSTALL_DATE>

<OS_ARCH>@@__m_operatingSystemOSArchitecture__@@</OS_ARCH>
<OS_FAMILY>@@__m_operatingSystemOSFamily__@@</OS_FAMILY>
<OS_VERSION>@@__m_operatingSystemVersion__@@</OS_VERSION>
<OS_BUILD>@@__m_operatingSystemBuildNumber__@@</OS_BUILD>
<DOMAIN>@@__m_userAccountDomain__@@</DOMAIN>
<CS_DOMAIN>@@__m_userAccountDomain__@@</CS_DOMAIN>

<LAST_REBOOT>@@__m_operatingSystemLastBootupTime__@@</LAST_REBOOT>
<TZ_AGENT>@@__m_versionTimeZone__@@</TZ_AGENT>
<UPTIME>@@__m_operatingSystemUptime__@@</UPTIME>

<RAM_TOTAL>@@__m_operatingSystemTotalVisibleMemorySize__@@</RAM_TOTAL>
<RAM_USED>@@__m_operatingSystemUsedPhysicalMemory__@@</RAM_USED>
<CS_MANUFACTURER>@@__m_biosManufacturer__@@</CS_MANUFACTURER>
<CS_MODEL></CS_MODEL>
<USER_LOGGED>@@__m_userAccountName__@@</USER_LOGGED>
<USER>@@__m_userAccountName__@@</USER>
<USER_NAME>@@__m_userAccountName__@@</USER_NAME>
<USER_FULLNAME>@@__m_userAccountFullName__@@</USER_FULLNAME>
<USER_DOMAIN>@@__m_userAccountDomain__@@</USER_DOMAIN>
<BIOS_NAME>@@__m_biosName__@@</BIOS_NAME>
<BIOS_VERSION>@@__m_biosVersion__@@</BIOS_VERSION>
<BIOS_MANUFACTURER>@@__m_biosManufacturer__@@</BIOS_MANUFACTURER>
<BIOS_DESCRIPTION>@@__m_biosName__@@</BIOS_DESCRIPTION>
<BIOS_SERIAL_NUMBER>@@__m_biosSerialNumber__@@</BIOS_SERIAL_NUMBER>
<MOTHERBOARD_PRIMARY_BUS></MOTHERBOARD_PRIMARY_BUS>
<MOTHERBOARD_SECONDARY_BUS></MOTHERBOARD_SECONDARY_BUS>
<PROCESSORS>@@__m_processorList__@@</PROCESSORS>
<SOUND_DEVICES>@@__m_soundDeviceDescription__@@</SOUND_DEVICES>
<CDROM_DEVICES>@@__m_CDROMDeviceName__@@</CDROM_DEVICES>
<MONITOR>@@__m_desktopMonitorDescription__@@</MONITOR>

<VIDEO_CONTROLLERS>@@__m_videoControllerName__@@</VIDEO_CONTROLLERS>
<DISK_DRIVES>
@@__m_logicalDiskDriveList__@@</DISK_DRIVES>
<NETWORK_INTERFACES>
@@__m_networkAdapterConfigurationList__@@</NETWORK_INTERFACES>
<PRINTERS>@@__m_printerList__@@</PRINTERS>
<STARTUP_PROGRAMS>
@@__m_startupProgramsList__@@</STARTUP_PROGRAMS>
<PROCESSES>
@@__m_processList__@@</PROCESSES>
<INSTALLED_software>
@@__m_installedProgramsList__@@</INSTALLED_software>
</MachineStruct>
Upload an XML file using the Administrator Console

You can upload an XML file that contains device inventory information using the Administrator Console. This type of information is referred to as manual inventory information.

The KACE SMA Agent is installed on the device that is having its inventory information added.

You create the XML file on the device to be inventoried, then move to the KACE SMA to upload the file.

Manual inventory information appears on the Software page but it does not appear on the Software Catalog page. See:

Windows 32-bit systems: C:\Program Files\Quest\KACE
Windows 64-bit systems: C:\Program Files (x86)\Quest\KACE
Mac OS X systems: /Library/Application Support/Quest/KACE/bin
Linux systems: /opt/quest/kace/bin

Where filename is the path to the XML file you want to create. If the path contains spaces, enclose the entire path in double quotation marks.

The Agent collects the inventory data and generates the XML file.

2.
On the KACE SMA Administrator Console, go to the Devices list:
a.
Log in to the KACE SMA Administrator Console, http://KACE_SMA_hostname/admin. Or, if the Show organization menu in admin header option is enabled in the appliance General Settings, select an organization in the drop-down list in the top-right corner of the page next to the login information.
3.
Select Choose Action > New > Manual Device to display the Device Detail page.
4.
Under Import Device, click Browse.
5.
6.
Click Save.

The device's information is added to inventory. If you uploaded an XML file, the appliance ignores all other information on the page and uses the XML file for inventory information.

Submit inventory information using the API

Adding devices manually using the API

You can add devices to the KACE SMA manually by creating an XML file and uploading that file to the KACE SMA using the API (application programming interface). Adding devices in this way is useful for devices that might not be able to run the KACE SMA Agent for security reasons, and devices that cannot connect to the LAN (Local Area Network) to report inventory.

The XML file you create can be modeled on the sample script in this section.

Devices that are added to inventory through the API do not count toward the KACE SMA license limit. See View KACE SMA license information.

Application inventory that is uploaded through the API is displayed on the Software page, but it is not displayed on the Software Catalog page. See:

NOTE: The inventory API supports HTTP and HTTPS communications, depending on your appliance configuration. To upload inventory information, use the following URL: http://KACE SMA_hostname/service/wsapi.php, where KACE SMA_hostname is the hostname of your appliance.
Enable inventory API access

API inventory access enables you to upload inventory data using the API. This access is useful if you want to import inventory information from devices that do not have the KACE SMA Agent installed.

1.
Go to the appliance Control Panel:
If the Organization component is enabled on the appliance, log in to the KACE SMA System Administration Console, http://KACE_SMA_hostname/system, or select System in the drop-down list in the top-right corner of the page, then click Settings.
2.
Click Security Settings to display the Security Settings page.
3.
Select Enable Inventory API access.
4.
In the API password field, enter the password you want to use for API access.
5.
Click Save.

After the appliance restarts, you can use external API commands to upload inventory information.

Submit inventory information using the API

To submit inventory using the API, you first need to generate an XML file that contains the inventory information.

For examples, see:

After you generate an XML file with the expected content, you can submit inventory using the API.

Submit keyreq=true in the body of the request to get a session string in response.
a.
Construct the auth string as:
b.
Run MD5 on the auth string.
Submit req=newuuid&key=$auth in the body of the request to get a UUID in response.

Submit req=loadxml&key=$auth&KUID=$uuid&version=6.0 in the GET line and inventory XML in the body of the request.

See Sample Perl script.

Sample Perl script

You can use Perl scripts to upload XML files with device inventory information to the appliance.

The following is a sample Perl script that uploads a user-created XML file to the KACE SMA. For information about using this script, contact Quest Support at https://support.quest.com/contact-support.


#!/usr/bin/perl
use strict;
use warnings;
use WWW::Curl::Easy;
use XML::Simple;
use Data::Dumper;
use Digest::MD5 qw(md5 md5_hex md5_base64);

# Curl Output Handler ...
my $response;
sub write_data($$$$) {
$response = shift;
return length($response);
}

# -----------------------------------------------------
# KACE SMA Configuration ...
# -----------------------------------------------------
my $password = "xxx"; # password set in Settings -> Security Settings
my $host = "hostname"; # hostname or IP address here
my $http = "https"; # HTTP or HTTPS

# --------------------------------------------------------
# Build XML Package ...
# --------------------------------------------------------
my $simple = new XML::Simple(keeproot => 1, forcearray => 1);
my $data = $simple->XMLin("machine.xml");
my $uuid = $data->{MachineStruct}->[0]->{MAC}->[0];

# --------------------------------------------------------
# Setup CURL stuff ...
# --------------------------------------------------------
my $url = "$http://$host/service/wsapi.php";
my $ch = WWW::Curl::Easy->new;
$ch->setopt(CURLOPT_URL, $url); # set url to post to
$ch->setopt(CURLOPT_SSL_VERIFYPEER, 0); # ok for self-signed ca
$ch->setopt(CURLOPT_VERBOSE, 0);
$ch->setopt(CURLOPT_WRITEFUNCTION, \&write_data); # return into a variable
$ch->setopt(CURLOPT_HEADER, 0);
$ch->setopt(CURLOPT_TIMEOUT, 40); # times out after 4s
$ch->setopt(CURLOPT_POST, 1);
$ch->setopt(CURLOPT_COOKIEFILE, '/tmp/cookiefile.txt');

# --------------------------------------------------------
# STEP 1 - Request Session from KACE SMA ...
# --------------------------------------------------------
$ch->setopt(CURLOPT_POSTFIELDS, "keyreq=true"); # add POST fields
my $out = $ch->perform;
if ( $out != 0 ) {
die ("Error: $out " .
$ch->strerror($out) .
" " .
$ch->errbuf . "\n");
}
my $sess = $response;

# --------------------------------------------------------
# STEP 2 - Build Authorization Token ...
# --------------------------------------------------------
my $auth = md5_hex("$sess|".md5_hex($password));

# --------------------------------------------------------
# STEP 3 - Request new UUID from KACE SMA (if creating a new
# device record. If editing an existing device
# be sure it is set in the XML ...
# --------------------------------------------------------
if ( 1 ) {
print "Using UUID From XML File: $uuid\n";
} else {
$ch->setopt(CURLOPT_POSTFIELDS,"req=newuuid&key=$auth");
$out = $ch->perform;
if ( $out != 0 ) {
die ("Error: $out " .
$ch->strerror($out) .
" " .
$ch->errbuf . "\n");
}
$uuid = $response;
$data->{MachineStruct}->[0]->{MAC}->[0] = $uuid;
$data->{MachineStruct}->[0]->{NAME}->[0] = "WSAPI-" . $uuid;
print "Created New UUID: $uuid\n";
}

# convert Simple XML hash back to XML string ...
my $xml = $simple->XMLout(
$data,
KeepRoot => 1,
NoAttr => 1,
);

# --------------------------------------------------------
# STEP 4 - Send XML to KACE SMA ...
# --------------------------------------------------------
my @curlHeader = ("Content-Type: text/xml");
$url = "$http://$host/service/wsapi.php?req=loadxml&key=$auth&KUID=
$uuid&version=6.0";
$ch->setopt(CURLOPT_URL, $url); # set url to post to
$ch->setopt(CURLOPT_HTTPHEADER, \@curlHeader);
$ch->setopt(CURLOPT_POSTFIELDS, $xml);
$out = $ch->perform;
if ( $out != 0 ) {
die ("Error: $out " . $ch->strerror($out) . " " . $ch->errbuf . "\n");
}

print "Loaded $uuid to KACE SMA ($host)\n";

Valid XML schema for Windows

Files used to upload inventory information for Windows devices must conform to valid XML schemas.

The following is an example of a valid XML schema for Windows devices.


<?xml version="1.0" encoding="utf-8"?>
<MachineStruct xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi=">
http://www.w3.org/2001/XMLSchema-instance"
<NAME>@@__m_computerSystemName__@@</NAME>
<IP>@@__m_IPAddress__@@</IP>
<MAC>@@__m_versionKaceId__@@</MAC>
<OS_NAME>@@__m_operatingSystemCaption__@@</OS_NAME>
<OS_NUMBER>@@__m_operatingSystemVersion__@@</OS_NUMBER>
<OS_MAJOR>@@__m_operatingSystemVersionMajor__@@</OS_MAJOR>
<OS_MINOR>@@__m_operatingSystemVersionMinor__@@</OS_MINOR>
<SERVICE_PACK>@@__m_operatingSystemCsdVersion__@@</SERVICE_PACK>
<USER>@@__m_userAccountName__@@</USER>
<USER_FULLNAME>@@__m_userAccountFullName__@@</USER_FULLNAME>
<DOMAIN>@@__m_computerSystemDomain__@@</DOMAIN>
<OS_VERSION>@@__m_operatingSystemVersion__@@</OS_VERSION>
<OS_BUILD>@@__m_operatingSystemBuildNumber__@@</OS_BUILD>
<OS_INSTALLED_DATE>@@__m_operatingSystemInstallDate__@@</OS_INSTALLED_DATE>
<LAST_REBOOT>@@__m_operatingSystemLastBootupTime__@@</LAST_REBOOT>
<LAST_SHUTDOWN>@@__m_operatingSystemLastBootupTime__@@</LAST_SHUTDOWN>
<UPTIME>@@__m_operatingSystemUptime__@@</UPTIME>
<SYSTEM_DIRECTORY>@@__m_operatingSystemWindowsDirectory__@@</SYSTEM_DIRECTORY>
<SYSTEM_DESCRIPTION>@@__m_operatingSystemDescription__@@</SYSTEM_DESCRIPTION>
<RAM_TOTAL>@@__m_physicalMemoryTotalSize__@@</RAM_TOTAL>
<RAM_USED>@@__m_operatingSystemUsedPhysicalMemory__@@</RAM_USED>
<CS_MANUFACTURER>@@__m_computerSystemManufacturer__@@</CS_MANUFACTURER>
<CS_MODEL>@@__m_computerSystemModel__@@</CS_MODEL>
<CHASSIS_TYPE>@@__m_systemEnclosureChassisType__@@</CHASSIS_TYPE>
<TZ_AGENT>@@__m_versionTimeZone__@@</TZ_AGENT>
<USER_LOGGED>@@__m_computerSystemUserName__@@</USER_LOGGED>
<CS_DOMAIN>@@__m_computerSystemDomain__@@</CS_DOMAIN>
<USER_NAME>@@__m_userAccountName__@@</USER_NAME>
<USER_DOMAIN>@@__m_userAccountDomain__@@</USER_DOMAIN>
<BIOS_NAME>@@__m_biosName__@@</BIOS_NAME>
<BIOS_VERSION>@@__m_biosVersion__@@</BIOS_VERSION>
<BIOS_MANUFACTURER>@@__m_biosManufacturer__@@</BIOS_MANUFACTURER>
<BIOS_DESCRIPTION>@@__m_biosDescription__@@</BIOS_DESCRIPTION>
<BIOS_SERIAL_NUMBER>@@__m_biosSerialNumber__@@</BIOS_SERIAL_NUMBER>
<MOTHERBOARD_PRIMARY_BUS>@@__m_motherboardDevicePrimaryBusType__@@
</MOTHERBOARD_PRIMARY_BUS>
<MOTHERBOARD_SECONDARY_BUS>@@__m_motherboardDeviceSecondaryBusType__@@
</MOTHERBOARD_SECONDARY_BUS>
<PROCESSORS>CPU Chip Count: @@__m_processorCount__@@
CPU Core Count: @@__m_processorCoreCount__@@
@@__m_processorList__@@ </PROCESSORS>
<SOUND_DEVICES>@@__m_soundDeviceDescription__@@</SOUND_DEVICES>
<CDROM_DEVICES>@@__m_CDROMDeviceName__@@</CDROM_DEVICES>
<VIDEO_CONTROLLERS>@@__m_videoControllerName__@@</VIDEO_CONTROLLERS>
<REGISTRY_SIZE>@@__m_registryCurrentSize__@@</REGISTRY_SIZE>
<REGISTRY_MAX_SIZE>@@__m_registryMaximumSize__@@</REGISTRY_MAX_SIZE>
<DISK_DRIVES>
@@__m_logicalDiskDriveList__@@ </DISK_DRIVES>
<NETWORK_INTERFACES>
@@__m_networkAdapterConfigurationList__@@ </NETWORK_INTERFACES>
<PRINTERS>@@__m_printerList__@@</PRINTERS>
<STARTUP_PROGRAMS>
@@__m_startupProgramsList__@@ </STARTUP_PROGRAMS>
<PROCESSES>
@@__m_processList__@@ </PROCESSES>
<NT_SERVICES>
@@__m_servicesList__@@ </NT_SERVICES>
<INSTALLED_software>
@@__m_installedProgramsList__@@ </INSTALLED_software>
<CLIENT_VERSION>@@__m_appVersion__@@</CLIENT_VERSION>
</MachineStruct>
Example using the XML schema for Windows devices

You can view an example of a file that conforms to the valid XML schema for Windows devices.

The following is an example of valid XML that uses the schema in Valid XML schema for Windows.


<?xml version="1.0" encoding="utf-8"?>
<MachineStruct xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NAME>TestComputer</NAME>
<IP>10.10.10.10</IP>
<MAC>F1234567-C2D2-4055-85BB-294E6A3D22D9</MAC>
<OS_NAME>Microsoft Windows 7 Professional</OS_NAME>
<OS_NUMBER>6.1.7601.17514</OS_NUMBER>
<OS_MAJOR>6</OS_MAJOR>
<OS_MINOR>1</OS_MINOR>
<SERVICE_PACK>Service Pack 1</SERVICE_PACK>
<USER>Administrator</USER>
<USER_FULLNAME>Tom Silver</USER_FULLNAME>
<DOMAIN>WORK</DOMAIN>
<OS_VERSION>6.1.7601</OS_VERSION>
<OS_BUILD>17514</OS_BUILD>
<OS_INSTALLED_DATE>2017-08-30 14:22:39 -0400</OS_INSTALLED_DATE>
<LAST_REBOOT>2017-08-30 14:25:05 -0400</LAST_REBOOT>
<LAST_SHUTDOWN>2017-08-30 14:25:05 -0400</LAST_SHUTDOWN>
<UPTIME>4 days </UPTIME>
<SYSTEM_DIRECTORY>C:\WINDOWS</SYSTEM_DIRECTORY>
<SYSTEM_DESCRIPTION>Windows 7 Machine</SYSTEM_DESCRIPTION>
<RAM_TOTAL>512.00MB</RAM_TOTAL>
<RAM_USED>180MB</RAM_USED>
<CS_MANUFACTURER>VMware, Inc.</CS_MANUFACTURER>
<CS_MODEL>VMware Virtual Platform</CS_MODEL>
<CHASSIS_TYPE>Other</CHASSIS_TYPE>
<USER_LOGGED>Tom</USER_LOGGED>
<CS_DOMAIN>WORK</CS_DOMAIN>
<USER_NAME>Administrator</USER_NAME>
<USER_DOMAIN>Work</USER_DOMAIN>
<BIOS_NAME>PhoenixBIOS 4.0 Release 5.5 </BIOS_NAME>
<BIOS_VERSION>INTEL - 6040000</BIOS_VERSION>
<BIOS_MANUFACTURER>Phoenix Technologies LTD</BIOS_MANUFACTURER>
<BIOS_DESCRIPTION>PhoenixBIOS 4.0 Release 5.5 </BIOS_DESCRIPTION>
<BIOS_SERIAL_NUMBER>VMware-56 4d bd d3 5e 4f a5 4e-6a ce a0 d3 39 bd ae 02
</BIOS_SERIAL_NUMBER>
<MOTHERBOARD_PRIMARY_BUS>PCI</MOTHERBOARD_PRIMARY_BUS>
<MOTHERBOARD_SECONDARY_BUS>ISA</MOTHERBOARD_SECONDARY_BUS>
<PROCESSORS>CPU Chip Count: 1
CPU Core Count: 0
CPU0: Intel Celeron processor (0 cores) </PROCESSORS>
<SOUND_DEVICES>Creative AudioPCI (ES1371,ES1373) (WDM)
</SOUND_DEVICES>
<CDROM_DEVICES>TSSTcorp DVD+-RW TS-U633F
</CDROM_DEVICES>
<VIDEO_CONTROLLERS>VMware SVGA II
</VIDEO_CONTROLLERS>
<REGISTRY_SIZE>1MB</REGISTRY_SIZE>
<REGISTRY_MAX_SIZE>86MB</REGISTRY_MAX_SIZE>
<DISK_DRIVES>
<DiskDrive>
<NAME>Drive C: (Physical Disk) FileSystem: NTFS Used: 2.08GB Total: 39.99GB</NAME>
<DISK_SIZE>39.9906</DISK_SIZE>
<DISK_USED>2.07966</DISK_USED>
<DISK_FREE>37.9109</DISK_FREE>
<PERCENT_USED>5.2</PERCENT_USED>
</DiskDrive>
</DISK_DRIVES>
<NETWORK_INTERFACES>
<NetworkInterface>
<NIC>AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler
Miniport</NIC>
<MAC>00:0C:29:BD:AE:03</MAC>
<IP>192.168.220.132</IP>
<DHCP_ENABLED>True</DHCP_ENABLED>
</NetworkInterface>
</NETWORK_INTERFACES>
<PRINTERS></PRINTERS>
<STARTUP_PROGRAMS>
<StartupProgram>
<NAME>desktop</NAME>
</StartupProgram>
<StartupProgram>
<NAME>VMware Tools</NAME>
<COMMAND_EXE>C:\Program Files\VMware\VMware Tools\VMwareTray.exe</COMMAND_EXE>
<COMMAND_ARGS />
<FILE_INFO>
<FILE_NAME>VMwareTray.exe</FILE_NAME>
<FILE_DESCRIPTION>VMware Tools tray application</FILE_DESCRIPTION>
<FILE_VERSION>8.4.6.16648</FILE_VERSION>
<PRODUCT_NAME>VMware Tools</PRODUCT_NAME>
<PRODUCT_VERSION>8.4.6 build-385536</PRODUCT_VERSION>
<COMPANY_NAME>VMware, Inc.</COMPANY_NAME>
</FILE_INFO>
</StartupProgram>
<StartupProgram>
<NAME>VMware User Process</NAME>
<COMMAND_EXE>C:\Program Files\VMware\VMware Tools\VMwareUser.exe</COMMAND_EXE>
<COMMAND_ARGS />
<FILE_INFO>
<FILE_NAME>VMwareUser.exe</FILE_NAME>
<FILE_DESCRIPTION>VMware Tools Service</FILE_DESCRIPTION>
<FILE_VERSION>8.4.6.16648</FILE_VERSION>
<PRODUCT_NAME>VMware Tools</PRODUCT_NAME>
<PRODUCT_VERSION>8.4.6 build-385536</PRODUCT_VERSION>
<COMPANY_NAME>VMware, Inc.</COMPANY_NAME>
</FILE_INFO>
</StartupProgram>
</STARTUP_PROGRAMS>
<PROCESSES>
<MachineProcess>
<NAME>AMPAgent.exe</NAME>
<COMMAND_EXE>C:\Program Files\Quest\KACE\AMPAgent.exe</COMMAND_EXE>
<COMMAND_ARGS />
<FILE_INFO>
<FILE_NAME>AMPAgent.exe</FILE_NAME>
<FILE_DESCRIPTION>AMP Service</FILE_DESCRIPTION>
<FILE_VERSION>5.2.38916</FILE_VERSION>
<PRODUCT_NAME>KACE Agent</PRODUCT_NAME>
<PRODUCT_VERSION>5.2.38916</PRODUCT_VERSION>
<COMPANY_NAME>Quest Software Inc.</COMPANY_NAME>
</FILE_INFO>
</MachineProcess>
</PROCESSES>
<NT_SERVICES>
<NtService>
<NAME>Alerter</NAME>
<DISPLAY_NAME>Alerter</DISPLAY_NAME>
<STATUS>SERVICE_STOPPED</STATUS>
<STARTUP_TYPE>SERVICE_DISABLED</STARTUP_TYPE>
<DESCRIPTION />
<LOGON_AS_USER>NT AUTHORITY\LocalService</LOGON_AS_USER>
<CAN_INTERACT_WITH_DESKTOP>False</CAN_INTERACT_WITH_DESKTOP>
<COMMAND_EXE>C:\WINDOWS\system32\svchost.exe</COMMAND_EXE>
<COMMAND_ARGS> -k LocalService</COMMAND_ARGS>
<FILE_INFO>
<FILE_NAME>svchost.exe</FILE_NAME>
<FILE_DESCRIPTION>Generic Host Process for Win32 Services</FILE_DESCRIPTION>
<FILE_VERSION>6.1.7600.16385 (win7_rtm.090713-1255)</FILE_VERSION>
<PRODUCT_NAME>Microsoft® Windows® Operating System</PRODUCT_NAME>
<PRODUCT_VERSION>6.1.7600.16385</PRODUCT_VERSION>
<COMPANY_NAME>Microsoft Corporation</COMPANY_NAME>
</FILE_INFO>
</NtService>
</NT_SERVICES>
<INSTALLED_software>
<software>
<DISPLAY_VERSION>5.2.38916</DISPLAY_VERSION>
<HELP_LINK />
<README />
<INSTALL_DATE>20170830</INSTALL_DATE>
<PUBLISHER>Quest Software Inc.</PUBLISHER>
<UNINSTALL_STRING />
<URLINFO_ABOUT />
<DISPLAY_NAME>Quest KACE Agent</DISPLAY_NAME>
</software>
</INSTALLED_software>
<CLIENT_VERSION>8.0.xxxxx</CLIENT_VERSION>
</MachineStruct>
Valid XML schema for Linux and Mac devices

Files used to upload inventory information for Linux and Mac devices must use valid XML schemas.

The following is an example of an XML schema for Linux and Mac devices.


<?xml version="1.0" encoding="utf-8"?>
<MachineStruct>
<NAME>@@__m_versionHostName__@@</NAME>
<CLIENT_VERSION>@@__m_appVersion__@@</CLIENT_VERSION>
<IP>@@__m_IPAddress__@@</IP>
<MAC>@@__m_versionKaceId__@@</MAC>
<OS_NAME>@@__m_operatingSystemCaption__@@</OS_NAME>
<OS_NUMBER>@@__m_operatingSystemVersion__@@</OS_NUMBER>
<OS_MAJOR>@@__m_operatingSystemVersionMajor__@@</OS_MAJOR>
<OS_MINOR>@@__m_operatingSystemVersionMinor__@@</OS_MINOR>
<SERVICE_PACK></SERVICE_PACK>
<INSTALL_DATE></INSTALL_DATE>

<OS_ARCH>@@__m_operatingSystemOSArchitecture__@@</OS_ARCH>
<OS_FAMILY>@@__m_operatingSystemOSFamily__@@</OS_FAMILY>
<OS_VERSION>@@__m_operatingSystemVersion__@@</OS_VERSION>
<OS_BUILD>@@__m_operatingSystemBuildNumber__@@</OS_BUILD>
<DOMAIN>@@__m_userAccountDomain__@@</DOMAIN>
<CS_DOMAIN>@@__m_userAccountDomain__@@</CS_DOMAIN>

<LAST_REBOOT>@@__m_operatingSystemLastBootupTime__@@</LAST_REBOOT>
<TZ_AGENT>@@__m_versionTimeZone__@@</TZ_AGENT>
<UPTIME>@@__m_operatingSystemUptime__@@</UPTIME>

<RAM_TOTAL>@@__m_operatingSystemTotalVisibleMemorySize__@@</RAM_TOTAL>
<RAM_USED>@@__m_operatingSystemUsedPhysicalMemory__@@</RAM_USED>
<CS_MANUFACTURER>@@__m_biosManufacturer__@@</CS_MANUFACTURER>
<CS_MODEL></CS_MODEL>
<USER_LOGGED>@@__m_userAccountName__@@</USER_LOGGED>
<USER>@@__m_userAccountName__@@</USER>
<USER_NAME>@@__m_userAccountName__@@</USER_NAME>
<USER_FULLNAME>@@__m_userAccountFullName__@@</USER_FULLNAME>
<USER_DOMAIN>@@__m_userAccountDomain__@@</USER_DOMAIN>
<BIOS_NAME>@@__m_biosName__@@</BIOS_NAME>
<BIOS_VERSION>@@__m_biosVersion__@@</BIOS_VERSION>
<BIOS_MANUFACTURER>@@__m_biosManufacturer__@@</BIOS_MANUFACTURER>
<BIOS_DESCRIPTION>@@__m_biosName__@@</BIOS_DESCRIPTION>
<BIOS_SERIAL_NUMBER>@@__m_biosSerialNumber__@@</BIOS_SERIAL_NUMBER>
<MOTHERBOARD_PRIMARY_BUS></MOTHERBOARD_PRIMARY_BUS>
<MOTHERBOARD_SECONDARY_BUS></MOTHERBOARD_SECONDARY_BUS>
<PROCESSORS>@@__m_processorList__@@</PROCESSORS>
<SOUND_DEVICES>@@__m_soundDeviceDescription__@@</SOUND_DEVICES>
<CDROM_DEVICES>@@__m_CDROMDeviceName__@@</CDROM_DEVICES>
<MONITOR>@@__m_desktopMonitorDescription__@@</MONITOR>

<VIDEO_CONTROLLERS>@@__m_videoControllerName__@@</VIDEO_CONTROLLERS>
<DISK_DRIVES>
@@__m_logicalDiskDriveList__@@</DISK_DRIVES>
<NETWORK_INTERFACES>
@@__m_networkAdapterConfigurationList__@@</NETWORK_INTERFACES>
<PRINTERS>@@__m_printerList__@@</PRINTERS>
<STARTUP_PROGRAMS>
@@__m_startupProgramsList__@@</STARTUP_PROGRAMS>
<PROCESSES>
@@__m_processList__@@</PROCESSES>
<INSTALLED_software>
@@__m_installedProgramsList__@@</INSTALLED_software>
</MachineStruct>
Upload an XML file using the Administrator Console

You can upload an XML file that contains device inventory information using the Administrator Console. This type of information is referred to as manual inventory information.

The KACE SMA Agent is installed on the device that is having its inventory information added.

You create the XML file on the device to be inventoried, then move to the KACE SMA to upload the file.

Manual inventory information appears on the Software page but it does not appear on the Software Catalog page. See:

Windows 32-bit systems: C:\Program Files\Quest\KACE
Windows 64-bit systems: C:\Program Files (x86)\Quest\KACE
Mac OS X systems: /Library/Application Support/Quest/KACE/bin
Linux systems: /opt/quest/kace/bin

Where filename is the path to the XML file you want to create. If the path contains spaces, enclose the entire path in double quotation marks.

The Agent collects the inventory data and generates the XML file.

2.
On the KACE SMA Administrator Console, go to the Devices list:
a.
Log in to the KACE SMA Administrator Console, http://KACE_SMA_hostname/admin. Or, if the Show organization menu in admin header option is enabled in the appliance General Settings, select an organization in the drop-down list in the top-right corner of the page next to the login information.
3.
Select Choose Action > New > Manual Device to display the Device Detail page.
4.
Under Import Device, click Browse.
5.
6.
Click Save.

The device's information is added to inventory. If you uploaded an XML file, the appliance ignores all other information on the page and uses the XML file for inventory information.

Related Documents