31 October 2007

Error, "Could not start the Altiris Agent service on Local Computer. Error 1067: The Process Terminated Unexpectedly"

Error, "Could not start the Altiris Agent service on Local Computer. Error 1067: The Process Terminated Unexpectedly"


Problem/Symptoms

Altiris Agent is installed on a client computer. Most of the subfolders under C:\Program Files\Altiris\Altiris Agent are created.

The Altiris Agent Service is also installed. However, the Altiris Agent Service starts for few seconds and then stops. If you try to start it manually, the following error appears:

Could not start the Altiris Agent service on Local Computer
Error 1067: The Process Terminated Unexpectedly

Even though I remove and reinstall the Altiris Agent, it doesn't make a difference.

Looking under the Agent log, you can see the following:

"10/25/2007 12:13:50 PM","Client Thread thread 0xCAC beginning"
"10/25/2007 12:13:50 PM","Error reading policy from file C:\Program Files\Altiris\Altiris Agent\Client Policies\ServerName.Domain.com.xml: Error loading policy file: The system cannot find the path specified. (-2147024893). This is normal the first time the agent runs after being installed."
"10/25/2007 12:05:50 PM","Starting version 6.0.2386 on Microsoft Windows Server 2003 5.2 Service Pack 2 Build 3790..."
"10/25/2007 12:05:50 PM","Loading client object: Altiris.AeXClientSessionManager"
"10/25/2007 12:05:50 PM","Loading client object: Altiris.AeXNotificationManager"
"10/25/2007 12:05:50 PM","Loading client object: Altiris.AeXTaskScheduler"
"10/25/2007 12:05:50 PM","Creating CAeXTaskSchedulerThread"
"10/25/2007 12:05:50 PM","Loading client object: Altiris.AeXNetwork.Receiver"
"10/25/2007 12:05:50 PM","Object Altiris.AeXNetwork.Receiver is not installed: Class not registered (-2147221164). This situation should be resolved once the agent rollout has been completed."
"10/25/2007 12:05:50 PM","Loading client object: Altiris.SWD"

The Log will stop suddenly after the above line (Altiris.SWD). New entries will be a repeat of the startup process.

Looking under AeXNSC.log, the following is noticed:

2007-10-25 12:05:43: ==========================
2007-10-25 12:05:43: AeXInstallPreCheck started
2007-10-25 12:05:43: Current dir: C:\DOCUME~1\Admin\LOCALS~1\Temp\apt0
2007-10-25 12:05:43: AeXInstallPreCheck Finished
2007-10-25 12:05:43: ===========================
2007-10-25 12:05:43:
2007-10-25 12:05:43: Passing control to AeXNSAgent
2007-10-25 12:05:43: Commandline: AeXNSAgent.exe ns="ServerName.Domain.com" nsweb="
http://ServerName.Domain.com/ALTIRIS/"
2007-10-25 12:05:43: ===============================
2007-10-25 12:05:43: Core Agent Installation started
2007-10-25 12:05:43: GetInstallPath didnt find installDir in the 6.x key, trying the old key.
2007-10-25 12:05:43: GetInstallPath could not get installDir from the old key, the agent may not be installed.
2007-10-25 12:05:43: Checking minimum requirements.
2007-10-25 12:05:43: Detected NT based Platform.
2007-10-25 12:05:43: RegisterMSXML: MSXML is installed
2007-10-25 12:05:45: Server and web set to ServerName.Domain.com and
http://ServerName.Domain.com/ALTIRIS/
2007-10-25 12:05:45: Product version set to 6.0.0.2386
2007-10-25 12:05:45: RegisterDLL, C:\Program Files\Altiris\Altiris Agent\AeXAgentPages.dll has been registered.
2007-10-25 12:05:46: RegisterDLL, C:\Program Files\Altiris\Altiris Agent\AeXAgentUI.dll has been registered.
2007-10-25 12:05:46: RegisterDLL, C:\Program Files\Altiris\Altiris Agent\AeXBasicInventory.dll has been registered.
2007-10-25 12:05:46: RegisterDLL, C:\Program Files\Altiris\Altiris Agent\AeXSWDAgent.dll has been registered.
2007-10-25 12:05:48: RegisterDLL, C:\Program Files\Altiris\Altiris Agent\AeXTaskSchedulerLib.dll has been registered.
2007-10-25 12:05:49: RegisterDLL, T:\Program Files\Common Files\Altiris\AexPackageDelivery.dll has been registered.
2007-10-25 12:05:49: RegisterDLL, T:\Program Files\Common Files\Altiris\AeXNetComms.dll has been registered.

