Condividi tramite


PowerShellOnTargetMachines@3 - PowerShell nei computer di destinazione v3

Usare questa attività per eseguire script di PowerShell in computer remoti usando PSSession e Invoke-Command per la comunicazione remota.

Usare questa attività per eseguire script di PowerShell nei computer remoti. Questa versione dell'attività usa PSSession e Invoke-Command per la comunicazione remota.

Sintassi

# 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.

Input

Machines - Macchine
string. Obbligatorio.

Specifica un elenco delimitato da virgole di FQDN o indirizzi IP del computer e, facoltativamente, include il numero di porta. I possibili valori sono i seguenti:

  • Nome di un gruppo di risorse di Azure.
  • Elenco delimitato da virgole di nomi di computer. Esempio: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
  • Variabile di output di un'attività precedente.

Se non si specifica una porta, viene usata la porta WinRM predefinita. Questo dipende dal protocollo configurato. Per WinRM 2.0, la porta HTTP predefinita è 5985 e la porta HTTPS predefinita è 5986.


UserName - Nome utente
string.

Specifica il nome utente di un dominio o un account amministrativo locale negli host di destinazione.

  • Sono supportati formati come username, machine-name\usernamedomain\username, e .\username .
  • I formati UPN, username@domain.com ad esempio e gli account di sistema predefiniti, ad NT Authority\System esempio, non sono supportati.

UserPassword - Password
string.

Specifica la password per i computer di destinazione. Variabili definite nelle definizioni di compilazione $(passwordVariable) /versione accettate. È possibile contrassegnare il tipo di variabile per secret proteggerlo.


ScriptType - Tipo di script
string. Valori consentiti: FilePath (Percorso file), Inline. Valore predefinito: Inline.

Specifica il tipo di script da eseguire: Inline o Percorso file.


ScriptPath - Percorso file script
string. Obbligatorio quando ScriptType = FilePath.

Specifica il percorso dello script di PowerShell nei computer di destinazione o in un percorso UNC, ad esempio C:\BudgetIT\Web\Deploy\Website.ps1, che deve essere accessibile dal computer di destinazione.


InlineScript - Copione
string. Obbligatorio quando ScriptType = Inline. Valore predefinito: # Write your powershell commands here.\n\nWrite-Output "Hello World".


ScriptArguments - Argomenti script
string. Facoltativa. Usare quando ScriptType = FilePath.

Specifica gli argomenti per lo script di PowerShell. Può essere un parametro ordinale o denominato, ad esempio -testParam test. Ad esempio: -applicationPath $(applicationPath), -username $(vmusername), -password $(vmpassword).


InitializationScript - Script di inizializzazione
string. Facoltativa. Usare quando ScriptType = FilePath.

Specifica il percorso dello script di dati per DSC nei computer di destinazione o in un percorso UNC, ad esempio C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1. È consigliabile usare argomenti anziché uno script di inizializzazione.


SessionVariables - Variabili di sessione
string. Facoltativa. Usare quando ScriptType = FilePath.

Usato per configurare le variabili di sessione per gli script di PowerShell.
Specifica un elenco delimitato da virgole, ad esempio $varx=valuex, $vary=valuey. Usato più comunemente per la compatibilità con le versioni precedenti del servizio di rilascio. È consigliabile usare argomenti anziché variabili di sessione.


CommunicationProtocol - Protocollo
string. Valori consentiti: Http, Https. Valore predefinito: Https.

Specifica il protocollo da usare per la connessione al servizio WinRM con i computer. Il valore predefinito è HTTPS.


AuthenticationMechanism - Autenticazione
string. Valori consentiti: Default, Credssp. Valore predefinito: Default.

Specifica il meccanismo di autenticazione utilizzato per la creazione della sessione PSSession. Per CredSSP l'autenticazione, i campi nome utente e password sono obbligatori.


NewPsSessionOptionArguments - Parametri dell'opzione di sessione
string. Valore predefinito: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.

Opzioni avanzate per una sessione remota (New-PSSessionOption). Ad esempio, -SkipCACheck, -SkipCNCheck, -SkipRevocationChecke così via. Per altre informazioni, vedere un elenco completo di tutte le opzioni di sessione .


