Invoke-AsWorkflow
Ejecuta un comando o expresión como un flujo de trabajo de Windows PowerShell.
Sintaxis
Command (valor predeterminado)
Invoke-AsWorkflow
[-CommandName <String>]
[-Parameter <Hashtable>]
[-InputObject <Object>]
[<CommonParameters>]
Expression
Invoke-AsWorkflow
[-Expression <String>]
[-InputObject <Object>]
[<CommonParameters>]
Description
El flujo de trabajo de Invoke-AsWorkflow ejecuta cualquier comando o expresión como un script insertado en un flujo de trabajo.
Estos flujos de trabajo usan la semántica de flujo de trabajo estándar, tienen todos los parámetros comunes del flujo de trabajo y tienen todas las ventajas de los flujos de trabajo, incluida la capacidad de detener, reanudar y recuperar.
Los flujos de trabajo están diseñados para comandos de ejecución prolongada que recopilan datos críticos, pero se pueden usar para ejecutar cualquier comando. Para obtener más información, vea about_Workflows.
También puede agregar parámetros comunes de flujo de trabajo a este comando. Para obtener más información sobre los parámetros comunes del flujo de trabajo, consulte about_WorkflowCommonParameters
Este flujo de trabajo se presenta en Windows PowerShell 3.0.
Ejemplos
Ejemplo 1: Ejecución de un cmdlet como flujo de trabajo
Invoke-AsWorkflow -PSComputerName (Get-Content Servers.txt) -CommandName Get-ExecutionPolicy
PSComputerName PSSourceJobInstanceId Value
-------------- --------------------- -----
Server01 77b1cdf8-8226-4662-9067-cd2fa5c3b711 AllSigned
Server02 a33542d7-3cdd-4339-ab99-0e7cd8e59462 Unrestricted
Server03 279bac28-066a-4646-9497-8fcdcfe9757e AllSigned
localhost 0d858009-2cc4-47a4-a2e0-da17dc2883d0 RemoteSigned
Este comando ejecuta el cmdlet Get-ExecutionPolicy como un flujo de trabajo en cientos de equipos.
El comando usa el parámetro CommandName para especificar el cmdlet que se ejecuta en el flujo de trabajo.
Usa el PSComputerName parámetro común de flujo de trabajo para especificar los equipos en los que se ejecuta el comando.
El valor del parámetro PSComputerName de Get-Command antes de usar el valor .
Al igual que con todos los comandos remotos, si el comando se ejecuta en el equipo local ( si el valor del parámetro PSComputerName incluye el equipo local), debe iniciar Windows PowerShell con la opción "Ejecutar como administrador".
Ejemplo 2: Ejecución de un cmdlet con parámetros
$s = Import-Csv .\Servers.csv -Header ServerName, ServerID
Invoke-AsWorkflow -CommandName Get-ExecutionPolicy -Parameter @{Scope="Process"} -PSComputerName {$s.ServerName} -PSConnectionRetryCount 5
El primer comando usa el cmdlet Import-Csv para crear un objeto a partir del contenido del archivo Servers.csv. El comando usa el parámetro Header para crear una propiedad ServerName para la columna que contiene los nombres de los equipos de destino, también conocidos como "nodos remotos". El comando guarda el resultado en la variable $s.
El segundo comando usa el flujo de trabajo de Invoke-AsWorkflow para ejecutar un comando Get-ExecutionPolicy en los equipos del archivo Servers.csv. El comando usa el parámetro Parameter de Invoke-AsWorkflow para especificar el parámetro Scope del cmdlet Get-ExecutionPolicy con un valor de Process. El comando también usa el parámetro común PSConnectionRetryCount flujo de trabajo para limitar el comando a cinco intentos en cada equipo y el parámetro común de flujo de trabajo PSComputerName para especificar los nombres de los nodos remotos (equipos de destino). El valor del parámetro PSComputerName es una expresión que obtiene la propiedad ServerName de cada objeto de la variable $s.
Estos comandos ejecutan un comando Get-ExecutionPolicy como flujo de trabajo en cientos de equipos.
El comando usa el parámetro Scope del cmdlet Get-ExecutionPolicy con un valor de Process para obtener la directiva de ejecución en la sesión actual.
Ejemplo 3: Ejecución de una expresión como flujo de trabajo
Invoke-AsWorkflow -Expression "ipconfig /all" -PSComputerName (Get-Content DomainControllers.txt) -AsJob -JobName IPConfig
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
2 IpConfig PSWorkflowJob Completed True Server01, Server01... Invoke-AsWorkflow
Este comando usa el flujo de trabajo de Invoke-AsWorkflow para ejecutar un comando Ipconfig como trabajo de flujo de trabajo en los equipos enumerados en el archivo DomainControllers.txt.
El comando usa el parámetro Expression para especificar la expresión que se va a ejecutar.
Usa el parámetro común PSComputerName flujo de trabajo para especificar los nombres de los nodos remotos (equipos de destino).
El comando también usa los parámetros comunes de AsJob y JobName flujo de trabajo para ejecutar el flujo de trabajo como trabajo en segundo plano en cada equipo con el nombre del trabajo "Ipconfig".
El comando devuelve un objeto ContainerParentJob (System.Management.Automation.ContainerParentJob) que contiene los trabajos de flujo de trabajo en cada equipo.
Parámetros
-CommandName
Ejecuta el cmdlet especificado o la función avanzada como un flujo de trabajo.
Escriba el nombre del cmdlet o la función, como Update-Help, Set-ExecutionPolicyo Set-NetFirewallRule.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
Command
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Expression
Especifica la expresión que este cmdlet se ejecuta como un flujo de trabajo.
Escriba la expresión como una cadena, como "ipconfig /all".
Si la expresión incluye espacios o caracteres especiales, incluya la expresión entre comillas.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
Expression
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-InputObject
Se usa para permitir la entrada de canalización.
Propiedades de parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Parameter
Especifica los parámetros y los valores de parámetro del comando especificado en el parámetro CommandName.
Escriba una tabla hash en la que cada clave es un nombre de parámetro y su valor es el valor del parámetro, como @{ExecutionPolicy="AllSigned"}.
Para obtener información sobre las tablas hash, consulte about_Hash_Tables.
Propiedades de parámetro
| Tipo: | Hashtable |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
Command
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
Object
Puede canalizar cualquier objeto a este cmdlet.
Salidas
None
Este comando no devuelve ninguna salida propia, pero el flujo de trabajo que ejecuta podría devolver la salida.