Delen via


PowerShellOnTargetMachines@3 - PowerShell op doelcomputers v3-taak

Gebruik deze taak om PowerShell-scripts uit te voeren op externe computers met behulp van PSSession en Invoke-Command voor externe communicatie.

Gebruik deze taak om PowerShell-scripts uit te voeren op externe computers. Deze versie van de taak maakt gebruik van PSSession en Invoke-Command voor externe communicatie.

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.

Invoerwaarden

Machines - Machines
string. Vereist.

Hiermee geeft u een door komma's gescheiden lijst met FQDN's of IP-adressen van de machine op en bevat u desgewenst het poortnummer. Dit kan zijn:

  • De naam van een Azure-resourcegroep.
  • Een door komma's gescheiden lijst met computernamen. Voorbeeld: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
  • Een uitvoervariabele van een vorige taak.

Als u geen poort opgeeft, wordt de standaard WinRM-poort gebruikt. Dit is afhankelijk van het protocol dat u hebt geconfigureerd. Voor WinRM 2.0 is 5985 de standaard-HTTP-poort en de standaard-HTTPS-poort .5986


UserName - Gebruikersnaam
string.

Hiermee geeft u de gebruikersnaam van een domein of een lokaal beheerdersaccount op de doelhost(s).

  • Indelingen zoals username, domain\username, machine-name\usernameen .\username worden ondersteund.
  • UPN-indelingen zoals username@domain.com en ingebouwde systeemaccounts zoals NT Authority\System worden niet ondersteund.

UserPassword - Wachtwoord
string.

Hiermee geeft u het wachtwoord voor de doelcomputers. Variabelen die zijn gedefinieerd in build-/releasedefinities als $(passwordVariable) worden geaccepteerd. U kunt het type variabele markeren als secret om het te beveiligen.


ScriptType - Scripttype
string. Toegestane waarden: FilePath (Bestandspad), Inline. Standaardwaarde: Inline.

Hiermee geeft u het type script dat moet worden uitgevoerd: Inline of Bestandspad.


ScriptPath - Pad naar scriptbestand
string. Vereist wanneer ScriptType = FilePath.

Hiermee geeft u de locatie van het PowerShell-script op de doelcomputers of op een UNC-pad, zoals C:\BudgetIT\Web\Deploy\Website.ps1, dat toegankelijk moet zijn vanaf de doelcomputer.


InlineScript - Script
string. Vereist wanneer ScriptType = Inline. Standaardwaarde: # Write your powershell commands here.\n\nWrite-Output "Hello World".


ScriptArguments - Scriptargumenten
string. Optioneel. Gebruik wanneer ScriptType = FilePath.

Hiermee geeft u de argumenten voor het PowerShell-script. Dit kunnen ordinale of benoemde parameters zijn, zoals -testParam een test. Bijvoorbeeld: -applicationPath $(applicationPath), -username $(vmusername), -password $(vmpassword).


InitializationScript - Initialisatiescript
string. Optioneel. Gebruik wanneer ScriptType = FilePath.

Hiermee geeft u de locatie van het gegevensscript voor de DSC op de doelcomputers of op een UNC-pad, zoals C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1. Het is raadzaam om argumenten te gebruiken in plaats van een initialisatiescript.


SessionVariables - Sessievariabelen
string. Optioneel. Gebruik wanneer ScriptType = FilePath.

Wordt gebruikt voor het instellen van de sessievariabelen voor de PowerShell-scripts.
Hiermee geeft u een door komma's gescheiden lijst op, zoals $varx=valuex, $vary=valuey. Meest gebruikt voor achterwaartse compatibiliteit met eerdere versies van de releaseservice. Het is raadzaam om argumenten te gebruiken in plaats van sessievariabelen.


CommunicationProtocol - Protocol
string. Toegestane waarden: Http, Https. Standaardwaarde: Https.

Hiermee geeft u het protocol te gebruiken voor de WinRM-serviceverbinding met de machine(s). De standaardwaarde is HTTPS.


AuthenticationMechanism - Verificatie
string. Toegestane waarden: Default, Credssp. Standaardwaarde: Default.

Hiermee geeft u het verificatiemechanisme op dat wordt gebruikt voor het maken van de PSSession. Voor CredSSP verificatie zijn de velden gebruikersnaam en wachtwoord verplicht.


NewPsSessionOptionArguments - Parameters voor sessieopties
string. Standaardwaarde: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.

Geavanceerde opties voor een externe sessie (New-PSSessionOption). Bijvoorbeeld , -SkipCACheck-SkipCNCheck, -SkipRevocationCheck, enzovoort. Zie een volledige lijst met alle sessieopties voor meer informatie.


ErrorActionPreference - ErrorActionPreference
string. Toegestane waarden: stop, continue, silentlyContinue. Standaardwaarde: stop.

