![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Poweshell RunspacePool — Многопоток |
|
|
PowerShell - [решено] Poweshell RunspacePool — Многопоток
|
Новый участник Сообщения: 15 |
Добрый день. Написал код, но не работает с RunspacePool.
$button_OK.Add_Click({ $RunspacePool = [runspacefactory]::CreateRunspacePool(1,8) $RunspacePool.ApartmentState = "MTA" $RunspacePool.Open() $Work = [powershell]::Create().AddScript($scriptblock) $scriptblock = { if ($CheckBox_ESPP.Checked){ & C:\PSTools\psexec.exe -h -nobanner -accepteula @C:\comps.txt powershell.exe -inputformat none "Invoke-Expression -Command 'hostname'; Get-Item C:\EASOPS\ESPP\In; Get-Item C:\EASOPS\ESPP\Out" } if ($CheckBox_GMMQ.Checked){ & C:\PSTools\psexec.exe -h -nobanner -accepteula @C:\comps.txt powershell.exe -inputformat none "Invoke-Expression -Command 'hostname'; Get-Item C:\GMMQ\Export; Get-Item C:\GMMQ\Import" } if ($CheckBox_Size.Checked){ & C:\PSTools\psexec.exe -h -nobanner -accepteula @C:\comps.txt powershell.exe -inputformat none "Invoke-Expression -Command 'hostname'; Get-PSDrive C" } } $Work.RunspacePool = $RunspacePool $Work.BeginInvoke() $RunspacePool.Close() | Out-Null $RunspacePool.Dispose() | Out-Null }) Подскажите, пожалуйста, что я сделал не так? |
|
Отправлено: 16:24, 03-06-2021 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Столько просмотров, ни кто не знает?
|
Отправлено: 09:00, 11-06-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата rulesss2:
И код обрамляйте специальными тегами... |
|
------- Отправлено: 09:11, 11-06-2021 | #3 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать Зачем с пауэршеллом использовать psexec? У него есть свои механизмы удалённого запуска.
https://docs.microsoft.com/ru-ru/pow...powershell-7.1 |
------- Отправлено: 09:21, 11-06-2021 | #4 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Суть в том, что psexec выполняет код на 51 компьютере по очереди. Через RunspacePool я пытаюсь создать выполнение кода хотя бы на 8 компьютерах одновременно.
Цитата rulesss2:
|
||
Отправлено: 09:48, 11-06-2021 | #5 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось DJ Mogarych, 11-06-2021 в 11:47. Отправлено: 11:31, 11-06-2021 | #6 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать Все варианты пробовал. Договориться не вариант. Этот код пробовал "Служба WinRM уже настроена на прием запросов на компьютере."
Enter-PSSession : Сбой подключения к удаленному серверу xxxx. Сообщение об ошибке: Клиенту не удается подключит ься к узлу назначения, указанному в запросе. Убедитесь, что служба на узле назначения работает и принимает запросы. Озн акомьтесь с журналами и документацией для определения запущенной на узле назначения службы WS-Management (чаще всего эт о IIS или WinRM). Если это служба WinRM, то для анализа состояния и настройки этой службы используйте на удаленном узле команду "winrm quickconfig". Подробности см. в разделе справки "about_Remote_Troubleshooting". строка:1 знак:1 + Enter-PSSession xxxx + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (xxxx:String) [Enter-PSSession], PSRemotingTransportException + FullyQualifiedErrorId : CreateRemoteRunspaceFailed Ошибка при попытки подключения. |
Отправлено: 13:07, 11-06-2021 | #7 |
Ветеран Сообщения: 1759
|
rulesss2, Посмотрите в сторону workflow, который позволяет выполнять код параллельно. Или ставьте PowerShell Core, где у Foreach-Object есть -Parallel и -ThrottleLimit.
То, что вам не позволяет антивирус, это конечно сильно. Он скорее должен ругаться на psexec. |
Отправлено: 13:22, 11-06-2021 | #8 |
Новый участник Сообщения: 15
|
Профиль | Отправить PM | Цитировать С workflow беда. Не получается добавить в код который написал в первом посте. Если кто-то поможет, буду очень благодарен. На psexec антивирус не ругается. Команды выполняются, просто хочу ускорить процесс выполнения.
|
Отправлено: 13:42, 11-06-2021 | #9 |
Ветеран Сообщения: 1759
|
Цитата rulesss2:
Просто сравните время выполнения: |
|
Последний раз редактировалось Foreigner, 11-06-2021 в 15:39. Отправлено: 13:51, 11-06-2021 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
|