Profiler kemampuan aplikasi (ACP)

Aplikasi paket mungkin perlu mengakses sumber daya di luar kotak pasir. Contoh sumber daya tersebut termasuk file pengguna, gambar, item registri, kamera, lokasi, dan mikrofon, antara lain. Deklarasi kemampuan memungkinkan aplikasi terkotakpasir untuk mengakses beberapa sumber daya tersebut. Deklarasi dibuat dalam manifes paket aplikasi terkotakpasir. Lihat msix-packaging-tool untuk referensi.

Profiler kemampuan aplikasi adalah sekumpulan alat yang membantu mengidentifikasi kemampuan apa yang mungkin perlu dideklarasikan oleh paket aplikasi, sehingga diberikan akses sumber daya yang dibutuhkannya. Selain itu, ini memberikan informasi diagnostik yang berguna tentang upaya akses yang gagal oleh paket aplikasi.

Penting

Fitur ini dalam pratinjau: Beberapa informasi berkaitan dengan produk prarilis yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.

Menyiapkan sistem target untuk pembuatan profil

Langkah-langkah berikut diperlukan untuk menyiapkan sistem target untuk pembuatan profil:

  1. Pastikan akun pengguna Anda memiliki hak istimewa administrator ke sistem Windows target.

  2. Aktifkan mode pengembang pada sistem target. Pengaturan ini dapat ditemukan di Pengaturan Windows | Privasi & keamanan | Untuk pengembang. Lihat Mengaktifkan perangkat Anda untuk pengembangan untuk informasi selengkapnya.

  3. Instal PowerShell 7.3 atau yang lebih baru. Lihat Menginstal PowerShell di Windows untuk instruksi penginstalan.

    Ini diperlukan untuk kompatibilitas modul Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler .

  4. Instal Windows Performance Recorder (WPR) jika belum diinstal dan tambahkan ke PATH.

    Lihat Perekam Performa Windows untuk petunjuknya.

    Get-Command wpr
    

    Cuplikan layar memperlihatkan cmdlet Get-Command yang dijalankan di prompt perintah PowerShell

  5. Unduh arsip profiler kemampuan aplikasi dan ekstrak ke jalur yang nyaman.

    Arsip profiler kemampuan aplikasi dapat diunduh dari aset rilis proyek ini.

  6. Ikuti instruksi tentang msix-packaging-tool untuk mengemas aplikasi dan menginstalnya pada sistem target.

  7. Dapatkan manifes paket aplikasi target (disarankan) dan/atau nama lengkap paket aplikasi target.

    1. (Disarankan) Dapatkan manifes paket aplikasi target. Cara termudah untuk melakukan ini adalah dengan membukanya menggunakan alat pengemasan MSIX dan menyimpan salinan manifes ke jalur yang nyaman.

      Cuplikan layar memperlihatkan bagian Informasi paket dari MSIX Packaging Tool dengan tombol Buka file disorot

      Cuplikan layar memperlihatkan file manifes yang disimpan

      Cuplikan layar memperlihatkan file manifes yang disimpan dalam dialog penyimpanan Windows

    2. Dapatkan nama lengkap paket aplikasi dengan menjalankan perintah berikut di PowerShell:

      Get-AppxPackage | where-object {$_.name -like '*Test-AppSilo*'}
      

      Cuplikan layar memperlihatkan output perintah Get-AppxPackage

  8. (Opsional) Instal windows Penganalisis Kinerja. Lihat Penganalisis Kinerja Windows untuk petunjuknya. Ini tidak diperlukan untuk pembuatan profil tetapi mungkin berguna dalam memvisualisasikan beberapa data yang diambil dan dihasilkan oleh ACP.

Impor modul PowerShell

Informasi tentang modul dapat ditemukan di sini: Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler.

Jalankan perintah berikut di PowerShell dengan hak istimewa administrator untuk mengimpor modul:

Import-Module .\Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler.dll

Catatan

Modul Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler.dll terletak di folder ACP yang diekstrak dari arsip di langkah 5 dari menyiapkan sistem target untuk instruksi pembuatan profil di atas.

Mulai pembuatan profil

Cmdlet Start-Profiling mengambil jalur ke manifes paket aplikasi target atau nama lengkap paket aplikasi.

Start-Profiling akan melengkapi paket aplikasi target untuk pencatatan jejak dan mengaktifkan penyedia pencatatan jejak untuk upaya akses yang dilakukan oleh paket aplikasi target. Lihat Mulai Pembuatan Profil untuk informasi selengkapnya.

