Monday, 11 May 2009

Upgrading Inventory Solution -- Best Practices

http://www.symantec.com/connect/articles/upgrading-inventory-solution-best-practices

Solution Upgrade

The main solution upgrade will take the NS offline as it commences. This includes pausing the Server so no incoming NSE files will be processed. The queues will fill up with files as the NS Event Router is still moving files from the postevent.asp page to the respective queues. Other internal tasks (including client configuration updates) will not process during this time.

The upgrade might take a long time if Normalization and other data class upgrades are required during the upgrade, and depending on the size of the Database. It is recommended to use the 'Update' button under the Solution Center to upgrade as this will check all prerequisites:

Click to view.

Note: Inventory Solution 6.1 SP2 requires Notification Server 6.0 SP3 R4 as Vista Support is added in these two products and versions.

The following issues should be considered when Upgrading:

  • Upgrade completes but console items are missing: https://kb.altiris.com/article.asp?article=19921&p=1

    Note: If you are using the SP1 or SP2 installer this should be resolved.

  • Error is reported in the Notification Server log when upgrading from Inventory Solution 6.0 to 6.1 SP1. When upgrading from Inventory Solution 6.0 to 6.1 SP1, the "Class Name: AeX HW ActiveTcpUdpPorts Class Guid: b50e2401-5865-43ed-95e7-75f06b77d7ce Trying to register a Split Table to a common data table that either does not exists or is not 'common' classtype" error is reported to the Notification Server log file. This error is reported because the AeX HW ActiveTcpUdpPorts data class being accessed in 6.1 SP1 did not exist in 6.0.

    Note: This error will not affect the upgrade process.

  • IMPORTANT > The upgrade deletes all custom files not originally part of the Inventory Agent Package (located at \Program Files\Altiris\Notification Server\NSCap\Bin\Win32\X86\Inventory Solution). This includes all custom scripts, INI files, custom inventory XML files, or any file not created by Inventory directly.

Normalization

The splitting of the data classes was done to improve performance of reporting. Since Inventory Solution's usefulness comes from reporting and secondly Collection usage, it is essential to get the most out of the upgrade by understanding what is occurring.

A utility page for Normalization data classes has been provided in the Altiris Console. Under View > Configuration (Configuration tab in the 6.0 Console) > Solution Settings > Asset and Inventory > Inventory > Windows > Normalize:

Click to view.

Use the following steps to analyze if Normalization is required after an upgrade:

  1. After an upgrade is completed, browse to the above location. To check if it is completed, look in Task Manager for a dcsplit.exe process. If it is running, leave it running until it is completed.
  2. Grayed-out entries are already Normalized. If Normalization is not successful, browsing back to this page will show the entries 'active' again.
  3. Check the boxes if those classes to normalize. Note that this process takes considerable resources and time to complete depending on the size of the Inventory tables being split.
  4. It is recommended to check the 'View progress of Normalization' so that the status can be directly checked. Once running, do not try to access this page for additional normalization until the process is completed.

The following issues should be considered when Normalizing the database:

Special Group Deprecation

New installations of Inventory Solution 6.1 Sp1 or SP2 do not have Special Groups. This document will not cover the use cases for Special Group Deprecation, but will cover the process of doing it. To see the reasons for deprecating Special Groups, please see Juice Article: Improve Inventory Solutions Performance: Deprecate Special Groups

If you installed Inventory Solution 6.1 SP1 or SP2 as a new install, nothing needs to be done as Special Groups were never setup. Note that while they do not exist, the Special Group tab is still available for use.

Upgrades to SP1 or SP2 will still have all default and custom Special Group Data classes present. To remove the default ones, a utility has been provided to accomplish this.

  1. Browse to the following folder: NS_install_path\Program Files\Altiris\Inventory\Special Groups Upgrade.
  2. Launch the .EXE: Altiris_SpecialGroupsUpgrade_6_1.exe.

This executable removes the separate Special Group data classes from the Notification Database. It updates the files, such as AuditPls.ini, win32invFloppy1.exe, and AeXWebInvPkg.exe files. The Special Groups inventory will now be collected into the standard AeX SW Audit Software data class.

