PowerShellOnTargetMachines@3 – PowerShell på v3-uppgift för måldatorer
Använd den här uppgiften för att köra PowerShell-skript på fjärrdatorer med PSSession och Invoke-Command för fjärrkommunikation.
Använd den här uppgiften för att köra PowerShell-skript på fjärrdatorer. Den här versionen av uppgiften använder PSSession och Invoke-Command för fjärrkommunikation.
Syntax
# 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.
Indata
Machines
- Maskiner
string
. Krävs.
Anger en kommaavgränsad lista över FQDN eller IP-adresser för datorn och kan även innehålla portnumret. Kan vara:
- Namnet på en Azure-resursgrupp.
- En kommaavgränsad lista över datornamn. Exempel:
dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
- En utdatavariabel från en tidigare aktivitet.
Om du inte anger någon port används WinRM-standardporten. Detta beror på vilket protokoll du har konfigurerat. För WinRM 2.0 är 5985
http-standardporten och https-standardporten är 5986
.
UserName
- Användarnamn
string
.
Anger användarnamnet för en domän eller ett lokalt administratörskonto på målvärdarna.
- Format som
username
,domain\username
,machine-name\username
och.\username
stöds. - UPN-format som
username@domain.com
och inbyggda systemkonton somNT Authority\System
stöds inte.
UserPassword
- Lösenord
string
.
Anger lösenordet för måldatorerna. Variabler som definieras i versionsdefinitioner som $(passwordVariable)
accepteras. Du kan markera variabeltypen som secret
för att skydda den.
ScriptType
- Skripttyp
string
. Tillåtna värden: FilePath
(Filsökväg), Inline
. Standardvärde: Inline
.
Anger vilken typ av skript som ska köras: Infogad eller Filsökväg.
ScriptPath
- Sökväg till skriptfil
string
. Krävs när ScriptType = FilePath
.
Anger platsen för PowerShell-skriptet på måldatorerna eller på en UNC-sökväg, till exempel C:\BudgetIT\Web\Deploy\Website.ps1
, som ska vara tillgänglig från måldatorn.
InlineScript
- Skript
string
. Krävs när ScriptType = Inline
. Standardvärde: # Write your powershell commands here.\n\nWrite-Output "Hello World"
.
ScriptArguments
- Skriptargument
string
. Valfritt. Använd när ScriptType = FilePath
.
Anger argumenten för PowerShell-skriptet. Kan vara ordningstal eller namngivna parametrar, till exempel -testParam
test. Exempel: -applicationPath $(applicationPath)
, -username $(vmusername)
, -password $(vmpassword)
.
InitializationScript
- Initieringsskript
string
. Valfritt. Använd när ScriptType = FilePath
.
Anger platsen för dataskriptet för DSC på måldatorerna eller på en UNC-sökväg, till exempel C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1
. Vi rekommenderar att du använder argument i stället för ett initieringsskript.
SessionVariables
- Sessionsvariabler
string
. Valfritt. Använd när ScriptType = FilePath
.
Används för att konfigurera sessionsvariablerna för PowerShell-skripten.
Anger en kommaavgränsad lista, till exempel $varx=valuex, $vary=valuey
. Används oftast för bakåtkompatibilitet med tidigare versioner av versionstjänsten. Vi rekommenderar att du använder argument i stället för sessionsvariabler.
CommunicationProtocol
- Protokollet
string
. Tillåtna värden: Http
, Https
. Standardvärde: Https
.
Anger vilket protokoll som ska användas för WinRM-tjänstanslutningen med datorerna. Standardvärdet är HTTPS
.
AuthenticationMechanism
- Autentisering
string
. Tillåtna värden: Default
, Credssp
. Standardvärde: Default
.
Anger den autentiseringsmekanism som används för att skapa PSSession. För CredSSP
autentisering är fälten för användarnamn och lösenord obligatoriska.
NewPsSessionOptionArguments
- Parametrar för sessionsalternativ
string
. Standardvärde: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block
.
Avancerade alternativ för en fjärrsession (New-PSSessionOption). Till exempel -SkipCACheck
, -SkipCNCheck
, -SkipRevocationCheck
, osv. Mer information finns i en fullständig lista över alla sessionsalternativ .
ErrorActionPreference
- ErrorActionPreference
string
. Tillåtna värden: stop
, continue
, silentlyContinue
. Standardvärde: stop
.
Förbereder raden $ErrorActionPreference = 'VALUE'
överst i skriptet.
failOnStderr
- Fel vid standardfel
boolean
. Standardvärde: false
.
Om värdet true
är , misslyckas om några fel skrivs till felpipelinen eller om några data skrivs till standardfelströmmen. Annars förlitar sig uppgiften på slutkoden för att fastställa felet.
ignoreLASTEXITCODE
- Ignorera $LASTEXITCODE
boolean
. Standardvärde: false
.
Om den är inställd false
på körs raden if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }
i slutet av skriptet. Detta gör att den senaste slutkoden från ett externt kommando sprids som slutkod för PowerShell. Annars körs inte raden i slutet av skriptet.
WorkingDirectory
- Arbetskatalog
string
.
Anger arbetskatalogen där skriptet körs.
RunPowershellInParallel
- Köra PowerShell parallellt
boolean
. Standardvärde: true
.
Om värdet är true
, körs PowerShell-skripten parallellt på måldatorerna.
Alternativ för aktivitetskontroll
Alla aktiviteter har kontrollalternativ utöver sina uppgiftsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
Inga.
Kommentarer
Använd den här uppgiften för att köra PowerShell-skript på fjärrdatorer.
Den här uppgiften kan köra både PowerShell-skript och PowerShell-DSC-skript:
- För PowerShell-skript måste datorerna ha PowerShell 2.0 eller senare installerat.
- För PowerShell-DSC-skript måste datorerna ha den senaste versionen av Windows Management Framework installerad. Detta installeras som standard på Windows 8.1, Windows Server 2012 R2 och efterföljande versioner.
Förutsättningar
Den här uppgiften använder Windows Remote Management (WinRM) för att få åtkomst till lokala fysiska datorer eller virtuella datorer som är domänanslutna eller arbetsgruppsanslutna.
Konfigurera WinRM för lokala fysiska datorer eller virtuella datorer
Följ stegen som beskrivs i domänansluten
Konfigurera WinRM för Microsoft Azure Virtual Machines
Azure Virtual Machines kräver att WinRM använder HTTPS-protokollet. Du kan använda ett självsignerat testcertifikat. I det här fallet validerar automationsagenten inte äktheten för certifikatet som utfärdat av en betrodd certifikatutfärdare.
Klassisk Azure-Virtual Machines. När du skapar en klassisk virtuell dator från Azure Portal har den virtuella datorn redan konfigurerats för WinRM via HTTPS, med standardporten 5986 redan öppen i brandväggen och ett självsignerat certifikat installerat på datorn. Dessa virtuella datorer kan nås utan att ytterligare konfiguration krävs. Befintliga klassiska virtuella datorer kan också väljas med hjälp av azure-resursgruppsdistributionsaktiviteten .
Azure-resursgrupp. Om du redan har definierat en Azure-resursgrupp i Azure Portal måste du konfigurera den så att den använder WinRM HTTPS-protokollet. Du måste öppna port 5986 i brandväggen och installera ett självsignerat certifikat.
Om du vill distribuera Azure-resursgrupper dynamiskt som innehåller virtuella datorer använder du uppgiften Distribution av Azure-resursgrupp . Den här uppgiften har en kryssruta med namnet Aktivera distributionskrav. Välj det här alternativet för att automatiskt konfigurera WinRM HTTPS-protokollet på de virtuella datorerna, öppna port 5986 i brandväggen och installera ett testcertifikat. De virtuella datorerna är sedan redo att användas i distributionsuppgiften.
Nyheter i den här uppgiftsversionen
- Använder PSSession och invoke-command för att utföra fjärrkommunikation på måldatorer.
- Stöd har lagts till för körning av infogade skript.
- Standardautentisering och CredSSP-autentisering stöds.
- Alternativ för felhantering har lagts till:
ErrorActionPreference
ochignoreLASTEXITCODE
Fel vid standardfel.
Krav
Krav | Beskrivning |
---|---|
Pipelinetyper | YAML, klassisk version, klassisk version |
Körs på | Agent, DeploymentGroup |
Krav | Ingen |
Funktioner | Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet. |
Kommandobegränsningar | Valfri |
Inställningsbara variabler | Valfri |
Agentversion | 2.134.0 eller senare |
Uppgiftskategori | Distribuera |