Understanding the schema for Basic Inventory in 7.5 is very useful when creating reports. Since Basic Inventory contains generally valuable information, it is essential for creating custom reports that includes other solution data. The goal of this document is to provide both the direct schema and descriptions of values and columns in order to provide you a guide when using this data.
Contents
Introduction
Database Schema
Inv_AeX_AC_Client_Agent
Inv_AeX_AC_Client_Connectivity
Inv_AeX_AC_Identification
Inv_AeX_AC_Location
Inv_AeX_AC_NT_Services
Inv_AeX_AC_Primary_User
Inv_AeX_AC_Roles
Inv_AeX_AC_TCPIP
Inv_AeX_AC_TCPIPv6
Inv_AeX_AC_VirtualMachine
Conclusion
Introduction
Documenting database schema is not an easy task. SQL can provide a table-column view of all selected tables, but this does not account for any interdependencies between tables or what columns are meant for. This guide also provides background on the purpose of the table, including notes for some of the tables from Development.
NOTE: The information in this document may change, though at the time of publication this is believed to be the accurate information for the release of the Symantec Management Platform 7.5.
Database Schema
Unlike Inventory Solution tables, Basic Inventory tables are flat, containing no sub or tertiary tables, nor have association tables for the direct schema. The presentation will be off each of the tables individually.
Note the following when reviewing the grids:
- Display Name represents how the column will be labeled when working within the Symantec Management Console, including reports, Resource Manager details, Pickers, etc. This also is the name of the column in SQL.
- Descriptions are provided to assist in understanding what the column is for. The description should be used in conjunction with the name of the column as this will lend additional detail on the usage of the data stored therein.
- The Abbrev column in the presented tables is how the data is labeled when sent up to the SMP via the Basic Inventory NSE file.
- The Null field asks Yes/No on whether the column allows NULL or blank values.
Inv_AeX_AC_Client_Agent
Type > Multi-row.
Contains information about the agents installed on the computer. This is commonly used to determine whether an agent needs to be upgraded.
Name | Key | Null | Abbrev | ID | Type | Description |
---|---|---|---|---|---|---|
Agent Name | Y |
| c0 | 1 | nvarchar(50) | Name of the agent |
Product Version |
| Y | c1 | 2 | nvarchar(20) | Version of the product that installed the agent |
Build Number |
| Y | c2 | 3 | nvarchar(6) | Build number of the agent installed |
Install Path |
| Y | c3 | 4 | nvarchar(128) | Location of the agent |
Ident |
| Y | c4 | 5 | nvarchar(50) | String which uniquely identifies the agent. This string must not change and can be used in queries to determine if the agent is installed. This is different from the agent name, in that the agent name can and will change with product rebranding and the like. Platform-independent |
ProgId |
| Y | c5 | 6 | nvarchar(50) | Program ID of the agent (string used to create an instance of the agent object |
Agent Class Guid |
| Y | c6 | 7 | uniqueidentifier | GUID of the agent. Platform-dependent |
64bit |
| Y | c7 | 8 | bit | Flag indicating whether the agent is 64-bit. Available starting from 7.1. |
NOTE: The Ident and Guid fields are meant to be used for building collections instead of Name.
Solutions are advised to put a record of the agents they provide to SolutionClientAgents page.
Inv_AeX_AC_Client_Connectivity
Type > Single-row.
Contains statistics about how the computer connects to the network.
Name | Key | Null | Abbrev | ID | Type | Description |
---|---|---|---|---|---|---|
Lan |
| Y | c0 | 1 | int | Percentage of time the computer connects via a high speed interface |
Wan |
| Y | c1 | 2 | int | Percentage of time the computer connects via a P2P interface |
None |
| Y | c2 | 3 | int | Percentage of time the computer is not connected to a network at all |
Inv_AeX_AC_Identification
Type > Single-row.
Contains information used to identify the computer. Recently, additional sundry information about the platform has also crept into this table.
Name | Key | Null | Abbrev | ID | Type | Description |
---|---|---|---|---|---|---|
GUID | Y |
| c0 | 1 | nvarchar(40) | The GUID of the computer. Always blank after V6.0 |
Name |
| Y | c1 | 2 | nvarchar(64) | The NETBIOS or host name of the computer |
Domain |
| Y | c2 | 3 | nvarchar(64) | The NT domain the computer is a member of |
System Type |
| Y | c3 | 4 | nvarchar(64) | Platform type (see below) |
OS Name |
| Y | c4 | 5 | nvarchar(64) | The name of the operating system, this is provided by the OS |
OS Type |
| Y | c5 | 6 | nvarchar(64) | The type of operating system, such as Home, Professional etc |
OS Version |
| Y | c6 | 7 | nvarchar(64) | The major and minor version of the OS, such as 5.1 |
OS Revision |
| Y | c7 | 8 | nvarchar(64) | Revision string describing the service pack or update |
Last Logon User |
| Y | c8 | 9 | nvarchar(64) | Name of the user logged on when basic inventory was last sent |
Last Logon Domain |
| Y | c9 | 10 | nvarchar(64) | Domain the user logged into when basic inventory was last sent |
Client Date |
| Y | c10 | 11 | datetime | The date and time the agent generated basic inventory |
OS Major Version |
| Y | c11 | 12 | int | OS major version number |
OS Minor Version |
| Y | c12 | 13 | int | OS minor version number |
OS Build Number |
| Y | c13 | 14 | int | OS build number |
OS Primary Language |
| Y | c14 | 15 | int | Primary language the OS is configured to use |
OS Sub Language |
| Y | c15 | 16 | int | Sub language the OS is configured to use |
User Primary Language |
| Y | c16 | 17 | int | Primary language configured for the user |
User Sub Language |
| Y | c17 | 18 | int | Sub language configured for the user |
Install Primary Language |
| Y | c18 | 19 | int | Primary language of the installation, useful to determine the language for patch installations |
Install Sub Language |
| Y | c19 | 20 | int | Sub language of the installation, useful to determine the language for patch installations. |
FQDN |
| Y | c20 | 21 | nvarchar(256) | FQDN of the computer |
Unique ID |
| Y | c21 | 22 | nvarchar(64) | Unique ID of the computer hardware from the BIOS |
Timezone Bias |
| Y | c22 | 23 | int | Time zone of the computer, in minutes. If the timezone is GMT+10, this will contain 600. |
Hardware Serial Number |
| Y | c23 | 24 | nvarchar(64) | Serial number (e.g. mother board ID) of the computer. Available starting from 7.0SP3. |
BIOS Serial Number |
| Y | c24 | 25 | nvarchar(64) | BIOS Serial Number |
HW Chassis Serial Number |
| Y | c25 | 26 | nvarchar(256) | HW Chassis Serial Number |
OS System Mask |
| Y | c26 | 27 | bigint | Set of bit fields (various characteristics, attributes and features of OS) (see below) |
OS Comparable Version |
| Y | c27 | 28 | bigint | OS version (major, minor, build number, subversion) represented in the form suitable for comparison operations. Calculated by the formula: ((((major * 65536 + minor) * 65536) [ + build ] ) * 65636) [ + subversion ] |
OS Canonical Name |
| Y | c28 | 29 | nvarchar(128) | Short name of OS (see 'OS Canonical Names' table below) |
NOTES: Possible values for the System Type column:
System Type | Description |
---|---|
Win32 | 32-bit Windows |
Win64 | 64-bit Windows |
Win | Windows, unknown architecture. Only use this if the architecture cannot be determined |
Unix | Linux, Solaris, AIX, HP-UX |
Mac | Mac OS X |
NOTES: OS System Mask bit fields layout and description
Description | Size (bits) | Position | Possible Values |
---|---|---|---|
OS Edition | 8 | 00000000000000FF | (see 'OS Editions' table below) |
(reserved) | 4 | 0000000000000F00 (shift = 8) |
|
OS Service Pack Number | 4 | 000000000000F000 (shift = 12) | SP number + 1 (0 - unknown; 1 - no SP, 2 - SP 1 etc.) |
Additional Tags | 8 | 0000000000FF0000 (shift = 16) | Set of flags: 1 - Core Installation (for Windows Server OS) 2 - Embedded OS 4 - Tablet (Windows XP Tablet Edition) 8 - Fundamentals 16 - Hyper-V |
(reserved) | 4 | 000000000F000000 (shift = 24) |
|
OS Arch. | 4 | 00000000F0000000 (shift = 28) | 0 - undefined 1 - 32 bit 2 - 64 bit |
OS Canonical Name | 8 | 000000FF00000000 (shift = 32) | (see 'OS Canonical Names' table below) |
(reserved) | 8 | 0000FF0000000000 (shift = 40) |
|
OS System Type | 3 | 0007000000000000 (shift = 48) | 1 - Mobile (currently not used) 2 - Workstation 4 - Server |
(reserved) | 5 | 00F8000000000000 (shift = 51) |
|
OS Platform | 4 | 0F00000000000000 (shift = 56) | 1 - Windows 2 - Mac (currently not used) 4 - Linux (currently not used) 8 - Unix (currently not used) |
(reserved) | 4 | F000000000000000 (shift = 60) |
|
NOTES: OS Canonical Names
'OS Canonical Name' column value | Bit field value in 'OS System Mask' | Notes |
---|---|---|
Windows 3.X | 1 | (currently not used) |
Windows 9X | 2 | (currently not used) |
Windows ME | 3 | (currently not used) |
Windows CE | 8 | (currently not used) |
Windows Mobile | 9 | (currently not used) |
Windows Phone | 10 | (currently not used) |
Windows RT | 11 | (currently not used) |
Windows NT | 16 | (supported for legacy agents only) |
Windows 2000 | 17 | (supported for legacy agents only) |
Windows Server 2000 | 18 | (supported for legacy agents only) |
Windows XP | 20 |
|
Windows Server 2003 | 21 |
|
Windows Server 2003 R2 | 22 |
|
Windows Vista | 23 |
|
Windows Server 2008 | 25 |
|
Windows 7 | 24 |
|
Windows Server 2008 R2 | 26 |
|
Windows 8 | 27 |
|
Windows Server 2012 | 28 |
|
Windows 8.1 | 30 |
|
Windows Server 2012 R2 | 29 |
|
NOTES: OS Editions for Windows
OS System Mask.OS System Type bit field value | OS System Mask.OS Edition bit field value | OS Edition Name |
---|---|---|
2 (Workstation) | 1 | Compact |
2 (Workstation) | 2 | Starter |
2 (Workstation) | 3 | Classic |
2 (Workstation) | 4 | Core |
2 (Workstation) | 5 | Standard |
2 (Workstation) | 6 | Home Basic |
2 (Workstation) | 7 | Home Premium |
2 (Workstation) | 8 | Media Center |
2 (Workstation) | 9 | Business |
2 (Workstation) | 10 | Professional |
2 (Workstation) | 11 | Enterprise |
2 (Workstation) | 12 | Ultimate |
2 (Workstation) | 13 | Tablet |
2 (Workstation) | 14 | Home |
2 (Workstation) | 15 | Embedded |
4 (Server) | 64 | Web |
4 (Server) | 65 | Foundation |
4 (Server) | 66 | Essentials |
4 (Server) | 67 | Standard |
4 (Server) | 68 | Advanced |
4 (Server) | 69 | Enterprise |
4 (Server) | 70 | Datacenter |
4 (Server) | 71 | Small Business |
4 (Server) | 72 | Essential Business |
4 (Server) | 73 | MultiPoint |
4 (Server) | 74 | Storage |
4 (Server) | 75 | Home Server |
4 (Server) | 76 | Compute Cluster |
4 (Server) | 77 | HPC |
Additional NOTES:
- On Unix the Name field may be set to value returned by system command "hostname" or to the host name part of FQDN (depending on the settings specified by policies).
- On Mac the Name field may be set to the computer name (as specified in System Preferences) or to the host name part of FQDN (depending on the settings specified by policies).
- On Unix and Mac the Domain field will be either empty or set to the domain part of FQDN (depending on the settings specified by policies).
- OS System Mask, OS Comparable Version, OS Canonical Name columns are currently supported only for Windows Agents.
- Legacy Agents support for OS System Mask, OS Comparable Version, OS Canonical Name
- Problem statement: The mentioned dataclass columns were introduced in 7.5 SP1 release. As it was shown above construction of the 3 fields is very complex and basically can only be properly filled at the agent side. Components that might be NOT aware how to fill the new column
Active Directory Computers import - agentless
Network Discovery component - agentless
Legacy agent - do not generate these fields in 7.5 and earlier
Data Connector - filling of the concrete columns depends ONLY on the customer's choice
On the other hand there are some filters in 7.5 SP1 which become based off the new fields. NULLs in these fields would mean that certain computers would fall off the new filters' definition.
Conclusion: Each time we detect a dataclass row without these fields we need to reconstruct then based on the other fields.
Reconstruction Basics.
- Each of the 3 columns is reconstructed based off the OTHER "well-known" fields of the Aex AC Identification dataclass - if present. If OS Name column is present reconstruction should succeed. Otherwise it will be skip and all the 3 columns will have NULL values. The fields participating are:
- System Type
- OS Name - this column is the only MUST HAVE column in the reconstruction process. However absence of the other columns may result in the no-accurate reconstruction
- OS Type
- OS Version
- OS Revision
- OS Major Version
- OS Minor Version
- OS Build Number
- When System Type = 'Unix' or 'Mac' the processing is skipped, because ULM and MAC filters are not dependent on the new fields. Also ULM/MAC agents do not fill these fields either
- The reconstruction occurs EACH TIME when a column is absent and Aex AC Identification dataclass is being written. The primary cases are
- Importing NSE with Aex AC Identification data
- Compute Item Save() operation which includes
- Computer item creation with .Aex AC Identification dataclass data
- Computer item update with .Aex AC Identification dataclass data
- On 7.x-> 7.5 SP1 Upgrade. ALL the Aex AC Identification dataclass rows will pass the COMPULSORY reconstruction. The actual reconstruction will be kicked off immediately when AexSvc will start up. Reasons for such compulsory reconstruction:
- After upgrade there is no guarantee that all the agents will be upgraded immediately
- After upgrade there is no guarantee that all the agents are up and running, so not guarantee they would send basic inventory and provoke the reconstruction process via NSE
- There might be certain amount of unmanaged computers which will never be updated, so there would be no kick off of the reconstruction process
Inv_AeX_AC_Location
Type > Single-row.
This information is populated from AD. In some environments where an AD server is not reachable or AD is not configured this will not yield reliable information.
Name | Key | Null | Abbrev | ID | Type | Description |
---|---|---|---|---|---|---|
Fully Qualified Domain Name | Y |
| c0 | 1 | nvarchar(256) | FQDN of the computer. |
Distinguished Name |
| Y | c1 | 2 | nvarchar(256) | Distinguished name of the computer in AD. |
NOTES: The Distinguished Name field is not filled by Unix and Mac computers.
Inv_AeX_AC_NT_Services
Type > Multi-row.
Contains information about every service installed on the computer.
Name | Key | Null | Abbrev | ID | Type | Description |
---|---|---|---|---|---|---|
Name | Y |
| c0 | 1 | nvarchar(255) | Short name of the service, used for identification |
Description |
| Y | c1 | 2 | varchar(255) | Descriptive name of the service |
Path |
| Y | c2 | 3 | nvarchar(255) | Path to the service executable |
StartupType |
| Y | c3 | 4 | nvarchar(16) | Whether the service is set to start automatically, manually, or is disabled. |
LogonAs |
| Y | c4 | 5 | nvarchar(255) | Account used to run the service. |
Version |
| Y | c5 | 6 | nvarchar(16) | Version of the service. |
NOTES: This data class is not filled by Unix and Mac computers.
Inv_AeX_AC_Primary_User
Type > Multi-row.
Contains a record for every month for the last year indicating who the primary user of the computer is for that month.
Name | Key | Null | Abbrev | ID | Type | Description |
---|---|---|---|---|---|---|
Month | Y |
| c0 | 1 | nvarchar(20) | Month that the primary user data applies to. Valid values are ''January'', ''February'', ''March'', ''April'', ''May'', ''June'', ''July'', ''August'', ''September'', ''October'', ''November'', ''December'' |
User |
| Y | c1 | 2 | nvarchar(64) | Name of the user |
Domain |
| Y | c2 | 3 | nvarchar(64) | Domain of the user |
Server Generated |
| Y | c3 | 4 | nvarchar(tinyint) | Always false in 7.0 and later |
Inv_AeX_AC_Roles
Type > Multi-row.
The roles of the computer are determined by the services installed on the computer. For instance, if SQL server is installed it is considered a SQL server. This is legacy information.
Name | Key | Null | Abbrev | ID | Type | Description |
---|---|---|---|---|---|---|
Role | Y |
| c0 | 1 | nvarchar(255) | Name of the role. |
Inv_AeX_AC_TCPIP
Type > Multi-row.
Contains information about network interfaces on the computer.
Name | Key | Null | Abbrev | ID | Type | Description |
---|---|---|---|---|---|---|
MAC Address |
| Y | c0 | 1 | nvarchar(24) | MAC address of the NIC in dash format. E.g 00-1A-A0-B6-E6-5A |
IP Address | Y |
| c1 | 2 | nvarchar(16) | IP address of the interface |
Subnet Mask |
| Y | c2 | 3 | nvarchar(16) | Subnet mask of the interface |
Subnet |
| Y | c3 | 4 | nvarchar(16) | Subnet of the interface |
Default Gateway |
| Y | c4 | 5 | nvarchar(16) | Default gateway assigned to the interface |
DHCPEnabled |
| Y | c5 | 6 | int | Indicates whether DHCP is supported and enabled for the interface. This can report incorrect values on old platforms where DHCP is unknown. |
Device | Y |
| c6 | 7 | nvarchar(128) | Name of the interface card |
Host Name |
| Y | c7 | 8 | nvarchar(128) | Name of the computer, this is the host part of the FQDN |
Primary DNS Suffix |
| Y | c8 | 9 | nvarchar(255) | Primary DNS suffix for the interface. Combining this with the Host Name can give a FQDN which identifies the interface. |
Node Type |
| Y | c9 | 10 | nvarchar(24) | Adapter type. One of the following values: (Broadcast, P2P, Mixed, Hybrid) |
IP Routing Enabled |
| Y | c10 | 11 | int | Specifies whether routing is enabled on the local computer. Value 1 for routing enabled and 0 for routing disabled. |
WINS Proxy Enabled |
| Y | c11 | 12 | int | Value of 1 indicates that the computer is configured to act as a WINS proxy on the local subnet. |
DHCP Server |
| Y | c12 | 13 | nvarchar(16) | IP address of the DHCP server |
DNS Server 1 |
| Y | c13 | 14 | nvarchar(16) | IP address of the assigned DNS server |
DNS Server 2 |
| Y | c14 | 15 | nvarchar(16) | IP address of the assigned DNS server |
DNS Server 3 |
| Y | c15 | 16 | nvarchar(16) | IP address of the assigned DNS server |
Primary WINS Server |
| Y | c16 | 17 | nvarchar(16) | IP address of the assigned WINS server |
Secondary WINS Server |
| Y | c17 | 18 | nvarchar(16) | IP address of the assigned WINS server |
Routable |
| Y | c18 | 19 | int | Indicates whether the IP address can be reached from the NS. When populated by basic inventory, this is 1 for the interface used by the agent to route to the NS. |
Physical |
| Y | c19 | 20 | int | Indicates whether there is a physical adapeter associated with the device |
Inv_AeX_AC_TCPIPv6
Type > Multi-row.
Contains information about network interfaces on the computer.
Name | Key | Null | Abbrev | ID | Type | Description |
---|---|---|---|---|---|---|
MAC Address |
| Y | c0 | 1 | nvarchar(24) | MAC address of the NIC in dash format. E.g 00-1A-A0-B6-E6-5A |
IP Address | Y |
| c1 | 2 | nvarchar(65) | IP address of the interface |
Device | Y |
| c2 | 3 | nvarchar(128) | Name of the interface card |
Host Name |
| Y | c3 | 4 | nvarchar(128) | Name of the computer, this is the host part of the FQDN |
Primary DNS Suffix |
| Y | c4 | 5 | nvarchar(255) | Primary DNS suffix for the interface. Combining this with the Host Name can give a FQDN which identifies the interface. |
Node Type |
| Y | c5 | 6 | nvarchar(24) | Adapter type. One of the following values: (Broadcast, P2P, Mixed, Hybrid) |
DNS Server 1 |
| Y | c6 | 7 | nvarchar(65) | IP address of the assigned DNS server |
DNS Server 2 |
| Y | c7 | 8 | nvarchar(65) | IP address of the assigned DNS server |
DNS Server 3 |
| Y | c8 | 9 | nvarchar(65) | IP address of the assigned DNS server |
DHCPv6 Server |
| Y | c9 | 10 | nvarchar(65) | IP address of the DHCP server |
Scope ID |
| Y | c10 | 11 | nvarchar(12) | Interface index assigned by network adapter. |
Gateway |
| Y | c11 | 12 | nvarchar(65) | IP address of the default gateway for this adapter. |
Routable |
| Y | c12 | 13 | int | Indicates whether the IP address can be reached from the NS. When populated by basic inventory, this is 1 for the interface used by the agent to route to the NS. |
Physical |
| Y | c13 | 14 | int | Indicates whether there is a physical adapeter associated with the device |
Inv_AeX_AC_VirtualMachine
Type > Single-row.
Contains information about the Virtual Machine platform.
Name | Key | Null | Abbrev | ID | Type | Description |
---|---|---|---|---|---|---|
Product | Y |
| c0 | 1 | nvarchar(50) | Name of the virtualisation product |
Manufacturer |
| Y | c1 | 2 | nvarchar(20) | Manufacturer of the virtualisation product |
Version |
| Y | c2 | 3 | nvarchar(6) | Version of the virtualisation product in the form Ver.Rev |
VM GUID |
| Y | c3 | 4 | nvarchar(128) | Unique identifier of the virtual computer, this is the same as Unique ID in AeX AC Identification |
Conclusion
The 7.5 database schema is subject to change, as Symantec Development is always looking to improve the data gathered by default by all managed computers. I hope this document will be of use when creating reports, filters, and any other usage where this data is valuable.
I've attached 7 documents that naturally break the series into 7 parts. Let me know if you have any questions, thanks!
Inventory Database Schema 7.5 Part 2 - Hardware
Inventory Database Schema 7.5 Part 3 - Operation System
Inventory Database Schema 7.5 Part 4 - Software and User
Inventory Database Schema 7.5 Part 5 - Network Devices
Inventory Database Schema 7.5 Part 6 - Inventory Pack for Servers Virtual Machine Data
Inventory Database Schema 7.5 Part 7 - Inventory Pack for Servers Database and Web