Bagikan melalui


PowerShellOnTargetMachines@3 - PowerShell pada tugas komputer target v3

Gunakan tugas ini untuk menjalankan skrip PowerShell pada komputer jarak jauh menggunakan PSSession dan Invoke-Command untuk jarak jauh.

Gunakan tugas ini untuk menjalankan skrip PowerShell pada komputer jarak jauh. Versi tugas ini menggunakan PSSession dan Invoke-Command untuk jarak jauh.

Sintaks

# PowerShell on target machines v3
# Execute PowerShell scripts on remote machines using PSSession and Invoke-Command for remoting.
- task: PowerShellOnTargetMachines@3
  inputs:
    Machines: # string. Required. Machines. 
    #UserName: # string. Username. 
    #UserPassword: # string. Password. 
  # Script options
    #ScriptType: 'Inline' # 'FilePath' | 'Inline'. Script Type. Default: Inline.
    #ScriptPath: # string. Required when ScriptType = FilePath. Script File Path. 
    InlineScript: # string. Required when ScriptType = Inline. Script. 
    #ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments. 
    #InitializationScript: # string. Optional. Use when ScriptType = FilePath. Initialization script. 
    #SessionVariables: # string. Optional. Use when ScriptType = FilePath. Session Variables. 
  # PSSession options
    #CommunicationProtocol: 'Https' # 'Http' | 'Https'. Protocol. Default: Https.
    #AuthenticationMechanism: 'Default' # 'Default' | 'Credssp'. Authentication. Default: Default.
    #NewPsSessionOptionArguments: '-SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block' # string. Session Option parameters. Default: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.
  # Error handling options
    #ErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
    #failOnStderr: false # boolean. Fail on Standard Error. Default: false.
    #ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
  # Advanced
    #WorkingDirectory: # string. Working Directory. 
    #RunPowershellInParallel: true # boolean. Run PowerShell in Parallel. Default: true.
# PowerShell on Target Machines v3
# Execute PowerShell scripts on remote machine(s). This version of the task uses PSSession and Invoke-Command for remoting.
- task: PowerShellOnTargetMachines@3
  inputs:
    Machines: # string. Required. Machines. 
    #UserName: # string. Username. 
    #UserPassword: # string. Password. 
  # Script options
    #ScriptType: 'Inline' # 'FilePath' | 'Inline'. Script Type. Default: Inline.
    #ScriptPath: # string. Required when ScriptType = FilePath. Script File Path. 
    InlineScript: # string. Required when ScriptType = Inline. Script. 
    #ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments. 
    #InitializationScript: # string. Optional. Use when ScriptType = FilePath. Initialization script. 
    #SessionVariables: # string. Optional. Use when ScriptType = FilePath. Session Variables. 
  # PSSession options
    #CommunicationProtocol: 'Https' # 'Http' | 'Https'. Protocol. Default: Https.
    #AuthenticationMechanism: 'Default' # 'Default' | 'Credssp'. Authentication. Default: Default.
    #NewPsSessionOptionArguments: '-SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block' # string. Session Option parameters. Default: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.
  # Error handling options
    #ErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
    #failOnStderr: false # boolean. Fail on Standard Error. Default: false.
    #ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
  # Advanced
    #WorkingDirectory: # string. Working Directory. 
    #RunPowershellInParallel: true # boolean. Run PowerShell in Parallel. Default: true.

Input

Machines - Mesin
string. Wajib diisi.

Menentukan daftar FQDN komputer atau alamat IP yang dipisahkan koma, dan secara opsional menyertakan nomor port. Dapat berupa:

  • Nama Grup Sumber Daya Azure.
  • Daftar nama komputer yang dibatasi koma. Contoh: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
  • Variabel output dari tugas sebelumnya.

Jika Anda tidak menentukan port, port WinRM default akan digunakan. Ini tergantung pada protokol yang telah Anda konfigurasi. Untuk WinRM 2.0, port HTTP default adalah 5985 dan port HTTPS default adalah 5986.


UserName - Username
string.

