Profiler delle funzionalità dell'applicazione (ACP)
Le applicazioni in pacchetto potrebbero dover accedere alle risorse all'esterno della sandbox. Esempi di tali risorse includono file utente, immagini, elementi del Registro di sistema, fotocamera, posizione e microfono, tra gli altri. La dichiarazione di funzionalità consente alle applicazioni in modalità sandbox di accedere ad alcune di queste risorse. Le dichiarazioni vengono effettuate nel manifesto del pacchetto dell'applicazione in modalità sandbox. Per informazioni di riferimento, vedere msix-packaging-tool.
Il profiler delle funzionalità dell'applicazione è un set di strumenti che consentono di identificare le funzionalità che possono essere dichiarate da un pacchetto dell'applicazione, quindi viene concesso l'accesso alle risorse necessario. Fornisce inoltre informazioni di diagnostica utili sui tentativi di accesso non riusciti dal pacchetto dell'applicazione.
Importante
Questa funzionalità è disponibile in anteprima: alcune informazioni sono correlate a un prodotto non definitiva che potrebbe essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Preparare il sistema di destinazione per la profilatura
Per configurare il sistema di destinazione per la profilatura sono necessari i passaggi seguenti:
Verificare che l'account utente disponga dei privilegi di amministratore per il sistema Windows di destinazione.
Abilitare la modalità sviluppatore nel sistema di destinazione. Questa impostazione è disponibile in Impostazioni di Windows | Privacy e sicurezza | Per gli sviluppatori. Per altre informazioni, vedere Abilitare il dispositivo per lo sviluppo .
Installare PowerShell 7.3 o versione successiva. Per istruzioni sull'installazione, vedere Installazione di PowerShell in Windows .
Questa operazione è necessaria per la compatibilità del modulo Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler .
Installare Windows Performance Recorder (WPR) se non è già installato e aggiungerlo a PATH.
Per istruzioni, vedi Windows Performance Recorder .
Get-Command wpr
Scaricare l'archivio del profiler delle funzionalità dell'applicazione ed estrarlo in un percorso pratico.
L'archivio del profiler delle funzionalità dell'applicazione può essere scaricato dagli asset di rilascio di questo progetto.
Seguire le istruzioni su msix-packaging-tool per creare un pacchetto dell'applicazione e installarla nel sistema di destinazione.
Ottenere il manifesto del pacchetto dell'applicazione di destinazione (scelta consigliata) e/o il nome completo del pacchetto dell'applicazione di destinazione.
(Scelta consigliata) Ottenere il manifesto del pacchetto dell'applicazione di destinazione. Il modo più semplice per eseguire questa operazione consiste nell'aprirlo usando lo strumento di creazione pacchetti MSIX e salvare una copia del manifesto in un percorso pratico.
Ottenere il nome completo del pacchetto dell'applicazione eseguendo il comando seguente in PowerShell:
Get-AppxPackage | where-object {$_.name -like '*Test-AppSilo*'}
(Facoltativo) Installare windows analizzatore prestazioni. Per istruzioni, vedere Windows analizzatore prestazioni. Questa operazione non è necessaria per la profilatura, ma può essere utile per visualizzare alcuni dei dati acquisiti e l'output da ACP.
Importare il modulo di PowerShell
Informazioni sul modulo sono disponibili qui: Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler.
Eseguire il comando seguente in PowerShell con privilegi di amministratore per importare il modulo:
Import-Module .\Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler.dll
Nota
Il modulo Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler.dll si trova nella cartella ACP estratta dall'archivio nel passaggio 5 del modulo Preparare il sistema di destinazione per le istruzioni di profilatura precedenti.
Avviare la profilatura
Il cmdlet Start-Profiling accetta il percorso del manifesto del pacchetto dell'applicazione di destinazione o il nome completo del pacchetto dell'applicazione.
Start-Profiling instrumenterà il pacchetto dell'applicazione di destinazione per la registrazione della traccia e abiliterà un provider di registrazione di traccia per i tentativi di accesso effettuati dal pacchetto dell'applicazione di destinazione. Per altre informazioni, vedere Start-Profiling .
Eseguire il comando seguente in PowerShell con privilegi di amministratore per avviare la profilatura:
Start-Profiling -ManifestPath TestApp-AppXManifest.xml
Eseguire gli scenari dell'applicazione
In questo passaggio è importante che vengano eseguiti tutti gli scenari critici dell'applicazione. I risultati della profilatura sono completi come gli scenari eseguiti in questo passaggio. Vengono esercitati più scenari applicativi, maggiore e più completa la quantità di dati acquisiti dalla sessione di registrazione di traccia avviata in precedenza.
Arrestare la profilatura
Il cmdlet Stop-Profiling arresta una sessione di registrazione della traccia di accesso avviata e rimuove la strumentazione per tutti i pacchetti dell'applicazione instrumentati per la registrazione della traccia.
Stop-Profiling accetta un parametro di percorso di traccia facoltativo che controlla il percorso usato per il file di traccia eventi di output (con estensione etl). <current_directory>\trace.etl
per impostazione predefinita. Per altre informazioni, vedere Stop-Profiling .
Eseguire il comando seguente in PowerShell con privilegi di amministratore per arrestare la profilatura:
Stop-Profiling
Ottenere i risultati della profilatura
Il cmdlet Get-ProfilingResults analizza il file di traccia ottenuto dai passaggi precedenti e trova le funzionalità richieste dai pacchetti dell'applicazione identificati nella traccia. Restituisce le funzionalità e le informazioni per ogni pacchetto dell'applicazione identificato nella traccia, a meno che non siano stati specificati filtri per un pacchetto specifico.
Get-ProfilingResults accetta il percorso del file di traccia da analizzare. Se non viene specificato alcun percorso, Get-ProfilingResults tenterà di richiamare la profilatura di arresto per ottenere una traccia da analizzare.
Get-ProfilingResults accetta facoltativamente un percorso di un manifesto dell'applicazione di destinazione. Se le informazioni nella traccia analizzata possono essere attribuite al manifesto del pacchetto dell'applicazione di destinazione, il file viene modificato direttamente con le funzionalità di output. In caso contrario, viene creata una copia del manifesto per ognuno dei pacchetti identificati nella traccia, aggiungendo le funzionalità identificate.
Per informazioni dettagliate, vedere Get-ProfilingResults .
Il comando seguente analizza il file di traccia e restituisce i risultati:
Get-ProfilingResults -EtlFilePaths trace.etl -ManifestPath TestApp-AppXManifest.xml
Ricomprimere l'app
Per creare nuovamente il pacchetto dell'applicazione di destinazione con le funzionalità appena identificate:
- Includere le funzionalità appena identificate nel manifesto del pacchetto dell'applicazione di destinazione (Get-ProfilingResults modificherà il manifesto direttamente se specificato).
- Seguire le istruzioni in msix-packaging-tool per creare nuovamente il pacchetto dell'applicazione di destinazione con le nuove funzionalità e reinstallarlo.
Cmdlet helper
Il cmdlet Merge-ProfilingResults può essere usato per unire l'output da più esecuzioni di Get-ProfilingResults.
Interpretazione dell'output di profilatura
L'output di Get-ProfilingResults è costituito dagli elementi seguenti:
Funzionalità in formato manifesto
Se l'utente fornisce un manifesto da modificare con l'opzione
-ManifestPath
e il pacchetto a cui appartiene il manifesto viene identificato nella traccia di input, Get-ProfilingResults modificherà il file manifesto direttamente in modo da includere le funzionalità identificate nella traccia per il pacchetto. In caso contrario, per ogni pacchetto identificato nel file di traccia, Get-ProfilingResults restituirà un file denominato<package full name><manifest name>.xml
contenente l'elemento<Capabilities>
con le funzionalità identificate nella traccia per il pacchetto corrispondente.Nota
Esistono due tipi speciali di funzionalità che possono essere identificate da Get-ProfilingResults . Questi risultati vengono contrassegnati con commenti XML nel manifesto di output.
- Funzionalità sensibili alla privacy: queste funzionalità proteggono le risorse sensibili alla privacy, ad esempio fotocamera, posizione e microfono. Queste funzionalità devono essere dichiarate se il pacchetto dell'applicazione richiede l'accesso a queste risorse. Tuttavia, la sola dichiarazione di funzionalità potrebbe non essere sufficiente per garantire l'accesso dell'applicazione alla risorsa sensibile alla privacy di destinazione. Nelle impostazioni di privacy l'utente può comunque concedere o negare l'accesso alle risorse all'applicazione.
- Funzionalità di richiesta: Get-ProfilingResults restituirà questa funzionalità nel modulo "commento" quando identifica che la funzionalità di richiesta può essere applicata a un pacchetto dell'applicazione. Se dichiarato nel manifesto del pacchetto, l'applicazione viene accettata la richiesta di fallback. Le richieste dell'utente verranno inviate ogni volta che l'applicazione ha accesso negato a una risorsa idonea alla richiesta. In questo modo l'utente può concedere o negare in modo esplicito l'accesso alla risorsa. La richiesta di fallback può essere intrusiva e indebolire la sandbox, quindi deve essere usata con cautela, preferibilmente solo quando necessario per gli scenari critici dell'applicazione.
AccessAttemptRecords.csv
Si tratta di un file di valori delimitati da virgole contenente informazioni di diagnostica dettagliate sugli eventi di traccia analizzata e ogni tentativo di accesso non riuscito registrato per il pacchetto dell'applicazione.
summary.txt
Questo è un riepilogo di tutte le esecuzioni di Get-ProfilingResults. Ogni esecuzione aggiunge a questo file.
-SummaryOutputPath
può essere usato per modificare questo percorso file.Il riepilogo contiene gli input analizzati, i pacchetti dell'applicazione di destinazione e i file eseguibili, le funzionalità identificate, il contenuto del manifesto modificato e un elenco riepilogato di tutte le risorse a cui il pacchetto dell'applicazione ha tentato di accedere, ma per cui non sono state identificate funzionalità.
Nota
È possibile che l'applicazione di destinazione non sia in grado di accedere a queste risorse durante il pacchetto.
README.txt
Questo file contiene informazioni per tutte le esecuzioni di Get-ProfilingResults. Ogni volta che viene eseguito lo script, viene aggiunto a questo file.
README fornisce informazioni sull'input analizzato, il pacchetto dell'applicazione di destinazione, l'output dei file e i relativi percorsi, nonché una guida alla risoluzione dei problemi.
Analisi dello stack
L'archivio ACP contiene un file denominato ACP-StackTrace.wpaProfile. Si tratta di un profilo per Windows analizzatore prestazioni (WPA). Consente la visualizzazione dell'analisi dello stack per il file di log di traccia eventi acquisito da Stop-Profiling. Suddivide i tentativi di accesso, la destinazione e lo stack che ha emesso il tentativo. Ciò consente una comprensione più completa dei motivi per cui l'applicazione di destinazione non è in grado di accedere a risorse specifiche.
Per visualizzare gli stack di tentativi di accesso acquisiti da Stop-Profiling in trace.etl:
Aprire il file trace.etl in WPA.
Configurare i percorsi dei simboli WPA in modo che puntino ai simboli dell'applicazione e al server dei simboli pubblici Microsoft:
Caricare i simboli.
Applicare il profilo in ACP-StackTrace.wpaProfile per visualizzare la visualizzazione dello stack dei tentativi di accesso:
Argomenti correlati
Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler