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.
Özel Betik Uzantısı, Azure sanal makinelerinde (VM) betikleri indirir ve çalıştırır. Dağıtım sonrası yapılandırma, yazılım yüklemesi veya başka bir yapılandırma veya yönetim görevi için bu uzantıyı kullanın. Betikleri Azure Depolama veya GitHub'dan indirebilir veya uzantı çalışma zamanında Azure portalına sağlayabilirsiniz.
Özel Script Uzantısı, Azure Resource Manager şablonlarıyla tümleşir. Azure CLI, Azure PowerShell, Azure portalı veya Azure Sanal Makineler REST API'sini kullanarak da çalıştırabilirsiniz.
Bu makalede, Azure PowerShell modülünü ve Azure Resource Manager şablonlarını kullanarak Özel Betik Uzantısı'nın nasıl kullanılacağı açıklanmaktadır. Ayrıca Windows sistemleri için sorun giderme adımları sağlar.
Not
Daha hızlı tanılama için VM yardımını deneyin. Windows için VM yardımını veya Linux için VM yardımını çalıştırmanızı öneririz. Bu betik tabanlı tanılama araçları, Azure VM Konuk Aracısı'nı ve genel VM durumunu etkileyen yaygın sorunları belirlemenize yardımcı olur.
Önkoşullar
Not
Parametresi olarak aynı VM'i kullanarak Update-AzVM çalıştırmak için Özel Betik Uzantısı'nı kullanmayın. Uzantı kendi hazır hale gelmesini bekler.
Desteklenen Windows işletim sistemleri
| İşletim Sistemi Sürümü | x64 | ARM64 |
|---|---|---|
| Windows 10 | Desteklenir | Desteklenir |
| Windows 11 | Desteklenir | Desteklenir |
| Windows Server 2016 | Desteklenir | Desteklenir |
| Windows Server 2016 Core | Desteklenir | Desteklenir |
| Windows Server 2019 | Desteklenir | Desteklenir |
| Windows Server 2019 Core | Desteklenir | Desteklenir |
| Windows Sunucusu 2022 | Desteklenir | Desteklenir |
| Windows Server 2022 Core | Desteklenir | Desteklenir |
| Windows Server 2025 | Desteklenir | Desteklenir |
| Windows Server 2025 Core | Desteklenir | Desteklenir |
Betik konumu
Uzantıyı Azure Blob Depolama'ya erişebilmesi için Azure Blob Depolama kimlik bilgilerinizi kullanacak şekilde ayarlayabilirsiniz. Sanal makine, GitHub veya dahili dosya sunucusu gibi bu uç noktaya yönlendirebildiği sürece betiğin konumu herhangi bir yer olabilir.
İnternet bağlantısı
Betiği GitHub veya Azure Depolama gibi bir dış konumdan indirmek için diğer güvenlik duvarı veya ağ güvenlik grubu (NSG) bağlantı noktalarını açmanız gerekir. Örneğin, betiğiniz Azure Depolama'da bulunuyorsa Depolama için Azure NSG hizmet etiketlerini kullanarak erişime izin verebilirsiniz.
Özel Betik Uzantısı'nın sertifika doğrulamasını atlaması mümkün değildir. Güvenli bir konumdan , örneğin otomatik olarak imzalanan bir sertifikayla indiriyorsanız, doğrulama yordamına göre uzak sertifika geçersiz gibi hatalar alabilirsiniz. Sertifikanın VM'deki Güvenilen Kök Sertifika Yetkilileri deposuna doğru yüklendiğinden emin olun.
Betiğiniz yerel bir sunucuda olsa bile, diğer güvenlik duvarı veya Ağ Güvenlik Grubu (NSG) bağlantı noktalarını açmanız gerekebilir.
İpuçları
- Çıkış son 4.096 baytla sınırlıdır.
- Karakterlerden uygun şekilde kaçınılması, dizgilerin doğru şekilde ayrıştırılmasını sağlar. Örneğin, dosya yollarıyla ilgilenirken tek bir değişmez değer ters eğik çizgiden kurtulmak için her zaman iki ters eğik çizgiye ihtiyacınız vardır. Örnek:
{"commandToExecute": "C:\\Windows\\System32\\systeminfo.exe >> D:\\test.txt"} - Bu uzantı için en yüksek hata oranı betikteki söz dizimi hatalarından kaynaklanır. Betiğin hatasız çalıştığını doğrulayın. Hataları bulmayı kolaylaştırmak için betiğe daha fazla günlük kaydı ekleyin.
- Betiklerin birden fazla çalıştırılmasının yanlışlıkla sistem değişikliklerine neden olmasını önlemek için idempotent betikler yazın.
- Betiklerin çalışırken kullanıcı girişi gerektirmediğinden emin olun.
- Betiğin 90 dakika çalışmasına izin verilir. Daha uzun olan herhangi bir şey uzantının sağlanamamasına neden olur.
- Komut dosyasının içine yeniden başlatmalar yerleştirmeyin. Bu eylem, yüklenen diğer uzantılarla ilgili sorunlara neden olur ve uzantı yeniden başlatıldıktan sonra devam etmez.
- Uygulamaları yüklemeden ve betikleri çalıştırmadan önce yeniden başlatmaya neden olan bir betiğiniz varsa, Windows Zamanlanmış Görevi’ni veya DSC, Chef ya da Puppet uzantıları gibi araçları kullanarak yeniden başlatmayı zamanlayın.
- VM aracısının durdurulmasına veya güncelleştirilmesine neden olan bir betik çalıştırmayın. Bu, uzantıyı geçiş durumunda bırakabilir ve zaman aşımına neden olabilir.
- Uzantı bir betiği yalnızca bir kez çalıştırır. Her başlangıçta bir betik çalıştırmak istiyorsanız, bir Windows Zamanlanmış Görevi oluşturmak için uzantıyı kullanın.
- Betiğin çalıştırılacağı zamanı belirlemek istiyorsanız uzantıyı kullanarak bir Windows Zamanlanmış Görevi oluşturun.
- Betik çalıştığında, Azure portal veya Azure CLI üzerinden yalnızca geçiş uzantı durumunu görürsünüz. Çalışan bir betikle ilgili daha sık durum güncelleştirmesi almak isterseniz kendi çözümünüzü oluşturun.
- Özel Betik Uzantısı, ara sunucuları doğal olarak desteklemez. Bununla birlikte betiğinizin içinde ara sunucuları destekleyen Invoke-WebRequest gibi bir dosya aktarım aracı kullanabilirsiniz.
- Betiklerinizin veya komutlarınızın kullanıyor olabileceği varsayılan olmayan dizin konumlarına dikkat edin. Bu durumla başa çıkmak için bir mantık oluşturun.
- Kayıt defteri anahtarında
HKLM\SOFTWARE\Microsoft\Command Processor\AutoRunherhangi bir özel ayar olmadığından emin olun (burada ayrıntılı olarak anlatılır). Bu, Özel Betik Uzantısı yüklelendikten veya etkinleştirildiği aşamalar sırasında tetiklenir ve'XYZ is not recognized as an internal or external command, operable program or batch file'gibi bir hataya neden olur. - Özel Betik Uzantısı
LocalSystemhesabının altında çalışır. -
storageAccountNamevestorageAccountKeyözelliklerini kullanmayı planlıyorsanız bu özelliklerinprotectedSettingskonumunda birlikte bulunması gerekir. - Sanal makineye bir uzantının yalnızca bir sürümünü uygulayabilirsiniz. İkinci bir özel betik çalıştırmak için mevcut uzantıyı yeni bir yapılandırmayla güncelleştirebilirsiniz. Alternatif olarak, özel betik uzantısını kaldırabilir ve güncelleştirilmiş betikle yeniden uygulayabilirsiniz
Uzantı şeması
Özel Betik Uzantısı yapılandırması, betik konumu ve çalıştırılacak komut gibi öğeleri belirtir. Bu yapılandırmayı yapılandırma dosyalarında depolayabilir, komut satırında belirtebilir veya bir Azure Resource Manager şablonunda belirtebilirsiniz.
Hassas verileri korumalı bir yapılandırmada depolayabilirsiniz. Bu yapılandırma yalnızca VM içinde şifrelenir ve şifresi çözülür. Korumalı yapılandırma, yürütme komutu parola veya paylaşılan erişim imzası (SAS) dosya başvurusu gibi gizli diziler içerdiğinde yararlıdır. Bir örnek aşağıda verilmiştir:
{
"apiVersion": "2018-06-01",
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "virtualMachineName/config-app",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),copyindex())]",
"[variables('musicstoresqlName')]"
],
"tags": {
"displayName": "config-app"
},
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"typeHandlerVersion": "1.10",
"autoUpgradeMinorVersion": true,
"settings": {
"timestamp":123456789
},
"protectedSettings": {
"commandToExecute": "myExecutionCommand",
"storageAccountName": "myStorageAccountName",
"storageAccountKey": "myStorageAccountKey",
"managedIdentity" : {},
"fileUris": [
"script location"
]
}
}
}
Not
managedIdentity özelliği veya storageAccountName özelliği ile birlikte kullanılmamalıdır.
Bir kerede bir VM'ye uzantının yalnızca bir sürümü yüklenebilir. Aynı VM için aynı Azure Resource Manager şablonunda iki kez özel betik belirtme başarısız olur.
Bu şemayı VM kaynağı içinde veya tek başına kaynak olarak kullanabilirsiniz. Bu uzantı Azure Resource Manager şablonunda tek başına kaynak olarak kullanılıyorsa, kaynağın adı virtualMachineName/extensionName biçiminde olmalıdır.
Özellik değerleri
| Adı | Değer veya örnek | Veri türü |
|---|---|---|
| apiVersiyonu | 2018-06-01 |
tarih |
| yayınevi | Microsoft.Compute |
Dize |
| Tip | CustomScriptExtension |
Dize |
| tipİşleyiciVersiyonu | 1.10 |
Int |
| dosyaURI'leri | https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-windows/scripts/configure-music-app.ps1 |
dizi |
| Tarih damgası | 123456789 |
32 bit tamsayı |
| Çalıştırılacak Komut | powershell -ExecutionPolicy Unrestricted -File configure-music-app.ps1 |
Dize |
| depolamaHesapAdi | examplestorageacct |
Dize |
| depolamaHesapAnahtarı | TmJK/1N3AbAZ3q/+hOXoi/l73zOqsaxXDhqa9Y83/v5UpXQp2DQIBuv2Tifp60cE/OaHsJZmQZ7teQfczQj8hg== |
Dize |
| yönetilenKimlik |
{ } veya { "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444" } veya { "objectId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" } |
JSON nesnesi |
Not
Bu özellik adları büyük/küçük harfe duyarlıdır. Dağıtım sorunlarını önlemek için burada gösterildiği gibi adları kullanın.
Özellik değeri ayrıntıları
| Mülk | İsteğe bağlı veya gerekli | Ayrıntılar |
|---|---|---|
| dosyaURI'leri | İsteğe bağlı | İndirilecek dosyaların URL'leri. URL'ler hassassa, örneğin anahtar içeriyorsa, bu alan içinde protectedSettingsbelirtilmelidir. |
| Çalıştırılacak Komut | Zorunlu | Çalıştırılacak olan giriş noktası betiği. Komutunuz parolalar gibi gizli diziler içeriyorsa veya dosya URI'leriniz hassassa bu özelliği kullanın. |
| Tarih damgası | İsteğe bağlı | Bu değeri yalnızca betiğin yeniden çalıştırılmasını tetikleecek şekilde değiştirin. Herhangi bir tamsayı değeri, önceki değerden farklı olduğu sürece kabul edilebilir. |
| depolamaHesapAdi | İsteğe bağlı | Depolama hesabının adı. Depolama kimlik bilgilerini belirtirseniz tüm fileUris değerlerin Azure blobları için URL'ler olması gerekir. |
| depolamaHesapAnahtarı | İsteğe bağlı | Depolama hesabının erişim anahtarı. |
| yönetilenKimlik | İsteğe bağlı |
Dosyaları indirmek için yönetilen kimlik. Geçerli değerler, clientId yönetilen kimliğin istemci kimliği olan (isteğe bağlı, dize) ve objectId yönetilen kimliğin nesne kimliği olan (isteğe bağlı, dize) değerleridir. |
Genel ayarlar , betiğin çalıştığı VM'ye düz metin olarak gönderilir. Korumalı ayarlar yalnızca Azure ve VM tarafından bilinen bir anahtar aracılığıyla şifrelenir. Ayarlar vm'ye gönderildikçe kaydedilir. Başka bir ifadeyle, ayarlar şifrelendiyse, şifreli olarak VM'ye kaydedilir. Şifrelenmiş değerlerin şifresini çözmek için kullanılan sertifika VM'de depolanır. Sertifika, gerekirse çalışma zamanında ayarların şifresini çözmek için de kullanılır.
Genel ayarları kullanmak hata ayıklama için yararlı olabilir, ancak korumalı ayarları kullanmanızı öneririz.
Genel veya korumalı ayarlarda aşağıdaki değerleri ayarlayabilirsiniz. Uzantı, bu değerlerin hem genel hem de korumalı ayarlarda ayarlandığı tüm yapılandırmaları reddeder.
commandToExecutefileUris
Özellik: managedIdentity
Not
Bu özellik yalnızca korumalı ayarlarda belirtilmelidir .
Sürüm 1.10 ve üzeri olan Özel Betik Uzantısı, ayarda sağlanan URL'lerden dosya indirmek için yönetilen kimliklerifileUris. Özellik, kullanıcının SAS belirteçleri veya depolama hesabı anahtarları gibi gizli bilgileri aktarmasına gerek kalmadan, Custom Script Extension'ın Azure Storage özel bloblarına veya kapsayıcılarına erişmesine olanak tanır.
Not
Özel Betik Uzantısı şu anda Azure Arc özellikli sunucularda Yönetilen Kimlik kimlik doğrulamasının kullanılmasını desteklememektedir.
Bu özelliği kullanmak için, Özel Betik Uzantısı'nın çalıştığı VM'ye veya Sanal Makine Ölçek Kümesine sistem tarafından atanan veya kullanıcı tarafından atanan bir kimlik ekleyin. Ardından yönetilen kimliğe Azure Depolama kapsayıcısına veya bloba erişim verin.
Hedef VM veya Sanal Makine Ölçek Kümesinde sistem tarafından atanan kimliği kullanmak için boş bir JSON nesnesine ayarlayın managedidentity .
{
"fileUris": ["https://mystorage.blob.core.windows.net/privatecontainer/script1.ps1"],
"commandToExecute": "powershell.exe script1.ps1",
"managedIdentity" : {}
}
Hedef VM veya Sanal Makine Ölçek Kümesinde kullanıcı tarafından atanan kimliği kullanabilmek için, managedidentity'ü yönetilen kimliğe ait istemci kimliği veya nesne kimliği ile yapılandırın.
{
"fileUris": ["https://mystorage.blob.core.windows.net/privatecontainer/script1.ps1"],
"commandToExecute": "powershell.exe script1.ps1",
"managedIdentity" : { "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444" }
}
{
"fileUris": ["https://mystorage.blob.core.windows.net/privatecontainer/script1.ps1"],
"commandToExecute": "powershell.exe script1.ps1",
"managedIdentity" : { "objectId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" }
}
Not
managedIdentity özelliği veya storageAccountName özelliği ile birlikte kullanılmamalıdır.
Şablon dağıtımı
Azure Resource Manager şablonlarını kullanarak Azure VM uzantılarını dağıtabilirsiniz. Önceki bölümde ayrıntılarıyla belirtilen JSON şeması, bir Azure Resource Manager şablonunda, şablonun dağıtımı sırasında Özel Betik Uzantısı'nı çalıştırmak için kullanılabilir. Aşağıdaki örneklerde Özel Betik Uzantısının nasıl kullanılacağı gösterilmektedir:
- Azure Resource Manager şablonlarıyla sanal makine uzantılarını dağıtma
- Windows ve Azure SQL Veritabanı'da İki Katmanlı Uygulama Dağıtma
PowerShell dağıtımı
Özel Betik Uzantısı'nı mevcut bir sanal makineye eklemek için Set-AzVMCustomScriptExtension komutunu kullanabilirsiniz. Daha fazla bilgi için bkz . Set-AzVMCustomScriptExtension.
Set-AzVMCustomScriptExtension -ResourceGroupName <resourceGroupName> `
-VMName <vmName> `
-Location myLocation `
-FileUri <fileUrl> `
-Run 'myScript.ps1' `
-Name DemoScriptExtension
Örnekler
Birden çok betik kullanma
Bu örnekte sunucunuzu oluşturmak için üç betik kullanılır.
commandToExecute özelliği ilk betiği çağırır. Ardından diğerlerinin nasıl çağrıldığıyla ilgili seçenekleriniz vardır. Örneğin, doğru hata işleme, günlüğe kaydetme ve durum yönetimi ile yürütmeyi denetleyen bir ana betiğiniz olabilir. Betikler çalıştırılacak yerel makineye indirilir.
Örneğin, 1_Add_Tools.ps1'deki betiğe ekleyerek .\2_Add_Features.ps1'i çağırırsınız. içinde tanımladığınız $settingsdiğer betikler için bu işlemi yineleyin.
$fileUri = @("https://xxxxxxx.blob.core.windows.net/buildServer1/1_Add_Tools.ps1",
"https://xxxxxxx.blob.core.windows.net/buildServer1/2_Add_Features.ps1",
"https://xxxxxxx.blob.core.windows.net/buildServer1/3_CompleteInstall.ps1")
$settings = @{"fileUris" = $fileUri};
$storageAcctName = "xxxxxxx"
$storageKey = "1234ABCD"
$protectedSettings = @{"storageAccountName" = $storageAcctName; "storageAccountKey" = $storageKey; "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File 1_Add_Tools.ps1"};
#run command
Set-AzVMExtension -ResourceGroupName <resourceGroupName> `
-Location <locationName> `
-VMName <vmName> `
-Name "buildserver1" `
-Publisher "Microsoft.Compute" `
-ExtensionType "CustomScriptExtension" `
-TypeHandlerVersion "1.10" `
-Settings $settings `
-ProtectedSettings $protectedSettings;
Betikleri yerel paylaşımdan çalıştırma
Bu örnekte, betik konumunuz için yerel bir Sunucu İleti Bloğu (SMB) sunucusu kullanmak isteyebilirsiniz. Ardından commandToExecute haricinde başka bir ayar sağlamanız gerekmez.
$protectedSettings = @{"commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File \\filesvr\build\serverUpdate1.ps1"};
Set-AzVMExtension -ResourceGroupName <resourceGroupName> `
-Location <locationName> `
-VMName <vmName> `
-Name "serverUpdate"
-Publisher "Microsoft.Compute" `
-ExtensionType "CustomScriptExtension" `
-TypeHandlerVersion "1.10" `
-ProtectedSettings $protectedSettings
CLI kullanarak özel betiği birden çok kez çalıştırma
Özel Betik Uzantısı işleyicisi, aynı ayarlar tam olarak geçirilmişse betiğin yeniden çalıştırılmasını engeller. Bu davranış yanlışlıkla yeniden çalıştırmayı önler ve betik idempotent değilse beklenmeyen davranışlara neden olabilir. İşleyicinin yeniden çalıştırmayı engelleyip engellemediğini onaylamak için bölümüne bakın C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension\<HandlerVersion>\CustomScriptHandler.log*. Şu türden bir uyarı aranıyor:
Current sequence number, <SequenceNumber>, is not greater than the sequence number
of the most recently executed configuration. Exiting...
Özel Betik Uzantısı'nı birden çok kez çalıştırmak istiyorsanız, bunu yalnızca şu koşullar altında yapabilirsiniz:
- Uzantının
Nameparametresi, uzantının önceki dağıtımıyla aynıdır. - Yapılandırmayı güncelleştirdiniz. Komutuna zaman damgası gibi bir dinamik özellik ekleyebilirsiniz. İşleyici yapılandırma ayarlarında bir değişiklik algılarsa, bu değişikliği betiği yeniden çalıştırmak için açık bir istek olarak değerlendirir.
Alternatif olarak, ForceUpdateTag.
Invoke-WebRequest'i kullanma
Betiğinizde Invoke-WebRequest kullanıyorsanız parametresini -UseBasicParsingbelirtmeniz gerekir. Parametresini belirtmezseniz, ayrıntılı durumu denetlerken aşağıdaki hatayı alırsınız:
The response content cannot be parsed because the Internet Explorer engine
is not available, or Internet Explorer's first-launch configuration
is not complete. Specify the UseBasicParsing parameter and try again.
Sanal Makine Ölçek Kümeleri
Özel Betik Uzantısı'nı Azure portalından dağıtırsanız, depolama hesabınızdaki betiklere erişmek için SAS belirtecinin süresinin dolması üzerinde denetiminiz yoktur. İlk dağıtım çalışır, ancak depolama hesabının SAS belirtecinin süresi dolduğunda, Özel Betik Uzantısı artık depolama hesabına erişemediğinden sonraki ölçeklendirme işlemleri başarısız olur.
Özel Betik Uzantısını bir Sanal Makine Ölçek Kümesine dağıtırken PowerShell, Azure CLI veya Azure Resource Manager şablonu kullanmanızı öneririz. Bu şekilde, yönetilen kimlik kullanmayı seçebilir veya ihtiyacınız olduğu sürece depolama hesabınızdaki script'e erişmek için SAS belirtecinin süresini doğrudan kontrol altında tutabilirsiniz.
Sorun giderme ve destek
Azure portalından ve Azure PowerShell modülünü kullanarak uzantı dağıtımlarının durumuyla ilgili verileri alabilirsiniz. Bir VM için uzantıların dağıtım durumunu görmek için aşağıdaki komutu çalıştırın:
Get-AzVMExtension -ResourceGroupName <resourceGroupName> `
-VMName <vmName> -Name myExtensionName
Uzantı çıkışı, hedef sanal makinede aşağıdaki klasörün altında bulunan dosyalara kaydedilir:
C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension
Belirtilen dosyalar hedef sanal makinede aşağıdaki klasöre indirilir:
C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.*\Downloads\<n>
Yukarıdaki yolda, <n> uzantının yürütmeleri arasında değişebilen ondalık bir tamsayıdır. Değer 1.* , uzantının gerçek, geçerli typeHandlerVersion değeriyle eşleşir. Örneğin, gerçek dizin C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.8\Downloads\2 olabilir.
Komutu çalıştırdığınızda commandToExecute uzantı, bu dizini, örneğin ...\Downloads\2, geçerli çalışma dizini olarak ayarlar. Bu işlem, fileURIs özelliğini kullanarak indirilen dosyaları bulmamıza olanak tanıyan göreli yolların kullanılmasını sağlar. İndirilen dosya örnekleri şunlardır:
fileUris içinde URI |
Göreli indirme konumu | Mutlak indirme konumu |
|---|---|---|
https://someAcct.blob.core.windows.net/aContainer/scripts/myscript.ps1 |
./scripts/myscript.ps1 |
C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.8\Downloads\2\scripts\myscript.ps1 |
https://someAcct.blob.core.windows.net/aContainer/topLevel.ps1 |
./topLevel.ps1 |
C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.8\Downloads\2\topLevel.ps1 |
Mutlak dizin yolları VM'nin ömrü boyunca değişir, ancak Özel Betik Uzantısı'nın tek bir yürütmesi içinde değişmez.
Mutlak indirme yolu zaman içinde farklılık gösterebileceğinden, mümkün olduğunca commandToExecute kod bloğunda göreli betik/dosya yollarını tercih etmek daha iyidir. Örneğin:
"commandToExecute": "powershell.exe . . . -File \"./scripts/myscript.ps1\""
özellik listesi kullanılarak indirilen dosyalar için ilk URI kesiminden fileUris sonraki yol bilgileri tutulur. Önceki tabloda gösterildiği gibi, indirilen dosyalar, değerlerin fileUris yapısını yansıtmak için indirme alt dizinleriyle eşlenir.
Destek
Bu makalenin herhangi bir bölümüyle ilgili yardıma ihtiyacınız varsa Azure Topluluk Desteği'ndeki Azure uzmanlarına başvurun.
Azure destek talebi oluşturmak için Azure destek sitesine gidin ve Destek Al'ı seçin.
Azure desteği kullanma hakkında bilgi için Microsoft Azure desteği SSS bölümünü okuyun.