How to Inventory Windows 10 Built-in Applications
search cancel

How to Inventory Windows 10 Built-in Applications

book

Article ID: 179330

calendar_today

Updated On:

Products

Inventory Solution IT Management Suite Client Management Suite

Issue/Introduction

 Is it possible to inventory the Windows 10 build-in applications?

Environment

ITMS 8.x

Inventory Solution 8.x

Resolution

How to Inventory Windows 10 Built-in Applications using Symantec Inventory Solution, Custom Inventory.

Step 1:
Create a new custom data class that will store the file information for each computer.

  1. Go to Settings>All Settings then Settings>Discovery and Inventory>Inventory Solution>Manage Custom Data Classes.
  2. Click New data class.
  3. Name the data class something appropriate and click OK. Use this exact data class name later in the custom inventory script.
  4. Click Add attribute.
  5. Name the attribute "Name", set Key to "No", mind data type and length then click OK.
  6. Add other attribute as required, for example for "Install Location".

Step 2:
Create a Custom Inventory Script Task.

  1. Go to Manage>Jobs and Tasks.
  2. Browse the folder drop-down menu to where you would like to add a custom inventory script task.
  3. Right-click on the folder, then select New>Task.
  4. Select the Run Script task.
  5. Name the task appropriately.
  6. Select Script type: Powershell.
  7. Copy and paste the entire script below into the large text box of the script task. Then edit the script to use the custom data class created in step 1-3, and the full path and name of the desired file.
#************************DO NOT EDIT********************************
$nse = new-object -comobject Altiris.AeXNSEvent
$nse.priority = 1
$nse.To = "{1592B913-72F3-4C36-91D2-D4EDA21D2F96}"
#************************DO NOT EDIT********************************

#Modify this varaible with the custom data class guid
$objDCInstance = $nse.AddDataClass("{3ac40092-71cd-4a69-ae4c-d9c4c1bc3fdb}")
$objDataClass = $nse.AddDataBlock($objDCInstance)
$builtinapps = Get-AppxPackage -AllUsers

#loop through each data file we found and populate rows and columns.
foreach ($app in $builtinapps)
{
    #Add new row of data
    $objDataRow = $objDataClass.AddRow()
    #popluate columns
    $objDataRow.SetField(1, $app.Name)
    $objDataRow.SetField(2, $app.Publisher)
    $objDataRow.SetField(3, $app.Architecture)
    $objDataRow.SetField(4, $app.ResourceId)
    $objDataRow.SetField(5, $app.Version)
    $objDataRow.SetField(6, $app.PackageFullName)
    $objDataRow.SetField(7, $app.InstallLocation)
    $objDataRow.SetField(8, $app.IsFramework)
    $objDataRow.SetField(9, $app.PackageFamilyName)
    $objDataRow.SetField(10, $app.PublisherId)
    $objDataRow.SetField(11, $app.IsResourcePackage)
    $objDataRow.SetField(12, $app.IsBundle)
    $objDataRow.SetField(13, $app.IsDevelopmentMode)
    $objDataRow.SetField(14, $app.IsPartiallyStaged)
    $objDataRow.SetField(15, $app.Dependencies -join ', ')
}
#Send the data
$nse.sendqueued()

Step 2:
Run the created task against targeted Windows 10 managed computer resources.

Step 3:
Create a Custom Report to view the data collected by the custom inventory. You will need to join [vRM_ComputerResource].[GUID] = [Inv_CustomDataClass].[_ResourceGuid]

NB: Provided Attachments (Custom Data-Class, Custom Inventory script & Custom Report), are just for example, and provided as is with no support.

Additional Information

DESCRIPTION :

Provided Attachments as example:

  • Custom Data-Class
  • Custom Inventory PowerShell Script
  • Custom Report

Attachments

Report Windows10 Built-in Applications by computer.xml get_app
DataClass_Windows10BuiltinApps.xml get_app
CustomInvTask_Win10BuiltinApps.xml get_app