Menentukan nama pengguna domain atau akun administratif lokal pada host target.

  • Format seperti username, , domain\usernamemachine-name\username, dan .\username didukung.
  • Format UPN seperti username@domain.com dan akun sistem bawaan seperti NT Authority\System tidak didukung.

UserPassword - Password
string.

Menentukan kata sandi untuk komputer target. Variabel yang ditentukan dalam definisi build/rilis seperti $(passwordVariable) yang diterima. Anda dapat menandai jenis variabel sebagai secret untuk mengamankannya.


ScriptType - Jenis Skrip
string. Nilai yang diizinkan: FilePath (Jalur File), Inline. Nilai default: Inline.

Menentukan jenis skrip yang akan dijalankan: Sebaris atau Jalur File.


ScriptPath - Jalur File Skrip
string. Diperlukan saat ScriptType = FilePath.

Menentukan lokasi skrip PowerShell pada komputer target atau pada jalur UNC, seperti C:\BudgetIT\Web\Deploy\Website.ps1, yang harus dapat diakses dari komputer target.


InlineScript - Script
string. Diperlukan saat ScriptType = Inline. Nilai default: # Write your powershell commands here.\n\nWrite-Output "Hello World".


ScriptArguments - Argumen Skrip
string. Opsional. Gunakan saat ScriptType = FilePath.

Menentukan argumen untuk skrip PowerShell. Bisa berupa parameter ordinal atau bernama, seperti -testParam pengujian. Contoh: -applicationPath $(applicationPath), -username $(vmusername), -password $(vmpassword).


InitializationScript - Skrip inisialisasi
string. Opsional. Gunakan saat ScriptType = FilePath.

Menentukan lokasi skrip data untuk DSC pada komputer target atau pada jalur UNC, seperti C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1. Disarankan untuk menggunakan argumen alih-alih skrip inisialisasi.


SessionVariables - Variabel Sesi
string. Opsional. Gunakan saat ScriptType = FilePath.

Digunakan untuk menyiapkan variabel sesi untuk skrip PowerShell.
Menentukan daftar yang dipisahkan koma, seperti $varx=valuex, $vary=valuey. Paling umum digunakan untuk kompatibilitas mundur dengan versi layanan rilis yang lebih lama. Disarankan untuk menggunakan argumen alih-alih variabel sesi.


CommunicationProtocol - Protokol
string. Nilai yang diizinkan: Http, Https. Nilai default: Https.

Menentukan protokol yang akan digunakan untuk koneksi layanan WinRM dengan komputer. Nilai defaultnya adalah HTTPS.


AuthenticationMechanism - Otentikasi
string. Nilai yang diizinkan: Default, Credssp. Nilai default: Default.

Menentukan mekanisme autentikasi yang digunakan untuk membuat PSSession. Untuk CredSSP autentikasi, bidang nama pengguna dan kata sandi wajib.


NewPsSessionOptionArguments - Parameter Opsi Sesi
string. Nilai default: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.

Opsi tingkat lanjut untuk sesi jarak jauh (New-PSSessionOption). Misalnya, -SkipCACheck, -SkipCNCheck, -SkipRevocationCheck, dll. Lihat daftar lengkap semua opsi sesi untuk mempelajari selengkapnya.


ErrorActionPreference - ErrorActionPreference
string. Nilai yang diizinkan: stop, continue, dan silentlyContinue. Nilai default: stop.

Menambahkan baris $ErrorActionPreference = 'VALUE' di bagian atas skrip Anda.


failOnStderr - Gagal pada Kesalahan Standar
boolean. Nilai default: false.

Jika diatur ke true, gagal jika ada kesalahan yang ditulis ke alur kesalahan atau jika ada data yang ditulis ke aliran Kesalahan Standar. Jika tidak, tugas bergantung pada kode keluar untuk menentukan kegagalan.


ignoreLASTEXITCODE - Abaikan $LASTEXITCODE
boolean. Nilai default: false.

Jika diatur ke false, baris if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } dijalankan di akhir skrip Anda. Ini menyebabkan kode keluar terakhir dari perintah eksternal disebarluaskan sebagai kode keluar PowerShell. Jika tidak, baris tidak dijalankan ke akhir skrip Anda.


