Hedef makinelerde PowerShell görevi
Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015
Uzak makineler üzerinde PowerShell betikleri yürütmek için bu görevi kullanın.
Bu görev hem PowerShell betikleri hem de PowerShell-DSC betikleri çalıştırabilir:
- PowerShell betikleri için bilgisayarlarda PowerShell 2,0 veya üzeri yüklü olmalıdır.
- PowerShell-DSC betikleri için bilgisayarlarda Windows Management Framework 'ün en son sürümünün yüklü olması gerekir. Bu, Windows 8.1, Windows Server 2012 R2 ve sonraki sürümlerinde varsayılan olarak yüklenir.
Not
Microsoft Team Foundation Server (TFS) 2018 ve önceki sürümlerde, derleme ve yayın işlem hatları tanımlar olarak adlandırılır, çalışmalara derlemeler denir, hizmet bağlantılarına hizmet uç noktaları denir, aşamalar ortamlar olarak adlandırılır ve işler aşamalar olarak adlandırılır.
Önkoşullar
Bu görev, şirket içi fiziksel bilgisayarlara veya etki alanına katılmış veya çalışma grubuna katılmış sanal bilgisayarlara erişmek için Windows Uzaktan Yönetimi (WinRM) kullanır.
Şirket içi fiziksel bilgisayarlar veya sanal makineler için WinRM 'yi ayarlamak için
Etki alanına katılmış olarak açıklanan adımları izleyin
Microsoft Azure Sanal Makineler için WinRM 'yi ayarlamak için
Azure sanal makineleri, HTTPS protokolünü kullanmak için WinRM 'yi gerektirir. Otomatik olarak imzalanan bir test sertifikası kullanabilirsiniz. Bu durumda, Otomasyon Aracısı sertifikanın güvenilirliğini güvenilir bir sertifika yetkilisi tarafından verildiği şekilde doğrulamaz.
Azure klasik sanal makineler. Azure portal Klasik bir sanal makine oluşturduğunuzda, sanal makine zaten güvenlik duvarında zaten açık olan 5986 varsayılan bağlantı noktası ve makinede yüklü otomatik olarak imzalanan bir SERTIFIKA olan https üzerinden WinRM için ayarlanmıştır. Bu sanal makinelere, daha fazla yapılandırma gerekmeden erişilebilir. Mevcut klasik sanal makineler, Azure Kaynak grubu dağıtım görevi kullanılarak da seçilebilir.
Azure Kaynak grubu. Bir Azure Kaynak grubunuz varsa
Zaten Azure portal tanımlanmış, WinRM HTTPS protokolünü kullanacak şekilde yapılandırmanız gerekir. Güvenlik duvarında 5986 numaralı bağlantı noktasını açmanız ve kendinden imzalı bir sertifika yüklemeniz gerekir.
Sanal makineler içeren Azure kaynak gruplarını dinamik olarak dağıtmak için, Azure Kaynak grubu dağıtım görevini kullanın. Bu görevde dağıtım önkoşullarını etkinleştir adlı bir onay kutusu bulunur. Sanal makinelerde WinRM HTTPS protokolünü otomatik olarak ayarlamak için bunu seçin, güvenlik duvarında 5986 numaralı bağlantı noktasını açın ve bir test sertifikası kurun. Sanal makineler daha sonra dağıtım görevinde kullanıma hazırlardır.
YAML kod parçacığı
# PowerShell on target machines # Execute PowerShell scripts on remote machines using PSSession and Invoke-Command for remoting - task: PowerShellOnTargetMachines@3 inputs: machines: #userName: # Optional #userPassword: # Optional #scriptType: 'Inline' # Optional. Options: filePath, inline #scriptPath: # Required when scriptType == FilePath #inlineScript: '# Write your powershell commands here.Write-Output Hello World' # Required when scriptType == Inline #scriptArguments: # Optional #initializationScript: # Optional #sessionVariables: # Optional #communicationProtocol: 'Https' # Optional. Options: http, https #authenticationMechanism: 'Default' # Optional. Options: default, credssp #newPsSessionOptionArguments: '-SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block' # Optional #errorActionPreference: 'stop' # Optional. Options: stop, continue, silentlyContinue #failOnStderr: false # Optional #ignoreLASTEXITCODE: false # Optional #workingDirectory: # Optional #runPowershellInParallel: true # Optional
Bağımsız değişkenler
|Bağımsız Değişken||Description|
|Larla||İsteğe bağlı olarak bağlantı noktası numarası dahil olmak üzere, makine FQDN 'leri veya IP adreslerinin virgülle ayrılmış listesi. Şunları yapabilirsiniz:


