Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Betikler, BT Uzmanlarının MSIX kullanılarak paketlenen bir uygulamayı kullanıcının ortamına dinamik olarak özelleştirmesini sağlar. Örneğin, veritabanınızı yapılandırmak, VPN ayarlamak, paylaşılan bir sürücü bağlamak veya lisans denetimini dinamik olarak gerçekleştirmek için betikleri kullanabilirsiniz. Komut dosyaları çok fazla esneklik sağlar. Kayıt defteri anahtarlarını değiştirebilir veya makine veya sunucu yapılandırmasına göre dosya değişiklikleri yapabilir.
Paketlenmiş bir uygulama yürütülebilir dosyası çalıştırilmeden önce bir PowerShell betiği ve temizleme için uygulama yürütülebilir dosyası çalıştırıldıktan sonra bir PowerShell betiği çalıştırmak için Paket Destek Çerçevesi'ni (PSF) kullanabilirsiniz. Uygulama manifestosunda tanımlanan her yürütülebilir uygulama dosyasının kendi betikleri olabilir. Kullanıcıların betiği yanlışlıkla erken sonlandırmaması için betiği yalnızca ilk uygulama başlatmada ve PowerShell penceresini göstermeden bir kez çalışacak şekilde yapılandırabilirsiniz. Betiklerin çalışma biçimini yapılandırmak için aşağıda gösterilen başka seçenekler de vardır.
Önkoşullar
Betiklerin çalıştırılmasına imkan sağlamak için PowerShell yürütme ilkesini RemoteSigned olarak ayarlamanız gerekir. Bu komutu çalıştırarak bunu yapabilirsiniz:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Yürütme ilkesinin hem 64 bit PowerShell yürütülebilir dosyası hem de 32 bit PowerShell yürütülebilir dosyası için ayarlanması gerekir. PowerShell'in her sürümünü açtığınızdan ve yukarıda gösterilen komutlardan birini çalıştırdığınızdan emin olun.
Her yürütülebilir dosyanın konumları aşağıdadır.
- 64 bit bilgisayar:
- 64-bit uygulama: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
- 32 bit yürütülebilir dosya: %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
- 32 bit bilgisayar:
- 32 bit yürütülebilir dosya: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
PowerShell yürütme ilkeleri hakkında daha fazla bilgi için bu makaleye bakın.
🚩 ayrıcaStartingScriptWrapper.ps1 dosyasını paketinize eklediğinizden ve yürütülebilir dosyanızla aynı klasöre yerleştirdiğinden emin olun. Bu dosyayı PSF NuGet paketinden veya PSF Github deposundan kopyalayabilirsiniz.
Komut dosyalarını etkinleştir
Paketlenmiş her uygulama yürütülebilir dosyası için hangi betiklerin çalıştırılacağını belirtmek için config.json dosyasını değiştirmeniz gerekir. PSF'ye paketlenmiş uygulamanın yürütülmesinden önce bir betik çalıştırmasını söylemek için adlı startScriptbir yapılandırma öğesi ekleyin. Paketlenmiş uygulama tamamlandıktan sonra PSF'ye bir betik çalıştırmasını söylemek için bir yapılandırma öğesi olan endScript'yi ekleyin.
Senaryo yapılandırma öğeleri
Betikler için kullanılabilen yapılandırma öğeleri aşağıdadır. Bitiş betiği waitForScriptToFinish ve stopOnScriptError yapılandırma öğelerini yoksayar.
| Anahtar adı | Değer türü | Gerekli mi? | Varsayılan | Açıklama |
|---|---|---|---|---|
scriptPath |
String | Evet | Mevcut Değil | Ad ve uzantıyı içeren betiğin yolu. Yol, belirtilirse uygulamanın çalışma dizinine göre belirlenir, aksi takdirde paketin kök dizininden başlar. |
scriptArguments |
String | Hayı | boş | Boşlukla ayrılmış bağımsız değişken listesi. Biçim, PowerShell betik çağrısı için aynıdır. Geçerli bir PowerShell.exe çağrısı yapmak için bu dize sonuna scriptPath eklenir. |
runInVirtualEnvironment |
Boolean | Hayı | doğru | Betiğin paketlenmiş uygulamanın çalıştığı sanal ortamda çalıştırılıp çalıştırılmayacağını belirtir. |
runOnce |
Boolean | Hayı | doğru | Betiğin kullanıcı başına, sürüm başına bir kez çalıştırılıp çalıştırılmayacağını belirtir. |
showWindow |
Boolean | Hayı | yanlış | PowerShell penceresinin gösterilip gösterilmediğini belirtir. |
stopOnScriptError |
Boolean | Hayı | yanlış | Başlangıç betiği başarısız olursa uygulamadan çıkılıp çıkılmayacağını belirtir. |
waitForScriptToFinish |
Boolean | Hayı | doğru | Paketlenmiş uygulamanın başlamadan önce başlangıç betiğinin bitmesini beklemesi gerekip gerekmediğini belirtir. |
timeout |
DWORD - 32 bitlik sayı | Hayı | SONSUZ | Betiğin ne kadar süreyle yürütülmesine izin verileceği. Süre dolduğunda kod durdurulacak. |
Uyarı
Örnek uygulama için stopOnScriptError: true ve waitForScriptToFinish: false ayarları desteklenmez. Bu yapılandırma öğelerinin ikisini de ayarlarsanız PSF hata ERROR_BAD_CONFIGURATION döndürür.
Örnek yapılandırma
burada iki farklı uygulama yürütülebilir dosyası kullanan örnek bir yapılandırma verilmiştir.
{
"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)
]
}