Hiermee wordt de regel $ErrorActionPreference = 'VALUE' boven aan het script voorbereid.


failOnStderr - Fout bij standaardfout
boolean. Standaardwaarde: false.

Als deze optie is ingesteld op true, mislukt als er fouten naar de foutpijplijn worden geschreven of als er gegevens naar de stroom Standaardfouten worden geschreven. Anders is de taak afhankelijk van de afsluitcode om de fout te bepalen.


ignoreLASTEXITCODE - $LASTEXITCODE negeren
boolean. Standaardwaarde: false.

Als deze optie is ingesteld falseop , wordt de regel if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } uitgevoerd aan het einde van het script. Hierdoor wordt de laatste afsluitcode van een externe opdracht doorgegeven als afsluitcode van PowerShell. Anders wordt de regel niet uitgevoerd tot het einde van het script.


WorkingDirectory - Werkmap
string.

Hiermee geeft u de werkmap waarin het script wordt uitgevoerd.


RunPowershellInParallel - PowerShell parallel uitvoeren
boolean. Standaardwaarde: true.

Als dit is ingesteld op true, worden de PowerShell-scripts parallel uitgevoerd op de doelcomputers.


Opties voor taakbeheer

Alle taken hebben naast de taakinvoer besturingsopties. Zie Besturingsopties en algemene taakeigenschappen voor meer informatie.

Uitvoervariabelen

Geen.

Opmerkingen

Gebruik deze taak om PowerShell-scripts uit te voeren op externe computers.

Met deze taak kunnen zowel PowerShell-scripts als PowerShell-DSC-scripts worden uitgevoerd:

  • Voor PowerShell-scripts moet PowerShell 2.0 of hoger op de computers zijn geïnstalleerd.
  • Voor PowerShell-DSC-scripts moet op de computers de nieuwste versie van de Windows Management Framework zijn geïnstalleerd. Dit wordt standaard geïnstalleerd op Windows 8.1, Windows Server 2012 R2 en latere versies.

Vereisten

Deze taak maakt gebruik van Windows Remote Management (WinRM) voor toegang tot on-premises fysieke computers of virtuele computers die lid zijn van een domein of werkgroep.

WinRM instellen voor on-premises fysieke computers of virtuele machines

Volg de stappen die worden beschreven in Domeindeelname

WinRM instellen voor Microsoft Azure Virtual Machines

Azure Virtual Machines vereisen dat WinRM het HTTPS-protocol gebruikt. U kunt een zelfondertekend testcertificaat gebruiken. In dit geval valideert de automatiseringsagent de echtheid van het certificaat niet als uitgegeven door een vertrouwde certificeringsinstantie.

  • Klassieke Azure-Virtual Machines. Wanneer u een klassieke virtuele machine maakt op basis van de Azure Portal, is de virtuele machine al ingesteld voor WinRM via HTTPS, waarbij de standaardpoort 5986 al is geopend in de firewall en een zelfondertekend certificaat op de machine is geïnstalleerd. Deze virtuele machines zijn toegankelijk zonder verdere configuratie. Bestaande klassieke virtuele machines kunnen ook worden geselecteerd met behulp van de azure-resourcegroepimplementatietaak .

  • Azure-resourcegroep. Als u al een Azure-resourcegroep hebt gedefinieerd in de Azure Portal, moet u deze configureren voor het gebruik van het WinRM HTTPS-protocol. U moet poort 5986 openen in de firewall en een zelfondertekend certificaat installeren.

Als u Azure-resourcegroepen die virtuele machines bevatten, dynamisch wilt implementeren, gebruikt u de azure-resourcegroepimplementatietaak . Deze taak heeft een selectievakje met de naam Implementatievereisten inschakelen. Selecteer deze optie om automatisch het WinRM HTTPS-protocol in te stellen op de virtuele machines, poort 5986 in de firewall te openen en een testcertificaat te installeren. De virtuele machines zijn vervolgens klaar voor gebruik in de implementatietaak.

Wat is er nieuw in deze taakversie?

  • Maakt gebruik van PSSession en invoke-command om externe communicatie uit te voeren op doelcomputers.
  • Ondersteuning toegevoegd voor het uitvoeren van inlinescripts.
  • Standaard- en CredSSP-verificatie worden ondersteund.
  • Opties toegevoegd voor foutafhandeling: ErrorActionPreferenceen ignoreLASTEXITCODEMislukken bij standaardfout.

Vereisten

Vereiste Beschrijving
Pijplijntypen YAML, klassieke build, klassieke release
Wordt uitgevoerd op Agent, DeploymentGroup
Eisen Geen
Functies Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak.
Opdrachtbeperkingen Alle
Instelbare variabelen Alle
Agentversie 2.134.0 of hoger
Taakcategorie Implementeren