Freigeben über


PowerShellOnTargetMachines@3 – PowerShell auf Zielcomputern v3-Aufgabe

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

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.

Eingänge

Machines - Computer
string. Erforderlich.

Gibt eine durch Trennzeichen getrennte Liste von Computer-FQDNs oder IP-Adressen an und enthält optional die Portnummer. Dies kann folgendes sein:

  • Der Name einer Azure Resource Group.
  • Eine durch Trennzeichen getrennte Liste von Computernamen. Beispiel: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
  • Eine Ausgabevariable aus einem vorherigen Vorgang.

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 der standardmäßige HTTP-Port 5985 und der standardmäßige HTTPS-Port wird 5986.


UserName - Benutzername
string.

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

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

UserPassword - Kennwort
string.

Gibt das Kennwort für die Zielcomputer an. Variablen, die in Build-/Releasedefinitionen als $(passwordVariable) definiert sind, werden akzeptiert. Sie können den Variablentyp als secret markieren, um ihn zu sichern.


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 auf einem UNC-Pfad an, z. B. C:\BudgetIT\Web\Deploy\Website.ps1, auf das 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. Wahlfrei. Wird verwendet, wenn ScriptType = FilePath.

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


InitializationScript - Initialisierungsskript
string. Wahlfrei. Wird verwendet, wenn ScriptType = FilePath.

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


SessionVariables - Sitzungsvariablen
string. Wahlfrei. Wird verwendet, wenn ScriptType = FilePath.

Wird zum Einrichten der Sitzungsvariablen für die PowerShell-Skripts verwendet.
Gibt eine durch Trennzeichen getrennte Liste an, z. B. $varx=valuex, $vary=valuey. Die häufigste Verwendung für die Abwärtskompatibilität mit früheren Versionen des Releasediensts. 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. Der Standardwert ist 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 Authentifizierung sind die Felder "Benutzername" und "Kennwort" obligatorisch.


parameter NewPsSessionOptionArguments - Session Option
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, silentlyContinue. Standardwert: stop.

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


failOnStderr - fehler bei Standardfehler-
boolean. Standardwert: false.

Wenn diese Eigenschaft auf truefestgelegt ist, tritt ein Fehler auf, wenn Fehler in die Fehlerpipeline geschrieben werden oder daten in den Standardfehlerdatenstrom geschrieben werden. Andernfalls basiert die Aufgabe auf dem Beendigungscode, um fehler zu ermitteln.


ignoreLASTEXITCODE - ignorieren $LASTEXITCODE
boolean. Standardwert: false.

Bei Festlegung auf falsewird die Zeile if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } am Ende des Skripts ausgeführt. Dadurch wird der letzte Exitcode aus einem externen Befehl als Exitcode von PowerShell weitergegeben. Andernfalls wird die Zeile nicht am Ende des Skripts ausgeführt.


WorkingDirectory - Arbeitsverzeichnis-
string.

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


RunPowershellInParallel - PowerShell parallel ausführen
boolean. Standardwert: true.

Bei Festlegung auf truewerden die PowerShell-Skripts auf den Zielcomputern parallel ausgeführt.


Aufgabensteuerungsoptionen

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

Ausgabevariablen

Keiner.

Bemerkungen

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 müssen die Computer PowerShell 2.0 oder höher installiert haben.
  • Für PowerShell-DSC Skripts müssen die Computer die neueste Version des Windows Management Framework installiert haben. Dies ist standardmäßig unter Windows 8.1, Windows Server 2012 R2 und nachfolgenden Versionen installiert.

Voraussetzungen

Diese Aufgabe verwendet Windows Remote Management (WinRM) für den Zugriff auf lokale physische Computer oder virtuelle Computer, die mit der Domäne verbunden sind oder einer Arbeitsgruppe beigetreten sind.

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

Führen Sie die in domänenverbundenen beschriebenen Schritte aus.

So richten Sie WinRM für virtuelle Microsoft Azure-Computer

Virtuelle Azure-Computer erfordern WinRM für die Verwendung des HTTPS-Protokolls. Sie können ein selbstsigniertes Testzertifikat verwenden. In diesem Fall überprüft der Automatisierungs-Agent nicht die Echtheit des Zertifikats, wie es von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wird.

  • azure Classic 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 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 Azure Resource Group Deployment Aufgabe ausgewählt werden.

  • Azure Resource Group. Wenn Sie eine Azure Resource Group bereits im Azure-Portal definiert haben, müssen Sie sie so konfigurieren, dass das WinRM HTTPS-Protokoll verwendet wird. Sie müssen Port 5986 in der Firewall öffnen und ein selbstsigniertes Zertifikat installieren.

Um Azure-Ressourcengruppen, die virtuelle Computer enthalten, dynamisch bereitzustellen, verwenden Sie die Azure Resource Group Deployment Task. Diese Aufgabe verfügt über ein Kontrollkästchen mit dem Namen "Bereitstellungsvoraussetzungen aktivieren". Wählen Sie diese Option aus, um das WinRM HTTPS-Protokoll auf den virtuellen Computern automatisch einzurichten, Port 5986 in der Firewall zu öffnen und ein Testzertifikat zu installieren. Die virtuellen Computer sind dann für die Verwendung in der Bereitstellungsaufgabe bereit.

Neuerungen in dieser Aufgabenversion

  • Verwendet PSSession und Aufrufbefehl, um Remoting auf Zielcomputern auszuführen.
  • Unterstützung für die Inlineskriptausführung hinzugefügt.
  • Die Standard- und CredSSP-Authentifizierung werden unterstützt.
  • Optionen für die Fehlerbehandlung hinzugefügt: ErrorActionPreference, ignoreLASTEXITCODE und Fehler beim Standardfehler-.

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.134.0 oder höher
Vorgangskategorie Einsetzen