For more information, please see the following Article:

Data Class Upgrades

Changes made to data classes outside of Normalization provide additional support and functionality previously unavailable. The following items detail the changes that have occurred to provide this functionality:

  1. UUID value captured > Previous to Inventory 6.1 SP1 we did not capture the system UUID with AeXSNPlus. Now we capture this as part of the AeX HW Serial Number table.

    Note: It is recommended to use SP2 as there was a known issue with the new UUID column that has been resolved. See the following KB for details: https://kb.altiris.com/article.asp?article=25625&p=1

  2. VM GUID column added > In Inventory 6.1 Sp1 the AeX VirutalMachine data class now has this column capturing the Guid of the virtual machine, allowing you to better distinguish between host and clients. Note that a bug caused this column to be empty until 6.1 SP2.
  3. Physical Memory Size > Previous to Inventory 6.1 SP1 we incorrectly reported memory sizes above 2GB. This has been corrected by both AeXMachInv and the database table that houses this information.
  4. Software File Size > Previous to Inventory 6.1 SP2 the data type for the file size column was an INT or Integer. This limited the largest size we were able to record to 2GB. Now the data type is BigINT, allowing a much larger size value to be captured.
  5. 64-bit Support > We've added support for 64-bit computers to Inventory 6.1 SP2. While we still captured some data in previous versions, we now officially support it and capture more data. In AeX OS Operating System we added an 'Architecture' column with the possible values of 32 or 64, respectively.
  6. Vista Support > In Inventory 6.1 SP2 we've added native support for Vista.
  7. CPU Core Count > We now track the CPU core count as of Inventory 6.1 SP2.

    Note: See the following KB for a known limitation: https://kb.altiris.com/article.asp?article=32370&p=1

Inventory Agent Package

Inventory Solution does not have a standard plug-in Agent for the Altiris Agent. The Inventory Agent is a collection of files including Inventory Agent 'EXE's that execute individually. These Agents have had improvements and upgrades made to them, some of which are required for the upgraded Data Classes.

Normally after the upgrade the Agents running the Inventory Tasks will automatically update to the new version of the package. This is done through this process:

  1. The Altiris Agent requests a new configuration
  2. New snapshot information is received for the Inventory Agent Package.
  3. The Altiris Agent downloads the files that have changed.

If Package Servers are used in the environment, make certain they are working properly and have received the new version of the Inventory Agent Package.

Note: Failure to do so may result in Inventory being thrown out at the Server! If the old Inventory Agents send data to the new database schema, the NSE will likely be thrown out because the schema in the NSE containing the data will not match the database.

Inventory Reports

Don't forget to upgrade the Report Pack for Inventory Solution! The reports used to reside as part of the main Solution installer, but now the Reports install with a separate execution. This allows new builds of the reports to be released without touching the main Inventory Solution installation (most definitely recommended).

The main version for SP1 and SP2 is Report Pack for Inventory Solution for Windows 6.2. The complete build numbers are as follows:

  • Inventory Solution 6.1 SP1 > 6.2.1036
  • Inventory Solution 6.1 Sp2 > 6.2.1046

If you use the Solution Center, the Report Pack should automatically be upgraded to the correct version. If you are not using the Solution Center, you should download the Report Pack from http://www.solutionsam.com/solutions/6_0/; Filename: Altiris_ReportWinInv_6_2.exe.

Monday, 20 April 2009

Computer import function isn't working after upgrading to DS 6.9 SP2

After upgrading  the computer import function

Upgrading from DS 6.9 SP1 MP1 to DS 6.9 SP2 apparently breaks the Import Computers function.

clip_image002

Everything seems to work but at the end you get the following message:"An unhandled win32 exception occurred in Express.exe" and the DS console shuts down without importing the computers.

A workaround for this issue has been found by "Stefan Cleuren"

Step 1: File > New Computer

clip_image002[6]

Step 2: Now you get the option of importing once more

clip_image002[8]

Step 3 : Select your import file

