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.
Şunlar için geçerlidir: ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri
Komut Çalıştır özelliği, bir Azure Windows VM'sinde betikleri yürütmek için sanal makine (VM) aracısını kullanır. Genel makine veya uygulama yönetimi için bu betikleri kullanabilirsiniz. Vm erişimi ve ağ sorunlarını hızla tanılamanıza ve düzeltmenize ve VM'yi yeniden iyi bir duruma döndürmenize yardımcı olabilir.
Güncelleştirilmiş yönetilen Çalıştırma Komutu, betikleri yürütmek için aynı VM aracı kanalını kullanır ve özgün eylem odaklı Çalıştırma Komutu üzerinde aşağıdaki geliştirmeleri sağlar:
- ARM dağıtım şablonu aracılığıyla güncelleştirilmiş Komut Çalıştırma desteği
- Birçok betiğin paralel yürütülmesi
- Komut dosyalarının sıralı yürütülmesi
- Kullanıcı tarafından belirtilen betik zaman aşımı
- Uzun süre çalışan (saatler/günler) komut dosyaları için destek
- Gizli bilgileri (parametreler, parolalar) güvenli bir şekilde geçirme
Önemli
Yönetilen Çalıştırma Komutu şu anda Azure CLI, PowerShell ve API'de kullanılabilir.
Önkoşullar
Desteklenen Windows İş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 2022 Azure Edition | Desteklenir | Desteklenir |
| Windows Server 2025 | Desteklenir | Desteklenir |
| Windows Server 2025 Core | Desteklenir | Desteklenir |
| Windows Server 2025 Azure Edition | Desteklenir | Desteklenir |
Kullanılabilir Komutlar
| CommandID | Açıklama | Daha Fazla Bilgi |
|---|---|---|
| RunPowerShellScript | PowerShell betiği çalıştırır | |
| NLA'yi Devre Dışı Bırak | Ağ Düzeyinde Kimlik Doğrulamayı (NLA) devre dışı bırakır. Değişikliğin etkili olması için betik tamamlandıktan sonra VM'yi yeniden başlatmanız gerekir. Betiğin kendisi VM'yi yeniden başlatmaz. | readme |
| DisableWindowsUpdate | Windows Update aracılığıyla Otomatik Güncelleştirmeleri devre dışı bırakın. | readme |
| EnableAdminAccount | Yerel Yönetici hesabının devre dışı bırakılıp bırakılmadığını kontrol eder ve eğer öyleyse etkinleştirir. | readme |
| ENABLEEMS | Sorun giderme senaryolarında seri konsol bağlantısına izin vermek için Acil Durum Yönetim Hizmetleri'ni (EMS) etkinleştirin. | readme |
| EnableRemotePS | Uzak PowerShell'i etkinleştirin. | readme |
| EnableWindowsUpdate | Windows Update aracılığıyla Otomatik Güncelleştirmeleri etkinleştirin. | readme |
| IMDSCertCheck | IMDS Sistem Durumunu denetler ve ardından IMDS'nin bağlı olduğu şu anda yüklü sertifikaları analiz eder. Eksikse ek ayrıntılar ve risk azaltma adımları gösterilir. | readme |
| IPConfig | TCP/IP'ye bağlı her bağdaştırıcı için IP adresi, alt ağ maskesi ve varsayılan ağ geçidi için ayrıntılı bilgileri gösterir. Kullanım kılavuzu için Betikleri çalıştırma bölümüne başvurun | readme |
| RDPSettings | Kayıt defteri ayarlarını ve etki alanı ilkesi ayarlarını denetler. Makine bir etki alanının parçasıysa veya ayarları varsayılan değerlerle değiştirirse ilke eylemleri önerir. | readme |
| ResetRDPCert | RDP dinleyicisine bağlı SSL sertifikasını kaldırır ve RDP dinleyicisi güvenliğini varsayılan olarak geri yükler. Sertifikayla ilgili herhangi bir sorun görürseniz bu betiği kullanın. | readme |
| SetRDPPort | Uzak Masaüstü bağlantıları için varsayılan veya kullanıcı tarafından belirtilen bağlantı noktası numarasını ayarlar. Bağlantı noktasına gelen erişim için güvenlik duvarı kuralını etkinleştirir. | readme |
| Windows Etkinleştirme Doğrulaması | Geçerli Windows lisans durumunu (etkin veya değil) denetler ve makine özelliği etkinleştirilmemişse uyarı oluşturulur. | readme |
| WindowsGhostedNicValidationScript | Bu betik, PCI ve VMBUS veri yolları üzerindeki ağ bağdaştırıcıları için Windows kayıt defterini tarar, bunları şu anda etkin olan ağ bağdaştırıcılarıyla karşılaştırır ve hayalet NIC'leri tanımlar. Ağ sorunlarını gidermek veya eski NIC'leri temizlemek için kullanışlıdır. | readme |
| Windows Yükseltme Değerlendirme Doğrulaması | Bu betik, Bir Windows makinesinin (istemci veya sunucu) yerinde işletim sistemi yükseltmesine hazır olup olmadığını değerlendirmek için tasarlanmıştır ve Azure Sanal Makineler için dikkat edilmesi gereken özel noktalar vardır. İşletim sistemi sürümünü, desteklenen yükseltme yollarını, sistem disk alanını ve Güvenilen Başlatma, Güvenli Önyükleme ve vTPM gibi Azure güvenlik özelliklerini değerlendirir. | readme |
Not
Yukarıdaki komut kimlikleri, Windows VM'leri için Yönetilen Çalıştırma Komutları için geçerlidir. "Get-AzVMRunCommandDocument -Location {RegionName}" komutunu kullanarak tüm commandId'leri listeleyebilirsiniz.
Çalıştır Komutu'na erişimi sınırlama
Çalıştırma komutlarının listelenmesi veya bir komutun ayrıntılarının gösterilmesi için Abonelik Düzeyinde izin gerekir Microsoft.Compute/locations/runCommands/read . Yerleşik Okuyucu rolü ve üst düzeyler bu izne sahiptir.
Komut çalıştırmak için izin gerekir Microsoft.Compute/virtualMachines/runCommand/write .
Sanal Makine Katılımcısı rolü ve üst düzeyler bu izne sahiptir.
Komut Çalıştır'ı kullanmak için yerleşik rollerden birini kullanabilir veya özel bir rol oluşturabilirsiniz.
Çalıştırma Komutlarını Kullanma
VM ile betik yürütme
Bu komut betiği VM'ye teslim eder, yürütür ve yakalanan çıkışı döndürür.
Set-AzVMRunCommand -ResourceGroupName "myRG" -VMName "myVM" -Location "EastUS" -RunCommandName "RunCommandName" –SourceScript "echo Hello World!"
SourceScriptUri parametresini kullanarak VM'de betik yürütme
OutputBlobUri ve ErrorBlobUri isteğe bağlı parametrelerdir.
Set-AzVMRunCommand -ResourceGroupName "myRg" `
-VMName "myVM" `
-RunCommandName "RunCommandName" `
-SourceScriptUri “<SAS_URI_of_a_storage_blob_with_read_access_or_public_URI>" `
-OutputBlobUri “<SAS_URI_of_a_storage_append_blob_with_read_add_create_write_access>" `
-ErrorBlobUri “<SAS_URI_of_a_storage_append_blob_with_read_add_create_write_access>”
Vm'de uzun süre çalışan bir Çalıştırma Komutu yürütme
Yürütme süresi, varsayılan 90 dakikalık zaman aşımı süresinden daha uzun olmalıdır. 100 dakika çalıştırılmalıdır (6,000 saniye -TimeoutInSecond parametresine bakın), tabii ki betiğin bu kadar uzun süre çalışması bekleniyorsa. 100 dakika sonra betik yürütme durdurulmalıdır.
Set-AzVMRunCommand -ResourceGroupName MyRG -VMName MyVM -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri <SourceScriptUri> -AsyncExecution -TimeoutInSecond 6000
Vm'de dağıtılan tüm RunCommand kaynaklarını listeleme
Bu komut, özellikleriyle birlikte önceden dağıtılan Çalıştırma Komutlarının tam listesini döndürür.
Get-AzVMRunCommand -ResourceGroupName "myRG" -VMName "myVM"
Yürütme durumunu ve sonuçlarını alma
Bu komut en son çıkış, başlangıç/bitiş saati, çıkış kodu ve yürütmenin terminal durumu gibi geçerli yürütme ilerleme durumunu alır.
Get-AzVMRunCommand -ResourceGroupName "myRG" -VMName "myVM" -RunCommandName "RunCommandName" -Expand InstanceView
SourceScriptUri (depolama blob SAS URL'si) kullanarak sanal makinede çalıştırma komutunu oluşturun veya güncelleyin.
PowerShell betiği içeren bir depolama blobunun SAS URL'sini kullanarak Bir Windows VM'de Çalıştır Komutu oluşturun veya güncelleştirin.
SourceScriptUri, bir depolama blobunun tam SAS URL adresi veya genel URL'si olabilir.
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri <SourceScriptUri>
Not
SAS URL'si bloba okuma erişimi sağlamalıdır. SAS URL'si için 24 saatlik bir süre sonu önerilir. Azure portalında blob seçenekleri kullanılarak veya New-AzStorageBlobSASToken kullanılarak SAS URL'leri veya SAS belirteci oluşturulabilir. Eğer şunu kullanarak New-AzStorageBlobSASToken SAS belirteci oluşturuyorsanız, SAS URL'si = "temel blob URL'si" + "?" + "New-AzStorageBlobSASToken ile alınan SAS belirteci"
Çalıştırma Komutunu Oluşturduktan veya Güncelleştirdikten Sonra VM için Çalıştır Komut Örneği Görünümü Alma
Örnek Görünümü ile VM için Çalıştır Komutu alın. Örnek Görünümü çalıştırma komutunun yürütme durumunu (Başarılı, Başarısız vb.), çıkış kodunu, standart çıkışı ve Komut Çalıştır kullanılarak betik yürütülerek oluşturulan standart hatayı içerir. Sıfır olmayan ExitCode başarısız bir yürütmeyi gösterir.
$x = Get-AzVMRunCommand -ResourceGroupName MyRG -VMName MyVM -RunCommandName MyRunCommand -Expand InstanceView
$x.InstanceView
Örnek çıkış
ExecutionState : Succeeded
ExecutionMessage :
ExitCode : 0
Output :
output : uid=0(root) gid=0(root) groups=0(root)
HelloWorld
Error :
StartTime : 10/27/2022 9:10:52 PM
EndTime : 10/27/2022 9:10:55 PM
Statuses :
InstanceView.ExecutionState: Kullanıcının Komut Çalıştır betiğinin durumu. Betiğinizin başarılı olup olmadığını öğrenmek için bu duruma bakın.
ProvisioningState: Uçtan uca genel uzantı sağlama durumu (uzantı platformunun Komut Çalıştır betiğini tetikleyip tetikleyemediği).
ScriptLocalPath (yerel betik dosyası) kullanarak VM'de Çalıştır Komutu oluşturma veya güncelleştirme
Cmdlet'in yürütüldüğü istemci makinesinde bulunan yerel bir betik dosyasını kullanarak VM'de Çalıştır Komutunu oluşturun veya güncelleştirin.
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1"
SourceScript kullanarak vm üzerinde Çalıştır Komutu oluşturma veya güncelleştirme (betik metni)
Betik içeriğini doğrudan -SourceScript parametresine geçiren bir VM'de Çalıştır Komutunu oluşturun veya güncelleştirin. Birden çok komutu ayırmak için kullanın ;
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVML -RunCommandName MyRunCommand2 -Location EastUS2EUAP -SourceScript "id; echo HelloWorld"
SourceCommandId kullanarak VM'de Çalıştır Komutu oluşturma veya güncelleştirme
Önceden var olan commandId'yi kullanarak bir VM'de Komut Çalıştır'ı oluşturun veya güncelleştirin. Kullanılabilir commandId'ler Get-AzVMRunCommandDocument kullanılarak alınabilir.
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceCommandId DisableWindowsUpdate
OutputBlobUri ve ErrorBlobUri kullanarak standart çıkış ve hata mesajlarını çıkış ve hata 'Append blob'larına akıtmak amacıyla bir VM'de Çalıştır Komutunu oluşturun veya güncelleyin.
VM'de Çalıştır Komutunu oluşturun veya güncelleyin ve standart çıkış ve standart hata iletilerini Çıkış ve Hata Ekleme Bloblarına aktarın.
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVML -RunCommandName MyRunCommand3 -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1" -OutputBlobUri <OutPutBlobUrI> -ErrorBlobUri "ErrorBlobUri
Not
Çıktı ve hata bloblarının AppendBlob türü olması ve SAS URL'lerinin bloba okuma, ekleme, oluşturma, yazma erişimi sağlaması gerekir. SAS URL'si için 24 saatlik bir süre sonu önerilir. Çıkış veya hata blobu yoksa AppendBlob türünde bir blob oluşturulur. Azure portalında blob'un seçenekleri kullanılarak SAS URL'leri veya New-AzStorageBlobSASToken kullanılarak SAS belirteci oluşturulabilir.
RunAsUser ve RunAsPassword parametrelerini kullanarak farklı bir kullanıcı olarak VM'de Çalıştır Komutu oluşturma veya güncelleştirme
RunAsUser ve RunAsPassword parametrelerini kullanarak farklı bir kullanıcı olarak bir VM'de Çalıştır Komutunu oluşturun veya güncelleyin. RunA'ların düzgün çalışması için VM yöneticisine başvurun ve kullanıcının VM'ye eklendiğinden, kullanıcının Çalıştır Komutu (Dizinler, Dosyalar, Ağ vb.) tarafından erişilen kaynaklara erişimi olduğundan ve Windows VM'sinde 'İkincil Oturum Açma' hizmetinin vm üzerinde çalıştığından emin olun.
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1" -RunAsUser myusername -RunAsPassword mypassword
SourceScriptUri (depolama blob SAS URL'si) kullanarak bir Sanal Makine Ölçek Kümeleri kaynağında 'Run Command' oluşturma veya güncelleme.
PowerShell betiği içeren bir depolama blobunun SAS URL'sini kullanarak bir Windows Sanal Makine Ölçek Kümeleri kaynağında komutu oluşturun veya güncelleştirin.
Set-AzVmssVMRunCommand -ResourceGroupName MyRG0 -VMScaleSetName MyVMSS -InstanceId 0 -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri <SourceScriptUri>
Not
SAS URL'si bloba okuma erişimi sağlamalıdır. SAS URL'si için 24 saatlik bir süre sonu önerilir. Azure portalında blob seçenekleri kullanılarak SAS URL'leri oluşturulabilir veya SAS belirteci New-AzStorageBlobSASToken kullanılarak üretilebilir. kullanarak New-AzStorageBlobSASTokenSAS belirteci oluşturuyorsanız, SAS URL biçimi şöyledir: temel blob URL'si + "?" + adresinden New-AzStorageBlobSASTokenSAS belirteci.
Parametre ve ProtectedParameter parametrelerini kullanarak bir VM örneğinde Çalıştır Komutu oluşturma veya güncelleştirme (Betik için Genel ve Korumalı Parametreler)
Parolalar, anahtarlar vb. gibi hassas girişleri betiklere geçirmek için ProtectedParameter kullanın.
$PublicParametersArray = @([Microsoft.Azure.PowerShell.Cmdlets.Compute.Models.Api20210701.IRunCommandInputParameter]@{name='publicParam1';value='publicParam1value'},
>> [Microsoft.Azure.PowerShell.Cmdlets.Compute.Models.Api20210701.IRunCommandInputParameter]@{name='publicParam2';value='publicParam2value'})
$ProtectedParametersArray = @([Microsoft.Azure.PowerShell.Cmdlets.Compute.Models.Api20210701.IRunCommandInputParameter]@{name='secret1';value='secret1value'},
>> [Microsoft.Azure.PowerShell.Cmdlets.Compute.Models.Api20210701.IRunCommandInputParameter]@{name='secret2';value='secret2value'})
Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri <SourceScriptUri> -Parameter $PublicParametersArray -ProtectedParameter $ProtectedParametersArray
Windows: Bağımsız değişkenler betiklere geçirilip şu şekilde çalıştırılırken parametreler ve ProtectedParameters betiklere geçirilir -
myscript.ps1 -publicParam1 publicParam1value -publicParam2 publicParam2value -secret1 secret1value -secret2 secret2valueLinux: Adlandırılmış Parametreler ve değerleri, .sh betiğinde erişilebilir olması gereken ortam yapılandırmasına ayarlanır. Adsız bağımsız değişkenler için, ad girişine boş bir dize geçirin. Adsız bağımsız değişkenler betiklere geçirilir ve şöyle çalıştırılır -
myscript.sh publicParam1value publicParam2value secret1value secret2value
Vm'den RunCommand kaynağını silme
Daha önce VM'de dağıtılan RunCommand kaynağını kaldırın. Betik yürütme işlemi devam ediyorsa yürütme sonlandırılır.
Remove-AzVMRunCommand -ResourceGroupName "myRG" -VMName "myVM" -RunCommandName "RunCommandName"
Birden çok Çalıştırma Komutunu sıralı olarak yürütme
Varsayılan olarak, dağıtım şablonunu kullanarak birden çok RunCommand kaynağı dağıtırsanız, bunlar VM'de aynı anda yürütülür. Eğer betiklere bağımlılığınız varsa ve belirli bir yürütme sırası tercih ediyorsanız, bunları sırasıyla çalıştırmak için dependsOn özelliğini kullanabilirsiniz.
Bu örnekte secondRunCommand, firstRunCommand komutundan sonra yürütülür.
{
"$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion":"1.0.0.0",
"resources":[
{
"type":"Microsoft.Compute/virtualMachines/runCommands",
"name":"[concat(parameters('vmName'),'/firstRunCommand')]",
"apiVersion":"2023-03-01",
"location":"[parameters('location')]",
"dependsOn":[
"[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]"
],
"properties":{
"source":{
"script":"Write-Host First: Hello World!"
},
"parameters":[
{
"name":"param1",
"value":"value1"
},
{
"name":"param2",
"value":"value2"
}
],
"timeoutInSeconds":20
}
},
{
"type":"Microsoft.Compute/virtualMachines/runCommands",
"name":"[concat(parameters('vmName'),'/secondRunCommand')]",
"apiVersion":"2019-12-01",
"location":"[parameters('location')]",
"dependsOn":[
"[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'),'runcommands/firstRunCommand')]"
],
"properties":{
"source":{
"scriptUri":"http://github.com/myscript.ps1"
},
"timeoutInSeconds":60
}
}
]
}
Sonraki adımlar
Sanal makinenizde betikleri ve komutları uzaktan çalıştırmanın diğer yolları hakkında bilgi edinmek için bkz . Windows VM'nizde betikleri çalıştırma.