Powershell 4 – Foreach –Parallel теперь еще быстрее!


Несмотря на возможность использования групповых политик GPO и запуска через них скриптов, несмотря на обширные возможности SCCM, все равно приходится делать некоторые работы на множестве компьютеров, запуская скрипты непосредственно на своей машине. Уже много раз я описывал разные полезные скрипты и не раз обращался к теме ускорения их работы: Powershell – выполняем скрипт еще быстрее, Powershell – параллельное выполнение операций – меняем настройки DNS и Powershell, ADMT и проверка административных шар.

И вот как-то ускользнул от меня такой момент: в Powershell 4 у активити Foreach –Parallel появился параметр -ThrottleLimit, который позволяет изменить значение по умолчанию равное 5 параллельным потокам. Ранее число потоков в этой конструкции изменить было нельзя. Теперь можно: проверено – это работает и хорошо помогает!

Реклама

Особенности настройки SSO для Tomcat на IIS 8.5


Когда Microsoft подвергают критике за сложность и нелогичность настройки ее продуктов, то можно иной раз с этим согласиться, но когда приходится работать с продуктами других производителей, то, как говориться, все познается в сравнении: уровень обычно настолько ниже, что ясно понимаешь, почему продукты Microsoft так популярны даже несмотря на наличие массы «бесплатных» альтернатив.

Вот на днях пришлось настраивать SSO (Single-Sign-On) для Aparche Tomcat, чтобы заработала прозрачная аутентификация для Windows пользователей. Для этого был поднят сервер Windows Server 2012 R2 и IIS 8.5, потом установлен Tomcat 8 и ключевой элемент — Jakarta Isapi Redirector, который собственно и реализует SSO.

Все это нужно было для работы с HP Service Manager 9. Когда я выполнил тестовое подключение, то все достаточно быстро открылось и работало замечательно. Когда тоже самое сделал коллега, то получил сообщение об ошибке: «The page was not displayed because the request entity is too large».

Сообщение четко описывает, в чем проблема. Первым делом я нашел настройки ограничений на IIS:

clip_image001

Как видите по умолчанию IIS разрешает передачу контента аж в 30 Мб! Значит проблема где-то в Tomcat, но где? Количество мест и неочевидных параметров, как показывал предыдущий опыт, в Tomcat просто не имеет границ.

Тем не менее поиск в Интернет вывел на страничку с решением: проблема в том, что Jakarta Isapi Redirector имеет буфер по умолчанию 8 Кб! Сколько у Tomcat ограничение по умолчанию, я не знаю, поэтому выставляем одно и то же значение для обоих компонентов.

Увеличиваем буфер коннектора в 2 раза с 8 Кб до 16 Кб:

1. В файле server.xml

a. Найти

<Connector port=»8009″ protocol=»AJP/1.3″ redirectPort=»8443″ tomcatAuthentication=»false» URIEncoding=»UTF-8″/>

b. Добавить параметр packetSize=»16384″ (по умолчанию 8 Кб)

<Connector port=»8009″ protocol=»AJP/1.3″ redirectPort=»8443″ tomcatAuthentication=»false» URIEncoding=»UTF-8″ packetSize=»16384″/>

2. В файле worker.properties (используется isapi_redirect.dll ) вставить строку:

worker.local.max_packet_size=16384

(Вместо Local у вас может быть что-то другое)

PS: Нашел описание параметра packetSize http://tomcat.apache.org/tomcat-8.0-doc/config/ajp.html

Powershell – нормализация регистра учетных записей


Некоторые проблемы живут вечно. Одна из таких проблем постоянно возникает, когда в домене Windows начинает аутентифицироваться какая-нибудь Unix система: такие системы изначально регистрозависимые, и в том числе это касается логинов.

Единственный «универсальный» способ хотя бы частично избавиться от этой проблемы – нормализовать sAMAccountName и UPN, приведя их к нижнему регистру у всех учетных записей.

Сделать это поможет простой скрипт:

$users=Get-ADUser -Filter * | ? SamAccountName -CnotMatch «^[a-z\._]*$»

$users.Count

 

$users | % { Set-ADUser $_ -Replace @{ SamAccountName=$_.SamAccountName.ToLower();UserPrincipalName=$_.UserPrincipalName.ToLower() } }