PowerShellOnTargetMachines@3– Aufgabe "PowerShell auf Zielcomputern v3"

Verwenden Sie diese Aufgabe, um PowerShell-Skripts auf Remotecomputern mithilfe von PSSession und Invoke-Command für Remoting auszuführen.

Verwenden Sie diese Aufgabe, um PowerShell-Skripts auf Remotecomputern auszuführen. Diese Version der Aufgabe verwendet PSSession und Invoke-Command für Remoting.

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.

Eingaben

Machines - Maschinen
string. Erforderlich.

Gibt eine durch Trennzeichen getrennte Liste von Computer-FQDNs oder IP-Adressen an und schließt optional die Portnummer ein. Mögliche Werte sind:

  • Der Name einer Azure-Ressourcengruppe.
  • Eine durch Trennzeichen getrennte Liste von Computernamen. Beispiel: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
  • Eine Ausgabevariable aus einer vorherigen Aufgabe.

Wenn Sie keinen Port angeben, wird der Standardmäßige WinRM-Port verwendet. Dies hängt vom von Ihnen konfigurierten Protokoll ab. Für WinRM 2.0 ist 5985 der HTTP-Standardport und der HTTPS-Standardport 5986.


UserName - Nutzername
string.

Gibt den Benutzernamen einer Domäne oder eines lokalen Administratorkontos auf den Zielhosts an.

  • Formate wie username, domain\username, machine-name\username, und .\username werden unterstützt.
  • UPN-Formate wie username@domain.com und integrierte Systemkonten wie NT Authority\System werden nicht unterstützt.

UserPassword - Passwort
string.

Gibt das Kennwort für die Zielcomputer an. In Build-/Releasedefinitionen definierte Variablen werden akzeptiert $(passwordVariable) . Sie können den Variablentyp als secret zum Sichern markieren.


ScriptType - Skripttyp
string. Zulässige Werte: FilePath (Dateipfad), Inline. Standardwert. Inline.

Gibt den Typ des auszuführenden Skripts an: Inline oder Dateipfad.


ScriptPath - Skriptdateipfad
string. Erforderlich, wenn ScriptType = FilePath.

Gibt den Speicherort des PowerShell-Skripts auf den Zielcomputern oder in einem UNC-Pfad wie C:\BudgetIT\Web\Deploy\Website.ps1an, auf den vom Zielcomputer aus zugegriffen werden soll.


InlineScript - Skript
string. Erforderlich, wenn ScriptType = Inline. Standardwert. # Write your powershell commands here.\n\nWrite-Output "Hello World".


ScriptArguments - Skriptargumente
string. Optional. Verwenden Sie , wenn ScriptType = FilePath.

Gibt die Argumente für das PowerShell-Skript an. Dies kann Ordnungsparameter oder benannte Parameter sein, z. B -testParam . test. Beispiel: -applicationPath $(applicationPath), -username $(vmusername), -password $(vmpassword).


InitializationScript - Initialisierungsskript
string. Optional. Verwenden Sie , wenn ScriptType = FilePath.

Gibt den Speicherort des Datenskripts für den DSC auf den Zielcomputern oder in einem UNC-Pfad an, z. B C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1. . Es wird empfohlen, Argumente anstelle eines Initialisierungsskripts zu verwenden.


SessionVariables - Sitzungsvariablen
string. Optional. Verwenden Sie , wenn ScriptType = FilePath.

Wird verwendet, um die Sitzungsvariablen für die PowerShell-Skripts einzurichten.
Gibt eine durch Trennzeichen getrennte Liste an, z $varx=valuex, $vary=valuey. B. . Wird am häufigsten aus Gründen der Abwärtskompatibilität mit früheren Versionen des Releasediensts verwendet. Es wird empfohlen, Argumente anstelle von Sitzungsvariablen zu verwenden.


CommunicationProtocol - Protokoll
string. Zulässige Werte: Http, Https. Standardwert. Https.

Gibt das Protokoll an, das für die WinRM-Dienstverbindung mit den Computern verwendet werden soll. Standardwert: HTTPS.


AuthenticationMechanism - Authentifizierung
string. Zulässige Werte: Default, Credssp. Standardwert. Default.

Gibt den Authentifizierungsmechanismus an, der zum Erstellen der PSSession verwendet wird. Für CredSSP die Authentifizierung sind die Felder benutzername und kennwort obligatorisch.


NewPsSessionOptionArguments - Sitzungsoptionsparameter
string. Standardwert. -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.

Erweiterte Optionen für eine Remotesitzung (New-PSSessionOption). Beispiel: -SkipCACheck, -SkipCNCheck, -SkipRevocationCheckusw. Weitere Informationen finden Sie in einer vollständigen Liste aller Sitzungsoptionen .


ErrorActionPreference - ErrorActionPreference
string. Zulässige Werte: stop, continue und silentlyContinue. Standardwert. stop.

Setzt die Zeile $ErrorActionPreference = 'VALUE' oben im Skript voran.