2007-10-25 12:05:49: RegisterDLL, T:\Program Files\Common Files\Altiris\AtrsMCast.dll has been registered.
2007-10-25 12:05:50: StartAgent, starting core agent.
2007-10-25 12:05:55: StartAgent, starting core agent.
2007-10-25 12:05:55: Core Agent Installation Ended
2007-10-25 12:05:55: ===============================


Environment

Altiris Agent 6.x


Cause

The "Common Files" path wrongly points to a network drive. This is a dangerous practice, as locally installed applications may not have access rights and or permanent access to a network drive. The Altiris Agent (running as Local System) does not have access to the user's network drive (T:) and thus failed when trying to load dependent dlls.

2007-10-25 12:05:45: RegisterDLL, C:\Program Files\Altiris\Altiris Agent\AeXAgentPages.dll has been registered.
2007-10-25 12:05:46: RegisterDLL, C:\Program Files\Altiris\Altiris Agent\AeXAgentUI.dll has been registered.
2007-10-25 12:05:46: RegisterDLL, C:\Program Files\Altiris\Altiris Agent\AeXBasicInventory.dll has been registered.
2007-10-25 12:05:46: RegisterDLL, C:\Program Files\Altiris\Altiris Agent\AeXSWDAgent.dll has been registered.
2007-10-25 12:05:48: RegisterDLL, C:\Program Files\Altiris\Altiris Agent\AeXTaskSchedulerLib.dll has been registered.
2007-10-25 12:05:49: RegisterDLL, T:\Program Files\Common Files\Altiris\AexPackageDelivery.dll has been registered.
2007-10-25 12:05:49: RegisterDLL, T:\Program Files\Common Files\Altiris\AeXNetComms.dll has been registered.

2007-10-25 12:05:49: RegisterDLL, T:\Program Files\Common Files\Altiris\AtrsMCast.dll has been registered


Resolution

Note: For this article, the mapped drive has the drive letter "T".

  1. Uninstall the Altiris Agent. You can use the following command from the RUN prompt (see article 1995 "Instructions for the complete manual uninstall of the Altiris agent" for more details):

    "C:\Program Files\Altiris\ALTIRIS AGENT\AeXAgentUtil.exe" /clean
  2. Modify the following registry value:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CommonFilesDir


    from:

    T:\Program Files\Common Files

    to the default:

    C:\Program Files\Common Files
  3. Reinstall the Altiris Agent.


How to install the Altiris Agent using the Notification Server IP address when the server name cannot be resolved

Question

The Notification Server is installed in a WorkGroup or Domain where computers in other Sites or Domains are only able to resolve the IP address of the Notification Server and not the Server Name. How can the Altiris Agent be pushed using the IP address of the Notification Server only?


Answer

