Данный скрипт сначала найдет всех пользователей, у которых заканчивается выделенное дисковое пространство и автоматически расширит квоту. Его можно использовать в случаях, когда руководство еще не приняло решение относительно политик выделения пространства пользователям. Также можно автоматически расширять квоту, если пользователю было отправлено уведомление о нехватки места, но чистка не помогла, так как почти все письма нужны и удалять их нельзя.
Для подключения к Exchange необходимо вводить логин и пароль. Чтобы автоматизировать этот процесс и при этом не хранить пароль в открытом формате, сохраняем его в зашифрованном виде следующей командой:
> read-host -assecurestring | convertfrom-securestring | out-file C:Scriptspassword.txt
* после нажатия Enter система запросит ввести пароль, после чего она его зашифрует и сохранит в файл (в данном примере, C:Scriptspassword.txt ).
1 — 6 | Индивидуальные переменные. Для каждой среды и случая нужно менять только их, остальная часть скрипта не требует редактирования |
1 | Имя пользователя для подключения к Exchange Server |
2 | Пароль для подключения к Exchange Server. Читается хэш из файла |
3 | Имя почтового сервера к которому будем подключаться |
4 | Процент используемого пространства от 0 до 100, при превышении которого скрипт будет добавлять квоту |
5 | Процент пространства, на которое будет увеличиваться квота пользователя |
6 | Процент пространства от новой квоты для отправки пользователю предупреждения |
8 — 10 | Определение хэш переменных для будущего использования. Если это не сделать заранее в Powershell, сценарий вернет ошибку. |
8 | Массив баз данных с их лимитами по умолчанию |
9 | Массив пользовательских квот для каждого пользователя индивидуально |
10 | Массив занимаемого пространства для каждого пользователя индивидуально |
12 — 14 | Функция преобразования строки дискового пространства, которую возвращает командлет Exchange, в число, соответствующее занимаемому пространству в байтах |
16 — 18 | Подключение к серверу Microsoft Exchange |
16 | Создаем переменную с логином и паролем |
17 | Создаем переменную сессии с подключением к серверу, логином и паролем |
18 | Подключаемся к серверу, используя переменную сессии |
20 — 27 | Получаем массив баз данных, которые есть в нашем Exchange и их дисковые квоты по умолчанию. Данные нужны для пользователей, у которых не выставлены индивидуальные лимиты. |
20 | Запрашиваем список всех почтовых баз, выбираем из полученных данных имена и квоты и инициируем блок скрипт для каждого полученного объекта |
21 | Создаем переменную с именем базы |
22 | Создаем переменную с квотой для базы |
23 | Используем условие, если квота не безлимитная (unlimited) |
24 | Изменяем переменную с квотой — преобразовываем строку в число байт |
26 | Наполняем хэш-массив: добавляем элемент, где ключ — это имя почтовой базы, а значение — ее лимит по умолчанию |
29 — 44 | Получаем список почтовых ящиков и создаем массив пользователей, для которых необходим анализ квот |
29 | Создаем переменную, в которую поместим всю информацию по почтовым ящикам Exchange |
30 | Обратимся к каждому ящику из переменной, созданной строчкой 29 и запустим для нее блок-скрипт |
31 | Создадим переменную с именем пользователя ящика |
32 | Создадим переменную с базой, в которой хранится почта пользователя |
33 | Создадим переменную с объемом занимаемого пространства письмами пользователя |
34 | Создадим массив из двух элементов — квоты для пользователя и указание на использование лимитов по умолчанию для базы |
35 | Условие, если используются лимиты по умолчанию для почтовой базы пользователя |
36 | В качестве лимита пользователя используем квоту базы |
38 | Иначе, используем квоту пользователя, преобразовав ее в байты |
40 | Если квота пользователя не безлимитна |
41 | Добавляем элемент массива: ключ — пользователь, значение — его квота |
42 | Добавляем элемент массива: ключ — пользователь, значение — занимаемого им пространство на сервере |
46 — 58 | Проходим по всему списку пользователей и при необходимости, увеличиваем квоту на почтовый ящик Exchange |
46 | Обращаемся к ранее полученному массиву с пользователями и начинаем блок-скрипт |
47 | Создаем переменную для пользователя |
48 | Создаем переменную с квотой пользователя |
49 | Создаем переменную с занимаемым пространством пользователя |
50 | Рассчитываем переменную с процентом занимаемого пространства от квоты |
51 | Если процент занимаемого пространства выше или равен определенный нами в строке 4 |
52 | Рассчитываем новую квоту для пользователя |
53 | Рассчитываем новую квоту для отправки предупреждений |
54 | Выводим на экран пустую строку для разделения. Удобно, если скрипт запускать вручную |
55 | Выводим на экран пользователя, для которого меняем квоту. Удобно, если скрипт запускать вручную |
56 | Запускаем командлет для расширения квоты пользователя |
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…