clip_image002[10]

Step : Done !

Friday, 20 March 2009

What Primary Lookup Key should I use with Deployment Server?

If you choose a Primary Lookup Key that is identical on two or more of your computers or if that key is missing on any of your computers, Deployment Server will not be able to identify them. To identify which Primary Lookup Key is best, open SQL Query Analyzer, select to the Deployment Server database, and run the the query against the Deployment Server database. The result will tell you which keys have duplicate computers and which ones don't. It will also show you which keys have duplicates.

DECLARE @sn INT SET @sn=(SELECT COUNT(1) FROM (SELECT T.serial_num AS [Serial Number], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, serial_num FROM computer GROUP BY serial_num HAVING COUNT(1) > 1) T WHERE C.serial_num = T.serial_num) T )
DECLARE @at INT SET @at=(SELECT COUNT(1) FROM (SELECT T.asset_tag AS [Asset Tag], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, asset_tag FROM computer GROUP BY asset_tag HAVING COUNT(1) > 1) T WHERE C.asset_tag = T.asset_tag) T )
DECLARE @uuid INT SET @uuid=(SELECT COUNT(1) FROM (SELECT T.uuid AS [UUID], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, uuid FROM computer GROUP BY uuid HAVING COUNT(1) > 1) T WHERE C.uuid = T.uuid) T )
DECLARE @mac INT SET @mac=(SELECT COUNT(1) FROM (SELECT T.mac_addr AS [MAC Address], T.duplicates AS [Duplicates], N.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM nics N, (SELECT COUNT(1) AS duplicates, mac_addr FROM nics GROUP BY mac_addr HAVING COUNT(1) > 1) T, computer C WHERE N.mac_addr = T.mac_addr AND C.computer_id = N.computer_id) T )

IF @sn = 0
  SELECT 'Serial Number OK' AS Message, 'You may use Serial Number as your Primary Lookup Key' AS Details
ELSE
  SELECT 'You have computers with duplicate Serial Numbers' AS Warning, 'Do not use Serial Number as your Primary Lookup Key' AS Details
IF @at = 0
  SELECT 'Asset Tag OK' AS Message, 'You may use Asset Tag as your Primary Lookup Key' AS Details
ELSE
  SELECT 'You have computers with duplicate Asset Tags' AS Warning, 'Do not use Asset Tag as your Primary Lookup Key' AS Details
IF @uuid = 0
  SELECT 'UUID OK' AS Message, 'You may use UUID as your Primary Lookup Key' AS Details
ELSE
  SELECT 'You have computers with duplicate UUIDs' AS Warning, 'Do not use UUID as your Primary Lookup Key' AS Details
IF @mac = 0
  SELECT 'MAC Address OK' AS Message, 'You may use MAC Address as your Primary Lookup Key' AS Details
ELSE
  SELECT 'You have computers with duplicate MAC Addresses' AS Warning, 'Do not use MAC Address as your Primary Lookup Key' AS Details

SELECT T.serial_num AS [Serial Number], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, serial_num FROM computer GROUP BY serial_num HAVING COUNT(1) > 1) T WHERE C.serial_num = T.serial_num
SELECT T.asset_tag AS [Asset Tag], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, asset_tag FROM computer GROUP BY asset_tag HAVING COUNT(1) > 1) T WHERE C.asset_tag = T.asset_tag
SELECT T.uuid AS [UUID], T.duplicates AS [Duplicates], C.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM computer C, (SELECT COUNT(1) AS duplicates, uuid FROM computer GROUP BY uuid HAVING COUNT(1) > 1) T WHERE C.uuid = T.uuid
SELECT T.mac_addr AS [MAC Address], T.duplicates AS [Duplicates], N.computer_id AS [Computer ID], C.name AS [Console Name], C.computer_name AS [Computer Name] FROM nics N, (SELECT COUNT(1) AS duplicates, mac_addr FROM nics GROUP BY mac_addr HAVING COUNT(1) > 1) T, computer C WHERE N.mac_addr = T.mac_addr AND C.computer_id = N.computer_id