You need to add some switches for the AexSWDInstSvc (Altiris Agent Installation Service) program.

  1. Under Altiris Agent Installation page (under Configuration > Altiris Agent > Altiris Agent Rollout), open the Installation Settings page.
  2. Under Specify Different Notification Server, add the IP address of your Notification Server (to look something like this: http://10.103.65.109)
  3. Under Additional Parameters add the following switches:
    • -u
    • -s
    • -w

(to look like this: -u http://10.103.65.109/Altiris/NS/NSCap/Bin/Win32/X86/NS Client Package/AeXNSC.exe -s 10.103.65.109 -w http://10.103.65.109/Altiris/).

  1. Then push the Altiris Agent.

For more details about AeXSWDInstSvc commands, see article 38380, "AeXSWDInstSvc (Altiris Agent Installation Service) Command Line Arguments."

See article
29334, "How to manage computers from different domains (without trust relationship between domains) from a single Notification Server" for more references about computers in multiple domains.

26 October 2007

Configuring Application Metering to use the "Installed vs. Used" report

Question
How do I configure Application Metering to collect the data necessary for the "Installed vs. Used" report?

Answer
The "Installed vs. Used" report is dependant on both Application Metering and Inventory solution to collect the required data. Use the steps below as a guideline when configuring Notification Server for this report:

1. Install Altiris Application Metering Solution 6.1.
2. Install Altiris Inventory Solution 6.1.
3. Configure Inventory Solution Solution:

* Navigate to the Tasks tab > Assets and Inventory > Inventory > Windows > Inventory Tasks.
* Select Software Inventory.
* Enable the task and then click Apply. Software inventory needs to have executed and reported back to the Notification Server.

This step generates the install counts.

4. Configure the Application Metering Solution with the proper settings:

* Navigate to the Configuration tab > Solution Settings > Software Management > Application Metering.
* Select Application Metering Solution Configuration.
* Verify that "Clients Send Summary Data every: XXXX" is enabled and choose an appropriate time interval for your environment. (The lower number clients means shorter amount of time you can set this without negatively impacting the network.)
* Determine which Inventory Solution Integration setting is necessary for your environment. "Client based Inventory Solution" setting is most commonly used.
* Click Apply.

5. Configure and enable a Monitor Policy for each application you need to track:

* Browse to Tasks > Software Management > Application Metering > Application Monitors.
* Right-click Application Monitors and select New > Application Monitor Policy.
* Edit the Name and Description fields.
* Click Add Application Definition to specify the monitored application

* Define the monitor policy based on "Internal Name" alone, if possible. This provides reliable results when monitoring applications.
* Start/Stop/Denial events are not required to be enabled for the "Installed vs. Used" report to work.

Steps 4 and 5 generate the used counts.

6. If the Application Metering Agent is not installed, deploy it to the proper collection of client computers in the environment. Make sure the clients in this collection also overlap with clients from Step 3.
7. Update the client computer's configuration, or allow the scheduled update configuration interval to lapse.

After the above process is complete, the client computers should have both the Application Metering sub-agent and the Inventory Agent Package present in the Altiris Agent Details window.
________________________________


Follow-up information based on the above process:

* The Month Year drop down will populate once client summary data has been processed by the Notification Server.
* The default report will return run counts from user who are logged into a domain. For a modified report that will also return run counts from users logged in locally, see related article 35341 <https://kb.altiris.com/articleRedirect.asp?aid=35341> .

Note: These steps outline how to retrieve Application Usage data using the default settings of both Inventory Solution and Application Metering solution. You may need to configure the tasks above specifically for your environment.

25 October 2007

What is AltirisNSCabInstaller.exe?

Question
What is the purpose of the AltirisNSCabInstaller.exe file found in C:\Program Files\Altiris\Notification Server\nscap\bin\win32\x86\NS CAB Installer Package?

Answer
AltirisNSCabInstaller.exe is installed in C:\Program Files\Altiris\Notification Server\nscap\bin\win32\x86\NS CAB Installer Package. The .EXE contains all of the ActiveX controls required to run the console, and is designed to be distributed to locked down computers. Best practice would be to create a collection of Administrators computers or anyone who would access the console (especially helpdesk) and push the .EXE to them via SWD. You could also make this available via URL or Software Portal.

24 October 2007

Software delivery and Data Purging

For those who uses the status event on Software delivery for reporting purposes be aware that the default purging is set to 7 days. Meaning that is a deployment of software oversapns more than a week your reporting information will NOT be correct due to purging.

So, if you want to use the Software delivery status reports change the default data purging settings on the Software Delivery configuration tab to more the 7 days

23 October 2007

Retired computers don't automatically change back to active

Problem/Symptoms

Retired computers do not become active again after sending Inventory to the Notification Server. This causes problems for scenarios in which the server is automatically retiring computers that have not reported inventory in a specified time period (specified under Purging Maintenance) while some of the computers are still managed computers that have been offline for the specified time period.

Cause

The cause of the problem is that the Notification Server discards almost all event data from retired computers. It was not designed to reactivate retired computers when inventory is received but instead discards the inventory event. On a retired computer, when opening up the client UI, go to About > Altiris Agent Details, and click the Send Basic Inventory button. Notice that the Basic Inventory Last Sent time will never change. This is because the client never received any acknowledgement from the server that the inventory was received (because it was discarded).

Resolution

The only events sent by the Altiris Agent that are received by the server are the AeX Client LogOn events. These are sent to the server whenever a user logs on or off the computer.

To aid in identifying these computers download the report that will show retired computers that have sent event data for the specified data class (default to AeX Client LogOn) within the last n time units (for example, 30 days, 45 minutes, 6 hours, etc.). Select multiple computers from the report results, right-click on them and change their status back to Active.

This process can be automated by creating a Notification Policy. See article
16909. You can use the query shown below. It reports any retired computer that has sent a client logon event in the past 24 hours.


select distinct _resourceguid from evt_aex_client_logon ac  

join resourceassociation ra on ac._resourceguid = ra.parentresourceguid

where ra.resourceassociationtypeguid like '%3028166f%'

and ra.childresourceguid like '%492c463b%'

and datediff(hh, ac._eventtime, getdate())< 24

NS Agent - nominated Package Server maximum download retry time

Question

How long will the Altiris Agent continue to try to download from a nominated Package Server before bypassing the site maintenance settings (Package Server) and download directly from the Notification Server?

Answer

This is really a question about Notification Server site maintenance behavior rather than Agent behavior. See KB2397 for more information on site maintenance. The Altiris Agent always downloads from the codebases that are given out by the Notification Server.

New in Notification Server 6.0 SP2 is that the NS no longer hands out its own codebases to agents that are members of a site; this change was due to a very common customer request. To compensate for this change in behavior a new CoreSettings.config item was created and is disabled by default (meaning agents will strictly adhere to the site maintenance configuration):

MaxAgentDownloadTryingTimeMins

The agent now will send a running time value to the server when it makes its calls to GetPackageInfo.aspx on the Notification Server. When this time value exceeds the MaxAgentDownloadTryingTimeMins value the NS will hand out its own codebases in place of the codebases of any Package Server within the given site. Please note that this is a global setting, and cannot be configured for indiviual sites.

The preferred method to implement MaxAgentDownloadTryingTimeMins on the Notification Server is to use the NSConfigurator. The NS 6.0 SP3 release notes, section 3.1.25, provides information on how to install and use the NSConfigurator (KB19106).

Manually installing the Altiris Diagnostics Pack

Question

Where can I manually download the latest public version of the Altiris Diagnostics pack?


Answer

As of 1 November 2006, the most recent public version of the Altiris Diagnostics Pack was 6.1.7631.

The diagnostic pack includes the following:

  • Altiris Log Viewer
    • This utility can be used remotely from the NS to review NS log files, but won't be able to resolve GUIDs to object names.
  • Altiris Profiler
  • NS Diagnostic tool (NSDiag.exe)
  • Import Export Utility
  • The set application identity utility (setid.exe)
  • NScript runner
  • NS Configurator installation file (NSConfigurator.msi)

Some customers may have firewalls that block access to the self-update functionality. It may also be beneficial to install the diagnostics pack on administrators computers and as part of an upgrade readiness health check on pre–Notification Server 6.0 SP3 servers (diagnostics pack was included with SP3).

If you are going to install the diagnostic tools, make sure the Microsoft .Net 1.1 is installed on the computer or some of the diagnostics tools, specifically the Logviewer (logviewer.exe) will not work. When the diagnostic tools are installed they are located (by default) at C:\Program Files\Altiris\Diagnostics. You may want to create a shortcut to the logviewere.exe and place it on your desktop for easy access.

22 October 2007

Folder with GUID does not exist

Problem/Symptoms
An error similar to the following continues to be logged into the Altiris Notification Server a.log:
Process: aexsvc.exe (1756)
Thread ID: 652
Module: AltirisNativeHelper.dll
Source: Altiris.NS.ItemManagement.Item.MoveToFolder
Description: Folder with guid 5e2a1ce8-0af7-40f8-9b81-1539c61f829e does not exist.


Cause
These messages often occur when the user has done the following:
1. Enabled a Software Delivery Task for a collection.
2. The computers in the collection execute the Software Delivery Task.
3. The administrator deletes the Software Delivery Task.
What the administrator forgot to do was to Disable the Software Delivery Task and then allow all of the computers in the environment to update their polices so that each agent knows not to request this specific package.

Resolution
The long term solution to this problem is to ensure the following steps are followed prior to removing Software Delivery tasks:
1. Enabled a Software Delivery Task for a collection.
2. The computers in the collection execute the Software Delivery Task.
3. When the administartor decides the Task Should no longer be available, Disable the Task.
4. Wait at least 1 week to ensure most (if not all) of the machines in the environment have received updated configuration settings to stop requesting this package.
5. Delete the Software Delivery Task.
The short-term solution is to run the following SQL query by doing the following:
1. Each instance of the error message logged in the a.log will contain a unique GUID. Make a note of this GUID so you can use it later in this process.
2. Open Microsoft SQL Query Analzyer.
3. Create a New Query using the following SQL:

use Altiris
-- Temporary table to hold Table and Column names that are related to GUID
create table #TablesWithGuid
(
Tablename varchar(255),
ColName varchar(255),
Rows int
)

-- Declare the variables
declare @TableName varchar(255),
@ColName varchar(255),
@GUID varchar(40),
@xtype int,
@strSql nvarchar(4000),
@SqlResult int

-- GUID that is being searched for.
set @GUID = rtrim(ltrim('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' ))

-- Drop outside characters if longer than 36. (Eg. { and } characters)
if len(@GUID) = 38 and charindex('{',@GUID,1) = 1 and charindex('}',@GUID,1) = 38
begin
set @GUID = substring(@GUID, 2, 36)
end
else if len(@GUID) <> 36
begin
select 'Invalid Guid Specified' as [Error]
return
end

-- Tables with a 'Guid'in the column name or having a Uniqueidentifier column. Full column name as well.
declare GuidTableCol cursor for
select distinct
cast(so.name as varchar(255)) as 'Table Name',
cast(co.name as varchar(255)) as 'Guid Column',
co.xtype
from sysobjects so
inner join (
select name, id, xtype
from syscolumns
where name like '%Guid%'
or xtype = 36
) co on co.id = so.id
where so.xtype = 'U' --Only User Tables

open GuidTableCol
fetch next from GuidTableCol into @TableName, @ColName, @xtype

while @@FETCH_STATUS = 0
begin
--Find which tables and columns have a matching Guid to the one we are searching for.
set @SqlResult = 0

--Set guid string to have brackets if the column is a varchar
if @xtype = 167
begin
set @GUID = '{' + @GUID + '}'
end

-- Build the SQL Query string
set @strSql = '
select @Result = count(CAST([' + @ColName + '] as varchar(40)))
from [' + @TableName + ']
where cast([' + @ColName + '] as varchar(40)) = ''' + @GUID + ''''

-- Execute the SQL Query string
execute sp_executesql @strSql, N'@Result int out', @SqlResult out

--If the result count is > 0 then add table, column, and count to #TablesWithGuid
if @SqlResult > 0
begin
insert into #TablesWithGuid values (@TableName, @ColName, @SqlResult)
end

--Reset guid string
if @xtype = 167
begin
set @GUID = substring(@GUID, 2, 36)
end
fetch next from GuidTableCol into @TableName, @ColName, @xtype
end

-- Close cursor and deallocate
close GuidTableCol
deallocate GuidTableCol

-- Display results
--select * from #TablesWithGuid

-- Delete script
select ' declare @GUID uniqueidentifier'
union
select ' set @GUID = ' + Char(39) + cast(@GUID as nvarchar(36)) + Char(39)
union
select ''
union
select 'delete from ' + [Tablename] + ' where ' + [ColName] + ' like ' + '@GUID'
FROM #TablesWithGuid

-- Drop temp table
drop table #TablesWithGuid
4. Replace the Red Xs in the query above with the GUID from the error message.
5. Run the query in SQL Query Analyzer by pressing F5.
6. If necessary, repeat this procedure for each instance of the error in the log files, remembering to substitute the GUID each time.

17 October 2007

MaxConcurrentConfigRequests value changed after Notification Server 6.0 SP3 upgrade

After upgrading to Notification Server 6.0 SP3, the MaxConcurrentConfigRequests settings were reduced from 50 to 10 in the CoreSettings.Config file.

This is by design. The default value of MaxConcurrentConfigRequests was lowered from 50 to 10 in Notification Server 6.0 SP3, and that modification is made during the SP3 upgrade.

________________________________

Resolution


After significant evaluation of this setting both internally at Altiris and at customer sites, it was concluded that the default setting of 50 for the MaxConcurrentConfigRequests value was too high for normal operations of Notification Server and could actually be detrimental to performance in particular circumstances.

Notification Server 6.0 SP3 also added MaxConcurrentPackageInfoRequests as a separate value for limiting GetPackageInfo requests, also with a default value of 10. Prior to SP3, GetClientPolicy requests and GetPackageInfo requests were both limited under the same MaxConcurrentConfigRequests setting which could cause contention for connections between these two separate operations when the MaxConcurrentConfigRequests value was lowered.

These default values for MaxConcurrentConfigRequests and MaxConcurrentPackageInfoRequest should only be increased when specific monitoring shows doing so will provide improved performance. Setting these values too high can be detrimental to performance and lead to database deadlocks and database connection failures.

14 October 2007

Altiris Helpdesk Solution 6.0 SP5

Answer

What's New in this Release

Improvements for this release include the following new features:

Service Catalog

Using Helpdesk tasks, you can build a Service Catalog for your organization. Service Catalog tasks appear in a Service Catalog list on the End User Console, the Worker Console, and the Helpdesk Console.

Support for Microsoft Office 2007

Helpdesk supports Microsoft Office 2007. The Customer Satisfaction Survey is functional with Outlook 2007.

Support for Microsoft Internet Explorer 7.0

Helpdesk is fully functional when accessed with Microsoft Internet Explorer 7.0. Issues with dialog boxes, flyout menus, printing, and view magnification have been resolved.

Support for IMAP4 E-mail Interface

Helpdesk supports the IMAP4 e-mail interface.