Dela via


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\usernameoch .\username stöds.
  • UPN-format som username@domain.com och inbyggda systemkonton som NT 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 falsepå 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: ErrorActionPreferenceoch ignoreLASTEXITCODEFel 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