Bagikan melalui


Jalankan skrip dengan Kerangka Kerja Dukungan Paket

Skrip memungkinkan PROFESIONAL TI untuk menyesuaikan aplikasi secara dinamis ke lingkungan pengguna setelah dimasukan menggunakan MSIX. Misalnya, Anda dapat menggunakan skrip untuk mengonfigurasi database Anda, menyiapkan VPN, memasang drive bersama, atau melakukan pemeriksaan lisensi secara dinamis. Skrip memberikan banyak fleksibilitas. Mereka dapat mengubah kunci registri atau melakukan modifikasi file berdasarkan konfigurasi komputer atau server.

Anda dapat menggunakan Package Support Framework (PSF) untuk menjalankan satu skrip PowerShell sebelum aplikasi paket yang dapat dieksekusi berjalan dan satu skrip PowerShell setelah aplikasi yang dapat dieksekusi berjalan untuk membersihkan. Setiap aplikasi yang dapat dieksekusi yang ditentukan dalam manifes aplikasi dapat memiliki skripnya sendiri. Anda dapat mengonfigurasi skrip untuk berjalan sekali saja pada peluncuran aplikasi pertama dan tanpa menampilkan jendela PowerShell sehingga pengguna tidak akan mengakhiri skrip sebelum waktunya secara tidak sengaja. Ada opsi lain untuk mengonfigurasi cara skrip dapat berjalan, yang ditunjukkan di bawah ini.

Prasyarat

Untuk mengaktifkan skrip agar berjalan, Anda perlu mengatur kebijakan eksekusi PowerShell ke RemoteSigned. Anda dapat melakukan ini dengan menjalankan perintah ini:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Kebijakan eksekusi perlu ditetapkan untuk PowerShell 64-bit yang dapat dieksekusi dan PowerShell 32-bit yang dapat dieksekusi. Pastikan untuk membuka setiap versi PowerShell dan menjalankan salah satu perintah yang ditunjukkan di atas.

Berikut adalah lokasi setiap executable.

  • Komputer 64-bit:
    • 64-bit executable: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
    • 32-bit dapat dieksekusi: %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
  • Komputer 32-bit:
    • 32-bit yang dapat dieksekusi: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe

Untuk informasi selengkapnya tentang kebijakan eksekusi PowerShell, lihat artikel ini.

🚩 Pastikan juga untuk menyertakan file StartingScriptWrapper.ps1 dalam paket Anda dan letakkan di folder yang sama dengan yang dapat dieksekusi. Anda dapat menyalin file ini dari paket PSF NuGet atau dari repositori Github PSF.

Mengaktifkan skrip

Untuk menentukan skrip apa yang akan dijalankan untuk setiap aplikasi paket yang dapat dieksekusi, Anda perlu memodifikasi file config.json. Untuk memberi tahu PSF untuk menjalankan skrip sebelum eksekusi aplikasi yang dikemas, tambahkan item konfigurasi yang disebut startScript. Untuk memberi tahu PSF untuk menjalankan skrip setelah aplikasi paket selesai menambahkan item konfigurasi yang disebut endScript.

Item konfigurasi skrip

Berikut ini adalah item konfigurasi yang tersedia untuk skrip. Skrip akhir mengabaikan waitForScriptToFinish item konfigurasi dan stopOnScriptError .

Nama kunci Jenis nilai Wajib diisi? Default Deskripsi
scriptPath string Ya T/A Jalur ke skrip termasuk nama dan ekstensi. Jalur relatif terhadap direktori kerja aplikasi jika ditentukan, jika tidak, jalur dimulai di direktori akar paket.
scriptArguments string Tidak kosong Daftar argumen yang dibatasi spasi. Formatnya sama untuk panggilan skrip PowerShell. String ini ditambahkan untuk scriptPath melakukan panggilan PowerShell.exe yang valid.
runInVirtualEnvironment Boolean Tidak benar Menentukan apakah skrip harus berjalan di lingkungan virtual yang sama dengan tempat aplikasi paket berjalan.
runOnce Boolean Tidak benar Menentukan apakah skrip harus berjalan sekali per pengguna, per versi.
showWindow Boolean Tidak salah Menentukan apakah jendela PowerShell ditampilkan.
stopOnScriptError Boolean Tidak salah Menentukan apakah akan keluar dari aplikasi jika skrip awal gagal.
waitForScriptToFinish Boolean Tidak benar Menentukan apakah aplikasi paket harus menunggu skrip awal selesai sebelum memulai.
timeout DWORD Tidak TAK TERBATAS Berapa lama skrip akan diizinkan untuk dijalankan. Ketika waktu berlalu, skrip akan dihentikan.

Catatan

Pengaturan stopOnScriptError: true dan waitForScriptToFinish: false untuk aplikasi sampel tidak didukung. Jika Anda mengatur kedua item konfigurasi ini, PSF akan mengembalikan kesalahan ERROR_BAD_CONFIGURATION.

Konfigurasi sampel

Berikut adalah konfigurasi sampel menggunakan dua executable aplikasi yang berbeda.

{
  "applications": [
    {
      "id": "Sample",
      "executable": "Sample.exe",
      "workingDirectory": "",
      "stopOnScriptError": false,
      "startScript":
      {
        "scriptPath": "RunMePlease.ps1",
        "scriptArguments": "\\\"First argument\\\" secondArgument",
        "runInVirtualEnvironment": true,
        "showWindow": true,
        "waitForScriptToFinish": false
      },
      "endScript":
      {
        "scriptPath": "RunMeAfter.ps1",
        "scriptArguments": "ThisIsMe.txt"
      }
    },
    {
      "id": "CPPSample",
      "executable": "CPPSample.exe",
      "workingDirectory": "",
      "startScript":
      {
        "scriptPath": "CPPStart.ps1",
        "scriptArguments": "ThisIsMe.txt",
        "runInVirtualEnvironment": true
      },
      "endScript":
      {
        "scriptPath": "CPPEnd.ps1",
        "scriptArguments": "ThisIsMe.txt",
        "runOnce": false
      }
    }
  ],
  "processes": [
    ...(taken out for brevity)
  ]
}