-Bir Azure Kaynak grubununadı.
-Makine adlarının virgülle ayrılmış listesi. Örnek:
-Önceki bir görevden çıkış değişkeni.
Bir bağlantı noktası belirtmezseniz, varsayılan WinRM bağlantı noktası kullanılır. Bu, yapılandırdığınız protokole bağlıdır: WinRM 2,0 için varsayılan HTTP bağlantı noktası 5985 ve varsayılan HTTPS bağlantı noktası 5986.
|Yönetici oturumu açma||Hedef konaktaki bir etki alanının veya yerel yönetim hesabının Kullanıcı adı.


- UserName, *etkialanı * kullanıcıadı, Machine-Name\Username ve .\username gibi biçimler desteklenir.
-Gibi UPN biçimleri email@example.com ve NT AUTHORITY\SYSTEM gibi yerleşik sistem hesapları desteklenmez.
|Parola||Yukarıda belirtilen yönetim hesabının parolası. Parolayı gizlemek için derleme veya sürüm ardışık düzeninde küresel bir gizli dizi değişkeni kullanmayı düşünün. Örnek:


|Protokol||Http veya https olmak üzere hedef konağa bağlanmak için kullanılacak protokol.|
|Sınama sertifikası||Https seçeneğini belirlerseniz, güvenilen bir sertifika yetkilisi tarafından makinenin sertifikasının orijinalliğini doğrulamayı atlamak için bu onay kutusunu işaretleyin.|
|Dağıtım-PowerShell betiği||Hedef makinedeki PowerShell betiğinin konumu. , Gibi ortam değişkenlerini içerebilir


|Dağıtım-betik bağımsız değişkenleri||Varsa, komut dosyası için gereken bağımsız değişkenler. Örnek:


|Dağıtım-başlatma betiği||PowerShell-DSC tarafından kullanılan veri betiğinin hedef makinesindeki konum. Bir başlatma betiği yerine bağımsız değişkenlerin kullanılması önerilir.|
|Dağıtım-oturum değişkenleri||PowerShell betikleri için oturum değişkenlerini ayarlamak için kullanılır.


|Gelişmiş-PowerShell 'i paralel olarak çalıştırma||Tüm hedef makinelerde PowerShell betiklerini paralel olarak yürütmek için bu seçeneği ayarlayın|
|Gelişmiş-makineleri seçin||Filtre ölçütü parametresini kullanırken gruptaki makineleri nasıl belirtmek istediğinize bağlı olarak, makine adları veya Etiketler' i seçin.|
|Gelişmiş filtre ölçütü||İsteğe bağlı. Görevin hedeflenecek makineleri tanımlayan makine adları veya etiket adları listesi. Filtre ölçütü şu olabilir:


-Bir Azure Kaynak grubununadı.
-Önceki bir görevden çıkış değişkeni.
-Etiket adlarının veya makine adlarının virgülle ayrılmış listesi.
Makine adlarının kullanıldığı zaman biçimi, makine FQDN 'lerinin veya IP adreslerinin virgülle ayrılmış listesidir.
{TagName}:{Value} örneği olarak bir filtrenin etiket adlarını belirtin:
|Denetim seçenekleri||Bkz. Denetim seçenekleri|
Görevin sürüm 3. x 'i, PowerShell betik kodunuzu girebileceğiniz satır içi betik ayarını içerir.
Açık kaynak
Bu görev GitHub 'daaçık kaynaktır. Geribildirim ve katılımlar hoş geldiniz.
SSS
Bir aracıya ihtiyacım var mı?
Yapınızı veya sürümünüzü çalıştırmak için en az bir aracınız olması gerekir.
Sorun yaşıyorum. Sorunları nasıl giderebilirim?
Varsayılan bir aracı havuzu seçemiyorum ve derleme veya yayınımı sıraya alamıyorum. Bu Nasıl yaparım? düzeltilsin mi?
Bkz. Aracı havuzları.
NuGet Push görevlerim şu hata ile başarısız oluyor: "hata: yerel veren sertifikası alınamıyor". Bunu nasıl giderebilirim?
Bu, güvenilen kök sertifika eklenerek düzeltilebilir.
NODE_EXTRA_CA_CERTS=fileOrtam değişkenini yapı aracıya ekleyebilir veya
NODE.EXTRA.CA.CERTS=file görev değişkenini işlem hattınızda ekleyebilirsiniz. Daha fazla ayrıntı için bkz. ortam değişkenleri .