Jalankan perintah berikut di PowerShell dengan hak istimewa administrator untuk mulai membuat profil:

Start-Profiling -ManifestPath TestApp-AppXManifest.xml

Cuplikan layar memperlihatkan jendela perintah PowerShell yang menjalankan cmdlet Start-Profiling

Menjalankan skenario aplikasi

Dalam langkah ini, penting bahwa semua skenario aplikasi penting dijalankan. Hasil pembuatan profil sama komprehensifnya dengan skenario yang dijalankan pada langkah ini. Semakin banyak skenario aplikasi yang dijalankan, semakin besar dan lebih lengkap jumlah data yang diambil oleh sesi pencatatan jejak yang dimulai di atas.

Hentikan pembuatan profil

Cmdlet Stop-Profiling menghentikan sesi pencatatan jejak upaya akses yang telah dimulai dan menghapus instrumentasi untuk paket aplikasi apa pun yang diinstrumentasikan untuk pengelogan jejak.

Stop-Profiling menerima parameter jalur pelacakan opsional yang mengontrol jalur yang digunakan untuk file Log Jejak Peristiwa (.etl) output. <current_directory>\trace.etl secara default. Lihat Stop-Profiling untuk informasi selengkapnya.

Jalankan perintah berikut di PowerShell dengan hak istimewa administrator untuk menghentikan pembuatan profil:

Stop-Profiling

Cuplikan layar memperlihatkan jendela perintah PowerShell yang menjalankan cmdlet Stop-Profiling

Mendapatkan hasil pembuatan profil

Cmdlet Get-ProfilingResults mengurai file jejak yang diperoleh dari langkah-langkah di atas dan menemukan kemampuan yang diperlukan oleh paket aplikasi yang diidentifikasi dalam jejak. Ini menghasilkan kemampuan dan informasi untuk setiap paket aplikasi yang diidentifikasi dalam pelacakan, kecuali filter ke paket tertentu ditentukan.

Get-ProfilingResults menerima jalur ke file pelacakan yang akan diurai. Jika tidak ada jalur yang disediakan, Get-ProfilingResults akan mencoba memanggil Stop-Profiling untuk mendapatkan jejak untuk diurai.

Get-ProfilingResults secara opsional mengambil jalur ke manifes aplikasi target. Jika informasi dalam jejak yang diurai dapat dikaitkan dengan manifes paket aplikasi target, file diedit langsung dengan kemampuan output. Jika tidak, salinan manifes dibuat untuk setiap paket yang diidentifikasi dalam jejak, menambahkan kemampuan yang diidentifikasi.

Lihat Get-ProfilingResults untuk detailnya.

Perintah berikut akan mengurai file jejak dan menghasilkan hasilnya:

Get-ProfilingResults -EtlFilePaths trace.etl -ManifestPath TestApp-AppXManifest.xml

Cuplikan layar memperlihatkan jendela perintah PowerShell yang menjalankan cmdlet Get-ProfilingResults

Mengemas ulang aplikasi

Untuk mengemas ulang aplikasi target dengan kemampuan yang baru diidentifikasi:

  1. Sertakan kemampuan yang baru diidentifikasi dalam manifes paket aplikasi target (Get-ProfilingResults akan mengedit manifes secara langsung jika disediakan).
  2. Ikuti instruksi dalam msix-packaging-tool untuk mengemas ulang aplikasi target dengan kemampuan baru, dan instal ulang.

Cmdlet pembantu

Cmdlet Merge-ProfilingResults dapat digunakan untuk menggabungkan output dari beberapa eksekusi Get-ProfilingResults.

Menginterpretasikan output pembuatan profil

