1. Open a Software Product for editing and browse to the Metering/Usage Tracking tab. 2. Add executables to be metered if none is assigned or change existing unnecessary files to those you want to be metered 3. Click OK, validate that the files are added/replaced, and then click OK to save and close software product edit screen. 4. Try to edit same product again and review the Metering tab.
The issue is reproducible when the same file (file+version) is associated with more than one software component inside the same product. When user adds file to one component, but does not add it to other related components, server-based logic removes it from the first component too.
Following new logic was added into the current process flow:
If user adds “File1:Version1” for one component for usage tracking, it will be also added for all other components that have associations with the same file
If user deletes “File1:Version1” from usage tracking from one component, this file will be removed from all other components that have associations with the same file
Fix is available in the format of pointfix on top of 7.5 SP1 HF5 (attached to this article) and also included in 7.6 HF4.
HOW TO INSTALL THIS POINTFIX
Close browser before point fix installation.
Extract files from the archive to the NS hard drive. Make sure that point fix is not extracted to Altiris install directory (or any subfolder to it). Run PFInstaller.exe as administrator.
Execute PFInstaller.exe with administrative privileges (right-click > Run as administrator). Select "Install Files".
Accept UAC (User Account Control) prompt, select Install Files. Old binaries will be automatically backed up to the Backup folder at the same location where PFInstaller is and replaced with the new ones. Log-file log.txt will be created at the same location where PFInstaller is.
Close the PFInstaller window.
HOW TO UNINSTALL POINTFIX
Make sure that Backup subfolder is located in PFInstaller directory.
Execute PFInstaller.exe with administrative privileges (right-click > Run as administrator). Old binaries will be repaired from Backup folder located at the same location where PFinstaller is. NS services should be started automatically.
P.S. It may be necessary also to manually remove associations between incorrect “Software Components” that contains incorrect “file assignments”. Following approach is recommended for such clen-up.
Create new SQL Report with below query.
Use “Component Guid” as right-click source for this report.
Execute report and use right-click menu in report to: Delete all such components that does not have “1” in “IsInstalled” column and “Null” as “Product Name”. Delete all such components that does not have “1” in “IsInstalled”. Delete all other components that have more than 1 in “Number of files” (Potentially may require to re-run of Full Inventory)
Following is SQL Query:
Select Swp.Name as [Product Name],Ra.ParentResourceGuid as [Product Guid], d.[Comp Name] as [Component Name],d.ParentResourceGuid as [Component Guid], d.InstallFlag as [IsInstalled], d.Name as [File Name], d.CNT as [Number of Files] from ( Select o.ParentResourceGuid, o.[Comp Name],ist.InstallFlag, o.Name, o.CNT from ( Select aas.ParentResourceGuid, comp.Name as [Comp Name], fil.Name, COUNT(fil.Name) as CNT from ResourceAssociation aas LEFT Join vFile fil ON aas.ChildResourceGuid = fil.Guid Join vSoftwareComponent comp on aas.ParentResourceGuid = comp.Guid where aas.ResourceAssociationTypeGuid = 'EABE86D3-AAFD-487A-AF63-5C95D7511AF6' and fil.Name = 'acrobat.exe' --replace with name of affected file --and comp.Name like '%Acrobat%Pro%' Group by aas.ParentResourceGuid,comp.Name, fil.Name ) o LEFT OUTER Join Inv_InstalledSoftware ist on o.ParentResourceGuid = ist._SoftwareComponentGuid Group By o.ParentResourceGuid, o.[Comp Name],ist.InstallFlag, o.Name, o.CNT ) d LEFT OUTER join ResourceAssociation Ra on Ra.ChildResourceGuid=d.ParentResourceGuid LEFT OUTER Join vSoftwareProduct Swp on Swp.Guid = Ra.ParentResourceGuid where (Ra.ResourceAssociationTypeGuid = '9D67B0C6-BEFF-4FCD-86C1-4A40028FE483' OR Ra.ResourceAssociationTypeGuid is null) AND (Swp.Name = '<Product Name>' OR Swp.Name is Null)
NB! Please do not delete “Software Components” directly from DB, use NS Console for that operations.
P.P.S. After all such components will be deleted, problem should gone. Repeat same procedure for other products showing same behavior. You will need to modify the SQL query for other products instead of “acrobat.exe” file and “Adobe Acrobat Professional” and “Adobe Acrobat Standard” products.
Some additional research is recommended to ensure that issue won't reoccur. a. Run “Full Inventory” for several clients where the “Product” installed, and check if problem appears again or not. b. Run “NS.Nightly schedule to associate Software component to software product” task and check if problem appears again or not.