Invoke-AsWorkflow
Выполняет команду или выражение в качестве рабочего процесса Windows PowerShell.
Синтаксис
Command (По умолчанию)
Invoke-AsWorkflow
[-CommandName <String>]
[-Parameter <Hashtable>]
[-InputObject <Object>]
[<CommonParameters>]
Expression
Invoke-AsWorkflow
[-Expression <String>]
[-InputObject <Object>]
[<CommonParameters>]
Описание
Рабочий процесс Invoke-AsWorkflow выполняет любую команду или выражение в виде встроенного скрипта в рабочем процессе.
Эти рабочие процессы используют стандартную семантику рабочего процесса, имеют все общие параметры рабочего процесса и имеют все преимущества рабочих процессов, включая возможность остановки, возобновления и восстановления.
Рабочие процессы предназначены для длительных команд, которые собирают критически важные данные, но могут использоваться для выполнения любой команды. Дополнительные сведения см. в about_Workflows.
Вы также можете добавить общие параметры рабочего процесса в эту команду. Дополнительные сведения о распространенных параметрах рабочего процесса см. в about_WorkflowCommonParameters
Этот рабочий процесс представлен в Windows PowerShell 3.0.
Примеры
Пример 1. Запуск командлета в качестве рабочего процесса
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
Эта команда запускает командлет Get-ExecutionPolicy как рабочий процесс на сотнях компьютеров.
Команда использует параметр commandName Get-Command перед использованием значения.
Как и во всех удаленных командах, если команда выполняется на локальном компьютере (если значение параметра PSComputerName включает локальный компьютер), необходимо запустить Windows PowerShell с параметром "Запуск от имени администратора".
Пример 2. Запуск командлета с параметрами
$s = Import-Csv .\Servers.csv -Header ServerName, ServerID
Invoke-AsWorkflow -CommandName Get-ExecutionPolicy -Parameter @{Scope="Process"} -PSComputerName {$s.ServerName} -PSConnectionRetryCount 5
Первая команда использует командлет Import-Csv для создания объекта из содержимого в файле Servers.csv. Команда использует параметр Header для создания свойства ServerName столбца, содержащего имена целевых компьютеров, также известных как "удаленные узлы". Команда сохраняет результат в переменной $s.
Вторая команда использует рабочий процесс Invoke-AsWorkflow для выполнения команды Get-ExecutionPolicy на компьютерах в файле Servers.csv. Команда использует параметр commandName commandNameInvoke-AsWorkflow, чтобы указать команду, выполняемую в рабочем процессе. Он использует параметр ParameterInvoke-AsWorkflow для указания параметра Scope командлета Get-ExecutionPolicy со значением Process. Команда также использует общий параметр рабочего процесса PSConnectionRetryCount, чтобы ограничить команду пятью попытками на каждом компьютере и общим параметром рабочего процесса PSComputerName, чтобы указать имена удаленных узлов (целевые компьютеры). Значение параметра PSComputerName — это выражение, которое получает свойство ServerName каждого объекта в переменной $s.
Эти команды выполняют команду Get-ExecutionPolicy как рабочий процесс на сотнях компьютеров.
Команда использует параметр Scope командлета Get-ExecutionPolicy со значением Process для получения политики выполнения в текущем сеансе.
Пример 3. Запуск выражения в качестве рабочего процесса
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
Эта команда использует рабочий процесс Invoke-AsWorkflow для выполнения команды Ipconfig в качестве задания рабочего процесса на компьютерах, перечисленных в файле DomainControllers.txt.
Команда использует параметр Expression для указания выражения для выполнения.
Он использует общий параметр PSComputerName рабочего процесса для указания имен удаленных узлов (целевых компьютеров).
Команда также использует AsJob и JobName общие параметры рабочего процесса для запуска рабочего процесса в качестве фонового задания на каждом компьютере с именем задания Ipconfig.
Команда возвращает объект ContainerParentJob (System.Management.Automation.ContainerParentJob), содержащий задания рабочего процесса на каждом компьютере.
Параметры
-CommandName
Выполняет указанную командлет или расширенную функцию в качестве рабочего процесса.
Введите имя командлета или функции, например Update-Help, Set-ExecutionPolicyили Set-NetFirewallRule.
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
Command
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Expression
Указывает выражение, которое этот командлет выполняется в качестве рабочего процесса.
Введите выражение в виде строки, например "ipconfig /all".
Если выражение содержит пробелы или специальные символы, заключите выражение в кавычки.
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
Expression
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-InputObject
Используется для выполнения входных данных конвейера.
Свойства параметров
| Тип: | Object |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Parameter
Задает параметры и значения параметров команды, указанной в параметре CommandName.
Введите хэш-таблицу, в которой каждый ключ является именем параметра, а его значением является значение параметра, например @{ExecutionPolicy="AllSigned"}.
Сведения о хэш-таблицах см. в about_Hash_Tables.
Свойства параметров
| Тип: | Hashtable |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
Command
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
Object
Вы можете передать любой объект в этот cmdlet.
Выходные данные
None
Эта команда не возвращает собственные выходные данные, но рабочий процесс, который выполняется, может возвращать выходные данные.