Output Get-ProfilingResults terdiri dari yang berikut ini:

  1. Kemampuan berformat manifes

    Jika pengguna menyediakan manifes untuk diedit dengan -ManifestPath sakelar dan paket tempat manifes berada diidentifikasi dalam jejak input, Get-ProfilingResults akan mengedit file manifes secara langsung untuk menyertakan kemampuan yang diidentifikasi dalam jejak untuk paket. Jika tidak, untuk setiap paket yang diidentifikasi dalam file pelacakan, Get-ProfilingResults akan menghasilkan file bernama <package full name><manifest name>.xml yang berisi <Capabilities> elemen dengan kemampuan yang diidentifikasi dalam jejak untuk paket yang sesuai.

    Catatan

    Ada dua jenis kemampuan khusus yang dapat diidentifikasi Get-ProfilingResults . Hasil ini ditandai dengan komentar XML dalam manifes output.

    • Kemampuan sensitif privasi: Kemampuan ini melindungi sumber daya sensitif privasi seperti kamera, lokasi, dan mikrofon. Kemampuan ini harus dideklarasikan jika paket aplikasi memerlukan akses ke sumber daya ini. Namun, deklarasi kemampuan saja mungkin tidak cukup untuk memastikan akses aplikasi ke sumber daya sensitif privasi target. Dalam pengaturan privasi, pengguna masih dapat memberikan atau menolak akses sumber daya ke aplikasi.
    • Kemampuan permintaan: Get-ProfilingResults akan menghasilkan kemampuan ini dalam formulir "dikomentari" ketika mengidentifikasi bahwa kemampuan permintaan dapat berlaku untuk paket aplikasi. Jika dinyatakan dalam manifes paket, aplikasi akan memilih untuk meminta fallback. Permintaan pengguna akan dikeluarkan setiap kali aplikasi memiliki aksesnya ditolak ke sumber daya yang memenuhi syarat permintaan. Ini memberi pengguna kesempatan untuk secara eksplisit memberikan atau menolak akses ke sumber daya. Permintaan fallback dapat mengganggu dan melemahkan kotak pasir, sehingga harus digunakan dengan hati-hati, sebaiknya hanya ketika diperlukan untuk skenario aplikasi penting.
  2. AccessAttemptRecords.csv

    Ini adalah file nilai yang dipisahkan koma yang berisi informasi diagnostik terperinci tentang peristiwa jejak yang diurai dan setiap upaya akses yang gagal dicatat untuk paket aplikasi.

  3. summary.txt

    Ini adalah ringkasan semua eksekusi Get-ProfilingResults. Setiap eksekusi ditambahkan ke file ini. -SummaryOutputPath dapat digunakan untuk mengubah jalur file ini.

    Ringkasan berisi input yang diurai, paket aplikasi target dan dapat dieksekusi, kemampuan yang diidentifikasi, konten manifes yang diedit, dan daftar ringkasan semua sumber daya yang coba diakses paket aplikasi tetapi tidak ada kemampuan yang diidentifikasi.

Catatan

Ada kemungkinan bahwa aplikasi target tidak akan dapat mengakses sumber daya ini saat dibungkus.

  1. README.txt

    File ini berisi informasi untuk semua eksekusi Get-ProfilingResults. Setiap kali skrip berjalan, skrip ditambahkan ke file ini.

    README menyediakan informasi tentang input yang diurai, paket aplikasi target, output file dan jalurnya, serta panduan pemecahan masalah.

Pelacakan tumpukan

Arsip ACP berisi file bernama ACP-StackTrace.wpaProfile. Ini adalah profil untuk Windows Penganalisis Kinerja (WPA). Ini memungkinkan visualisasi pelacakan tumpukan untuk file log jejak peristiwa yang diambil oleh Stop-Profiling. Ini memecah upaya akses, target mereka, dan tumpukan yang mengeluarkan upaya. Ini memungkinkan pemahaman yang lebih lengkap tentang alasan mengapa aplikasi target tidak dapat mengakses sumber daya tertentu.

Untuk memvisualisasikan tumpukan upaya akses yang diambil oleh Stop-Profiling di trace.etl:

  1. Buka file trace.etl di WPA.

  2. Konfigurasikan jalur Simbol WPA untuk menunjuk ke simbol aplikasi dan server simbol publik Microsoft:

    Cuplikan layar memperlihatkan simbol pemuatan Windows Penganalisis Kinerja

  3. Muat simbol.

  4. Terapkan profil di ACP-StackTrace.wpaProfile untuk melihat visualisasi tumpukan upaya akses:

    Cuplikan layar memperlihatkan Windows Penganalisis Kinerja menerapkan profil

    Cuplikan layar memperlihatkan Windows Penganalisis Kinerja menampilkan visualisasi tumpukan upaya akses

Microsoft.Windows.Win32Isolation.ApplicationCapabilityProfiler

Mulai Pembuatan Profil

Hentikan Pembuatan Profil

Get-ProfilingResults

Merge-ProfilingResults

msix-packaging-tool

Deklarasi kemampuan

Perekam Performa Windows

Penganalisis Performa Windows

Memasang PowerShell di Windows