ErrorActionPreference - ErrorActionPreference
string. Valori consentiti: stop, continue, silentlyContinue. Valore predefinito: stop.

Antepone la riga $ErrorActionPreference = 'VALUE' nella parte superiore dello script.


failOnStderr - Esito negativo in caso di errore standard
boolean. Valore predefinito: false.

Se impostato su true, non riesce se vengono scritti errori nella pipeline di errore o se i dati vengono scritti nel flusso di errore standard. In caso contrario, l'attività si basa sul codice di uscita per determinare l'errore.


ignoreLASTEXITCODE - Ignora $LASTEXITCODE
boolean. Valore predefinito: false.

Se impostato su false, la riga if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } viene eseguita alla fine dello script. In questo modo, l'ultimo codice di uscita da un comando esterno viene propagato come codice di uscita di PowerShell. In caso contrario, la riga non viene eseguita alla fine dello script.


WorkingDirectory - Directory di lavoro
string.

Specifica la directory di lavoro in cui viene eseguito lo script.


RunPowershellInParallel - Eseguire PowerShell in parallelo
boolean. Valore predefinito: true.

Se impostato su true, esegue gli script di PowerShell in parallelo nei computer di destinazione.


Opzioni di controllo attività

Tutte le attività hanno opzioni di controllo oltre ai relativi input dell'attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

No.

Osservazioni

Usare questa attività per eseguire script di PowerShell nei computer remoti.

Questa attività può eseguire script di PowerShell e script PowerShell-DSC:

  • Per gli script di PowerShell, i computer devono avere Installato PowerShell 2.0 o versione successiva.
  • Per gli script PowerShell-DSC, è necessario che nei computer sia installata la versione più recente del Windows Management Framework. Questa opzione viene installata per impostazione predefinita in Windows 8.1, Windows Server 2012 R2 e versioni successive.

Prerequisiti

Questa attività usa Gestione remota Windows (WinRM) per accedere a computer fisici locali o computer virtuali aggiunti a un dominio o a un gruppo di lavoro.

Per configurare WinRM per computer fisici o macchine virtuali locali

Seguire i passaggi descritti in Aggiunto a un dominio

Per configurare WinRM per Microsoft Azure Macchine virtuali

Azure Macchine virtuali richiedere a WinRM di usare il protocollo HTTPS. È possibile usare un certificato di test autofirmato. In questo caso, l'agente di automazione non convaliderà l'autenticità del certificato come emesso da un'autorità di certificazione attendibile.

  • Macchine virtuali classica di Azure. Quando si crea una macchina virtuale classica dal portale di Azure, la macchina virtuale è già configurata per WinRM su HTTPS, con la porta predefinita 5986 già aperta nel firewall e un certificato autofirmato installato nel computer. È possibile accedere a queste macchine virtuali senza ulteriori configurazioni necessarie. È anche possibile selezionare le macchine virtuali classiche esistenti usando l'attività Distribuzione gruppo di risorse di Azure .

  • Gruppo di risorse di Azure. Se nel portale di Azure è già definito un gruppo di risorse di Azure, è necessario configurarlo per l'uso del protocollo HTTPS WinRM. È necessario aprire la porta 5986 nel firewall e installare un certificato autofirmato.

Per distribuire in modo dinamico i gruppi di risorse di Azure che contengono macchine virtuali, usare l'attività Distribuzione gruppo di risorse di Azure. Questa attività ha una casella di controllo denominata Abilita prerequisiti di distribuzione. Selezionare questa opzione per configurare automaticamente il protocollo HTTPS WinRM nelle macchine virtuali, aprire la porta 5986 nel firewall e installare un certificato di test. Le macchine virtuali sono quindi pronte per l'uso nell'attività di distribuzione.

Novità di questa versione dell'attività

  • Usa PSSession e invoke-command per eseguire la comunicazione remota nei computer di destinazione.
  • Aggiunta del supporto per l'esecuzione di script inline.
  • Sono supportati l'autenticazione Predefinita e CredSSP.
  • Sono state aggiunte opzioni per la gestione degli errori: ErrorActionPreferenceignoreLASTEXITCODE e Fail on Standard Error .

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Viene eseguito in Agente, DeploymentGroup
Richieste Nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente 2.134.0 o versione successiva
Categoria attività Distribuire