Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
To zadanie służy do wykonywania skryptów programu PowerShell na maszynach zdalnych przy użyciu programu PSSession i Invoke-Command na potrzeby komunikacji zdalnej.
Składnia
# 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.
Dane wejściowe
Machines
-
Machines
string
. To jest wymagane.
Określa rozdzielaną przecinkami listę nazw FQDN maszyny lub adresów IP i opcjonalnie zawiera numer portu. Może to być:
- Nazwa grupy zasobów platformy Azure .
- Rozdzielana przecinkami lista nazw maszyn. Przykład:
dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
- Zmienna wyjściowa z poprzedniego zadania.
Jeśli nie określisz portu, zostanie użyty domyślny port usługi WinRM. Zależy to od skonfigurowanego protokołu. W przypadku usługi WinRM 2.0 domyślny port HTTP to 5985
, a domyślny port HTTPS to 5986
.
nazwy użytkownika UserName
-
string
.
Określa nazwę użytkownika domeny lub lokalnego konta administracyjnego na hostach docelowych.
- Obsługiwane są formaty, takie jak
username
,domain\username
,machine-name\username
i.\username
. - Formaty nazwy UPN, takie jak
username@domain.com
i wbudowane konta systemowe, takie jakNT Authority\System
, nie są obsługiwane.
haseł UserPassword
-
string
.
Określa hasło maszyn docelowych. Zmienne zdefiniowane w definicjach kompilacji/wydania jako $(passwordVariable)
są akceptowane. Możesz oznaczyć typ zmiennej jako secret
, aby go zabezpieczyć.
ScriptType
-
typ skryptu
string
. Dozwolone wartości: FilePath
(ścieżka pliku), Inline
. Wartość domyślna: Inline
.
Określa typ skryptu do wykonania: Wbudowany lub Ścieżka pliku.
ScriptPath
-
ścieżka pliku skryptu
string
. Wymagane, gdy ScriptType = FilePath
.
Określa lokalizację skryptu programu PowerShell na maszynach docelowych lub w ścieżce UNC, takiej jak C:\BudgetIT\Web\Deploy\Website.ps1
, która powinna być dostępna z maszyny docelowej.
skryptu InlineScript
-
string
. Wymagane, gdy ScriptType = Inline
. Wartość domyślna: # Write your powershell commands here.\n\nWrite-Output "Hello World"
.
ScriptArguments
-
argumenty skryptu
string
. Opcjonalny. Użyj polecenia , gdy ScriptType = FilePath
.
Określa argumenty skryptu programu PowerShell. Mogą być porządkowe lub nazwane parametry, takie jak test -testParam
. Na przykład: -applicationPath $(applicationPath)
, , -username $(vmusername)
-password $(vmpassword)
.
skrypt inicjowania InitializationScript
-
string
. Opcjonalny. Użyj polecenia , gdy ScriptType = FilePath
.
Określa lokalizację skryptu danych dla rozszerzenia DSC na maszynach docelowych lub w ścieżce UNC, na przykład C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1
. Zaleca się używanie argumentów zamiast skryptu inicjowania.
SessionVariables
-
zmiennych sesji
string
. Opcjonalny. Użyj polecenia , gdy ScriptType = FilePath
.
Służy do konfigurowania zmiennych sesji dla skryptów programu PowerShell.
Określa listę rozdzielaną przecinkami, taką jak $varx=valuex, $vary=valuey
. Najczęściej używane w celu zapewnienia zgodności z poprzednimi wersjami usługi wydania. Zaleca się używanie argumentów zamiast zmiennych sesji.
protokołu CommunicationProtocol
-
string
. Dozwolone wartości: Http
, Https
. Wartość domyślna: Https
.
Określa protokół używany do połączenia usługi WinRM z maszynami. Wartość domyślna to HTTPS
.
uwierzytelniania AuthenticationMechanism
-
string
. Dozwolone wartości: Default
, Credssp
. Wartość domyślna: Default
.
Określa mechanizm uwierzytelniania używany do tworzenia programu PSSession. W przypadku uwierzytelniania CredSSP
pola nazwy użytkownika i hasła są obowiązkowe.
parametry opcji sesji NewPsSessionOptionArguments
-
string
. Wartość domyślna: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block
.
Zaawansowane opcje sesji zdalnej (New-PSSessionOption). Na przykład -SkipCACheck
, -SkipCNCheck
, -SkipRevocationCheck
itp. Zobacz pełną listę wszystkich opcji sesji, aby dowiedzieć się więcej.
ErrorActionPreference
-
ErrorActionPreference
string
. Dozwolone wartości: stop
, continue
, silentlyContinue
. Wartość domyślna: stop
.
Poprzedza wiersz $ErrorActionPreference = 'VALUE'
u góry skryptu.
failOnStderr
-
niepowodzenie w błędu standardowego
boolean
. Wartość domyślna: false
.
Jeśli ustawiono wartość true
, błąd kończy się niepowodzeniem, jeśli jakiekolwiek błędy są zapisywane w potoku błędów lub jeśli jakiekolwiek dane są zapisywane w strumieniu błędu standardowego. W przeciwnym razie zadanie opiera się na kodzie zakończenia w celu określenia błędu.
ignoreLASTEXITCODE
-
Ignoruj $LASTEXITCODE
boolean
. Wartość domyślna: false
.
Jeśli ustawiono wartość false
, wiersz if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }
jest wykonywany na końcu skryptu. Powoduje to propagację ostatniego kodu zakończenia z zewnętrznego polecenia jako kodu zakończenia programu PowerShell. W przeciwnym razie wiersz nie jest wykonywany na końcu skryptu.
katalogu roboczego WorkingDirectory
-
string
.
Określa katalog roboczy, w którym jest uruchamiany skrypt.
RunPowershellInParallel
-
uruchamianie programu PowerShell w równoległych
boolean
. Wartość domyślna: true
.
Jeśli ustawiono wartość true
, uruchamia skrypty programu PowerShell równolegle na maszynach docelowych.
Opcje sterowania zadaniami
Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.
Zmienne wyjściowe
Żaden.
Uwagi
To zadanie służy do wykonywania skryptów programu PowerShell na maszynach zdalnych.
To zadanie może uruchamiać skrypty programu PowerShell i skrypty PowerShell-DSC:
- W przypadku skryptów programu PowerShell na komputerach musi być zainstalowany program PowerShell 2.0 lub nowszy.
- W przypadku skryptów PowerShell-DSC komputery muszą mieć zainstalowaną najnowszą wersję programu Windows Management Framework. Jest on instalowany domyślnie w systemie Windows 8.1, Windows Server 2012 R2 i kolejnych wersjach.
Wymagania wstępne
To zadanie używa zdalnego zarządzania systemem Windows (WinRM) do uzyskiwania dostępu do lokalnych komputerów fizycznych lub komputerów wirtualnych, które są przyłączone do domeny lub przyłączone do grupy roboczej.
Aby skonfigurować usługę WinRM dla lokalnych komputerów fizycznych lub maszyn wirtualnych
Wykonaj kroki opisane w przyłączone do domeny
Aby skonfigurować usługę WinRM dla usługi Microsoft Azure Virtual Machines
Usługa Azure Virtual Machines wymaga usługi WinRM do korzystania z protokołu HTTPS. Możesz użyć certyfikatu testowego z podpisem własnym. W takim przypadku agent automatyzacji nie zweryfikuje autentyczności certyfikatu jako wystawionego przez zaufany urząd certyfikacji.
klasycznych maszyn wirtualnych platformy Azure. Podczas tworzenia klasycznej maszyny wirtualnej z witryny Azure Portal maszyna wirtualna jest już skonfigurowana dla usługi WinRM za pośrednictwem protokołu HTTPS, a domyślny port 5986 został już otwarty w zaporze i certyfikat z podpisem własnym zainstalowany na maszynie. Dostęp do tych maszyn wirtualnych można uzyskać bez konieczności dalszej konfiguracji. Istniejące klasyczne maszyny wirtualne można również wybrać przy użyciu zadania wdrażania grupy zasobów platformy Azure.
grupy zasobów platformy Azure. Jeśli masz grupa zasobów platformy Azure już zdefiniowana w witrynie Azure Portal, musisz skonfigurować ją tak, aby korzystała z protokołu HTTPS usługi WinRM. Musisz otworzyć port 5986 w zaporze i zainstalować certyfikat z podpisem własnym.
Aby dynamicznie wdrażać grupy zasobów platformy Azure zawierające maszyny wirtualne, użyj zadania wdrażania grupy zasobów platformy Azure. To zadanie ma pole wyboru o nazwie Enable Deployment Prerequisites. Wybierz tę opcję, aby automatycznie skonfigurować protokół HTTPS usługi WinRM na maszynach wirtualnych, otworzyć port 5986 w zaporze i zainstalować certyfikat testowy. Maszyny wirtualne są następnie gotowe do użycia w zadaniu wdrażania.
Co nowego w tej wersji zadania
- Używa programu PSSession i invoke-command do wykonywania komunikacji bezpośredniej na maszynach docelowych.
- Dodano obsługę wykonywania skryptów wbudowanych.
- Obsługiwane są uwierzytelnianie domyślne i CredSSP.
- Dodano opcje obsługi błędów:
ErrorActionPreference
,ignoreLASTEXITCODE
i Niepowodzenie w przypadku błędu standardowego.
Wymagania
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja, wersja klasyczna |
Działa na | Agent, DeploymentGroup |
Wymagania | Żaden |
możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
ograniczenia poleceń | Jakikolwiek |
zmienne ustawiane | Jakikolwiek |
Wersja agenta | 2.134.0 lub nowsza |
Kategoria zadań | Zastosuj |