Есть ли в PowerShell лимит, вызывающий ошибку? Недостаточно квоты для обработки этой команды? - PullRequest
0 голосов
/ 04 сентября 2018

У нас есть сценарий развертывания, который завершается с ошибкой: Недостаточно квоты для обработки этой команды.

В тот момент, когда он терпит неудачу, он пытается запустить исполняемый файл асинхронно после того, как уже запустил один и тот же исполняемый файл 10 раз. Так что номер 11 терпит неудачу. Всего нужно запустить 17. Этот сценарий не написан на PowerShell, но мы используем удаленный сеанс PowerShell для его запуска, и эта ошибка возникает, только когда мы запускаем сценарий с помощью удаленного взаимодействия PowerShell.

Если мы запустим тот же сценарий непосредственно на сервере без использования удаленного взаимодействия PowerShell, мы не получим эту ошибку, и у сценария не возникнет проблем с запуском всех экземпляров exe (всего 17) и завершением без ошибок.

Я проверил типичные ограничения WSMAN, которые, как я подозревал, могут быть причиной ошибки, и, насколько я могу судить, они установлены на неограниченный уровень. Сначала я подумал, что, возможно, MaxProcessesPerShell установлен слишком низким. Вот результаты с диска WSMAN на сервере, на котором он работает:

У нас есть следующие настройки WSMAN:

> WSMan:\localhost\Shell> dir

   WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Shell

Type            Name                           SourceOfValue   Value
----            ----                           -------------   -----
System.String   AllowRemoteShellAccess                         true
System.String   IdleTimeout                                    7200000
System.String   MaxConcurrentUsers                             2147483647
System.String   MaxShellRunTime                                2147483647
System.String   MaxProcessesPerShell                           2147483647
System.String   MaxMemoryPerShellMB                            2147483647
System.String   MaxShellsPerUser                               2147483647

Существуют ли другие параметры PowerShell или WSMAN, которые могут быть причиной этой ошибки?

Типичное решение, рекомендуемое для ошибки Недостаточно квоты ... , заключается в увеличении размера файла Page. Я еще не пробовал, потому что скрипт работает без ошибок вне сеанса PowerShell.

Я могу предоставить больше подробностей о том, что делает наш скрипт, если это необходимо, чтобы помочь ответить на этот вопрос.

1 Ответ

0 голосов
/ 05 сентября 2018

Пределом квоты, вызвавшим мою ошибку, был параметр MaxProcessesPerShell в 32-разрядном подключаемом модуле PowerShell. Этот параметр не зависит от настройки оболочки. Чтобы устранить эту проблему, я выполнил следующие команды в удаленном сеансе PowerShell ...

 dir WSMan:\localhost\Plugin\microsoft.powershell32\Quotas\MaxProcessesPerShell

Результаты ...

Type            Name                           SourceOfValue   Value
----            ----                           -------------   -----
System.String   MaxProcessesPerShell                           15

Измените настройку на 25 с помощью ...

Set-Item WSMan:\localhost\Plugin\microsoft.powershell32\Quotas\MaxProcessesPerShell 25

Перезапустите службу WinRM с помощью ...

Restart-Service WinRM

Попытался снова запустить скрипт проблемы с этой новой квотой, и теперь он запускает все 17 экземпляров exe без какой-либо ошибки. Существует также 64-битный плагин PowerShell, который также имеет свои собственные настройки для этого.

Это решение было найдено здесь Недостаточно квоты для обработки этой команды

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...