failOnStderr - Fehler beim Standardfehler
boolean. Standardwert. false.

Wenn auf truefestgelegt ist, tritt ein Fehler auf, wenn Fehler in die Fehlerpipeline geschrieben werden oder Wenn Daten in den Standardfehlerdatenstrom geschrieben werden. Andernfalls basiert die Aufgabe auf dem Exitcode, um den Fehler zu ermitteln.


ignoreLASTEXITCODE - $LASTEXITCODE ignorieren
boolean. Standardwert. false.

Wenn dieser Wert auf falsefestgelegt ist, wird die Zeile if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } am Ende des Skripts ausgeführt. Dies bewirkt, dass der letzte Exitcode eines externen Befehls als Exitcode von PowerShell weitergegeben wird. Andernfalls wird die Zeile nicht bis zum Ende Ihres Skripts ausgeführt.


WorkingDirectory - Arbeitsverzeichnis
string.

Gibt das Arbeitsverzeichnis an, in dem das Skript ausgeführt wird.


RunPowershellInParallel - Paralleles Ausführen von PowerShell
boolean. Standardwert. true.

Wenn auf truefestgelegt ist, werden die PowerShell-Skripts parallel auf den Zielcomputern ausgeführt.


Aufgabensteuerungsoptionen

Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Keine.

Hinweise

Verwenden Sie diese Aufgabe, um PowerShell-Skripts auf Remotecomputern auszuführen.

Diese Aufgabe kann sowohl PowerShell-Skripts als auch PowerShell-DSC-Skripts ausführen:

  • Für PowerShell-Skripts muss auf den Computern PowerShell 2.0 oder höher installiert sein.
  • Für PowerShell-DSC-Skripts muss auf den Computern die neueste Version der Windows Management Framework installiert sein. Dies wird standardmäßig unter Windows 8.1, Windows Server 2012 R2 und nachfolgenden Versionen installiert.

Voraussetzungen

Für diese Aufgabe wird die Windows-Remoteverwaltung (Windows Remote Management , WinRM) verwendet, um auf lokale physische Computer oder virtuelle Computer zuzugreifen, die in die Domäne eingebunden sind oder in eine Arbeitsgruppe eingebunden sind.

So richten Sie WinRM für lokale physische Computer oder virtuelle Computer ein

Führen Sie die unter In die Domäne eingebundenen Schritte aus.

So richten Sie WinRM für Microsoft Azure Virtual Machines ein

Azure Virtual Machines erfordern, dass WinRM das HTTPS-Protokoll verwendet. Sie können ein selbstsigniertes Testzertifikat verwenden. In diesem Fall überprüft der Automatisierungs-Agent nicht die Echtheit des Zertifikats, das von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde.

  • Klassische Azure-Virtual Machines. Wenn Sie einen klassischen virtuellen Computer aus dem Azure-Portal erstellen, ist der virtuelle Computer bereits für WinRM über HTTPS eingerichtet, wobei der Standardport 5986 bereits in der Firewall geöffnet ist und ein selbstsigniertes Zertifikat auf dem Computer installiert ist. Auf diese virtuellen Computer kann ohne weitere Konfiguration zugegriffen werden. Vorhandene klassische virtuelle Computer können auch mithilfe der Aufgabe Bereitstellung von Azure-Ressourcengruppen ausgewählt werden.

  • Azure-Ressourcengruppe: Wenn Sie bereits eine Azure-Ressourcengruppe im Azure-Portal definiert haben, müssen Sie sie für die Verwendung des WinRM-HTTPS-Protokolls konfigurieren. Sie müssen Port 5986 in der Firewall öffnen und ein selbstsigniertes Zertifikat installieren.

Verwenden Sie zum dynamischen Bereitstellen von Azure-Ressourcengruppen, die virtuelle Computer enthalten, den Task Bereitstellung von Azure-Ressourcengruppen . Diese Aufgabe verfügt über ein Kontrollkästchen mit dem Namen Bereitstellungsvoraussetzungen aktivieren. Wählen Sie diese Option aus, um automatisch das WinRM-HTTPS-Protokoll auf den virtuellen Computern einzurichten, Port 5986 in der Firewall zu öffnen und ein Testzertifikat zu installieren. Die virtuellen Computer können dann im Bereitstellungstask verwendet werden.

Neuerungen in dieser Aufgabenversion

  • Verwendet PSSession und invoke-command, um Remoting auf Zielcomputern auszuführen.
  • Unterstützung für die Inlineskriptausführung hinzugefügt.
  • Die Standardauthentifizierung und die CredSSP-Authentifizierung werden unterstützt.
  • Optionen für die Fehlerbehandlung wurden hinzugefügt: ErrorActionPreferenceund ignoreLASTEXITCODEFehler beim Standardfehler.

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, Klassischer Build, klassische Version
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Einstellbare Variablen Any
Agent-Version 2.134.0 oder höher
Aufgabenkategorie Bereitstellen