Как увеличить количество параллельных процессов с помощью Powershell 3?

Я пытаюсь запустить 20 процессов параллельно. Я изменил сеанс, как показано ниже, но не повезло. Я получаю только до 5 параллельных процессов за сеанс.

$wo=New-PSWorkflowExecutionOption -MaxSessionsPerWorkflow 50 -MaxDisconnectedSessions 200 -MaxSessionsPerRemoteNode 50 -MaxActivityProcesses 50
Register-PSSessionConfiguration -Name ITWorkflows -SessionTypeOption $wo -Force
Get-PSSessionConfiguration ITWorkflows | Format-List -Property *

Есть ли параметр переключения для увеличения количества процессов?

Это то, что я запускаю:

Workflow MyWorkflow1
{
Parallel {
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns  "where OrderId between 2 and 2975416"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 2975417 and 5950831"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 5950832 and 8926246"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 8926247 and 11901661"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 11901662 and 14877076"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns"where OrderId between 14877077 and 17852491"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns  "where OrderId between 17852492 and 20827906"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 20827907 and 23803321"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 23803322 and 26778736"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 26778737 and 29754151"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 29754152 and 32729566"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 32729567 and 35704981"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 35704982 and 38680396"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 38680397 and 432472144"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 432472145 and 435447559"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns  "where OrderId between 435447560 and 438422974"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 864944289 and 867919703"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 867919704 and 870895118"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 870895119 and 1291465602"}
InlineScript { import-module \\PS_Scripts\bulkins.ps1; BulkIns "where OrderId between 1291465603 and 1717986945"}
         }

person Mark Shay    schedule 20.10.2012    source источник


Ответы (3)


jrv с форумов MSDN предоставляет пример рабочего кода:

$wo = New-PSWorkflowExecutionOption -MaxSessionsPerWorkflow 100 -MaxDisconnectedSessions 200
Register-PSSessionConfiguration -Name test-ping -SessionTypeOption $wo -Force

$s = New-PSWorkflowSession 
Invoke-Command $s { 
workflow Invoke-ParallelForEach{ 
    foreach -parallel ($i in 1..10){ 
        InlineScript{ 
            "foo: $using:i" 
        } 
        Get-Process -Name PowerShell* 
    } 
   } 
}

# now run the workflow with the custom configuration
Invoke-Command $s { Invoke-ParallelForEach -PSComputerName localhost -PSConfigurationName test-ping}
person Ohad Schneider    schedule 27.06.2017

Я не уверен, почему вы вызываете PSSessionConfiguration.

Если вы посмотрите на вывод справки для New-PsWorkFlowSession, вы увидите пару примеров, которые кажутся более близкими к тому, что вы хотите сделать. У меня нет модуля, который вы используете для тестирования этого рабочего процесса, поэтому я не могу вам помочь.

person Thomas Lee    schedule 20.10.2012

Это должно работать, вам даже не нужно менять PSSessionConfiguration. Вот пример, так как у нас нет вашего модуля.

Workflow Get-ParallelChildItem
{
        Parallel {
        InlineScript {gci C:\ -Recurse}
        InlineScript {gci C:\ -Recurse}
        }
}
person Community    schedule 29.10.2012