Powershell – Простой тест производительности модуля ActiveDirectory


Решил переписать старый скрипт использующий ADSI и применить командлеты из модуля ActiveDirectory. Первые строки вызвали сомнение. Решил проверить скорость работы командлетов из модуля ActiveDirectory.

$a1 = measure-command {1..300 | % {$a=Get-ADUser ITestUser -Properties *;$a.Description=1; Set-ADUser -Identity $a } }

 

$a2 = measure-command {1..300 | % {

$a=[ADSI]«LDAP://CN=TestUser,OU=Users,DC=domain,DC=ru»;

#$a=$a.GetDirectoryEntry();

$a.Description=1

$a.CommitChanges();

}

}

 

 

$a1.TotalMilliseconds/$a2.TotalMilliseconds

 

Результат: 3.74110927547075

 

Разница слишком ощутимая, чтобы отказаться от ADSI и мигрировать на командлеты модуля ActiveDirectory.

Powershell – анализ маршрутов таблицы маршрутизации


 

В статье Powershell – проверка принадлежности IP-адреса подсети я привел функцию, которая проверяет принадлежность IP-адреса  заданной подсети. Цель была сделать анализ маршрутов при роутинге. Но когда начал писать код для анализа, то понял, что эта функция не поможет, потому что нужно выполнять анализ не просто вхождения, а анализ полной таблицы в бинарном виде. К моему удивлению .Net не содержит подобные функции бинарных операций для типа [Net.IPAddress]. Поэтому пришлось делать лобовое решение: преобразовать бинарную информацию в строки из нулей и единиц и уже анализировать их – в конце-концов нам же не десятки тысяч маршрутов анализировать из таблицы магистрального роутера… хотя …

Читать далее

Powershell – убираем старые учетные записи


Периодически любому системному администратору приходится убирать мусор из Active Directory: чем больше домен, тем быстрее накапливаются учетные записи компьютеров и пользователей, которые давно не используются.

Читать далее