Get-ProfilingResults

The Get-ProfilingResults cmdlet parses one or more specified ETL (Event Tracing for Windows) files to find access denied events for application packages and identifies capabilities that would allow the package to perform those accesses. It also outputs relevant information about the access denied events found for the packages.

Important

This feature is in preview: Some information relates to a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Module Name: Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler

Syntax

Get-ProfilingResults [[-EtlFilePaths] <string[]>] [-ExeNames <string[]>] [-ManifestPath <string>]
[-RecordsOutputPath <string>] [-SummaryOutputPath <string>] [-PackageNames <string[]>] [-Quiet]
[-ShowNoNameObjectFailures] [-WhatIf] [-Confirm] [<CommonParameters>]

Parameters

-EtlFilePaths

Specifies an array of paths to the ETL files from which profiling results should be retrieved. Get-ProfilingResults requires an input ETL file. If -EtlFilePaths is not provided, the cmdlet will attempt to stop an active trace logging session and capture an ETL file from it.

Type: System.String[]
Parameter Sets: (All)
Aliases: Logs, l

Required: False
Position: 0
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ExeNames

Specifies an array of executable names to filter the profiling results. Only results related to the specified executables will be returned.

Type: System.String[]
Parameter Sets: (All)
Aliases: e

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ManifestPath

Specifies the path to the application package manifest file to be edited by the cmdlet with the identified capabilities. If the capabilities identified cannot be attributed to this manifest's package, a copy of the manifest is generated for each package identified including the capabilities pertaining thereto.

Type: System.String
Parameter Sets: (All)
Aliases: m

Required: False
Position: Named
Default value: <working directory>\<package name>\AppXManfiest-Capabilities.xml
Accept pipeline input: False
Accept wildcard characters: False

-PackageNames

Specifies an array of package names to filter the profiling results. Only results related to the specified packages will be returned.

Type: System.String[]
Parameter Sets: (All)
Aliases: p, Packages

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-RecordsOutputPath

Specifies the path to a CSV file to save detailed access attempt information. If not specified, the default output path will be used.

Type: System.String
Parameter Sets: (All)
Aliases: r, RecordsOutput, RecordsPath

Required: False
Position: Named
Default value: <working directory>\AccessAttemptRecords.csv
Accept pipeline input: False
Accept wildcard characters: False

-ShowNoNameObjectFailures

Indicates whether to output summary information for access attempts to unidentified objects.

Type: System.Management.Automation.SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

-SummaryOutputPath

Specifies the path to a TXT file to save a summary of the profiling results. If not specified, the default output path will be used.

Type: System.String
Parameter Sets: (All)
Aliases: s, SummaryPath, SummaryOutput

Required: False
Position: Named
Default value: <working directory>\summary.txt
Accept pipeline input: False
Accept wildcard characters: False

-Quiet

Indicates that the cmdlet runs in quiet mode, suppressing unnecessary output and prompts.

Type: System.Management.Automation.SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not executed.

Type: System.Management.Automation.SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

-Confirm

Prompts the user for confirmation before running the cmdlet.

Type: System.Management.Automation.SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

Examples

Parse captured trace and output capability access info

This example parses a trace captured with Start-Profiling/Stop-Profiling and outputs the capability access information. Any capability access information that can be matched to the application package manifest provided is automatically added to the manifest.

Get-ProfilingResults -EtlFilePaths C:\Logs\trace.etl -ManifestPath C:\Path\To\MyAppXManifest.xml

Find and parse active trace logging session

This example finds an active trace logging session from Start-Profiling, collects the trace, and parses it. If a trace logging session is currently active, Stop-Profiling will be called to attempt to collect a trace that can be parsed.

Get-ProfilingResults -ManifestPath C:\Path\To\MyAppXManifest.xml

Parse multiple traces

The following example parses multiple ETL files and outputs the capability access information.

Get-ProfilingResults -EtlFilePaths C:\Logs\trace1.etl, C:\Logs\trace2.etl

Application capability profiler

Start-Profiling

Stop-Profiling

Merge-ProfilingResults