WorkingDirectory - Direktori Kerja
string.

Menentukan direktori kerja tempat skrip dijalankan.


RunPowershellInParallel - Menjalankan PowerShell secara Paralel
boolean. Nilai default: true.

Jika diatur ke true, menjalankan skrip PowerShell secara paralel pada komputer target.


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugas mereka. Untuk informasi selengkapnya, lihat Opsi kontrol dan properti tugas umum.

Variabel output

Tidak ada.

Keterangan

Gunakan tugas ini untuk menjalankan skrip PowerShell pada komputer jarak jauh.

Tugas ini dapat menjalankan skrip PowerShell dan skrip PowerShell-DSC:

  • Untuk skrip PowerShell, komputer harus menginstal PowerShell 2.0 atau yang lebih tinggi.
  • Untuk skrip PowerShell-DSC, komputer harus menginstal versi terbaru Windows Management Framework. Ini diinstal secara default pada Windows 8.1, Windows Server 2012 R2, dan versi berikutnya.

Prasyarat

Tugas ini menggunakan Windows Remote Management (WinRM) untuk mengakses komputer fisik lokal atau komputer virtual yang bergabung dengan domain atau bergabung dengan grup kerja.

Untuk menyiapkan WinRM untuk komputer fisik atau komputer virtual lokal

Ikuti langkah-langkah yang dijelaskan dalam gabungan domain

Untuk menyiapkan WinRM untuk Microsoft Azure Virtual Machines

Azure Virtual Machines mengharuskan WinRM menggunakan protokol HTTPS. Anda dapat menggunakan Sertifikat Pengujian yang ditandatangani sendiri. Dalam hal ini, agen otomatisasi tidak akan memvalidasi keaslian sertifikat sebagaimana dikeluarkan oleh otoritas sertifikasi tepercaya.

  • Azure Classic Virtual Machines. Ketika Anda membuat komputer virtual klasik dari portal Azure, komputer virtual sudah disiapkan untuk WinRM melalui HTTPS, dengan port default 5986 sudah dibuka di firewall dan sertifikat yang ditandatangani sendiri yang diinstal pada komputer. Komputer virtual ini dapat diakses tanpa konfigurasi lebih lanjut yang diperlukan. Komputer virtual Klasik yang ada juga dapat dipilih dengan menggunakan tugas Penyebaran Grup Sumber Daya Azure .

  • Grup Sumber Daya Azure. Jika Anda memiliki Grup Sumber Daya Azure yang sudah ditentukan dalam portal Azure, Anda harus mengonfigurasinya untuk menggunakan protokol WinRM HTTPS. Anda perlu membuka port 5986 di firewall, dan menginstal sertifikat yang ditandatangani sendiri.

Untuk menyebarkan Grup Sumber Daya Azure yang berisi komputer virtual secara dinamis, gunakan tugas Penyebaran Grup Sumber Daya Azure . Tugas ini memiliki kotak centang bernama Aktifkan Prasyarat Penyebaran. Pilih ini untuk secara otomatis menyiapkan protokol HTTPS WinRM pada komputer virtual, membuka port 5986 di firewall, dan menginstal sertifikat pengujian. Komputer virtual kemudian siap digunakan dalam tugas penyebaran.

Apa yang baru dalam versi tugas ini

  • Menggunakan PSSession dan invoke-command untuk melakukan remoting pada komputer target.
  • Menambahkan dukungan untuk eksekusi skrip sebaris.
  • Autentikasi Default dan CredSSP didukung.
  • Menambahkan opsi untuk penanganan kesalahan: ErrorActionPreference, dan ignoreLASTEXITCODEGagal pada Kesalahan Standar.

Persyaratan

Persyaratan Deskripsi
Jenis alur YAML, Build klasik, Rilis klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak ada
Kemampuan Tugas ini tidak memenuhi tuntutan untuk tugas berikutnya dalam pekerjaan.
Pembatasan perintah Apa pun
Variabel yang dapat diatur Apa pun
Versi agen 2.134.0 atau lebih tinggi
Kategori tugas Sebarkan