Обзор лучших таск-менеджеров
![]()
Чтобы не забыть о важном деле, можно нарисовать крестик на запястье или записать в блокноте. Но иногда вы забываете и о том, что надо было посмотреть на руку или в заметки. Хранить список дел и напоминать о них могут планировщики задач.

Зачем нужен планировщик
Психологи иронично называют начало XXI века «эпохой золотых рыбок». Продолжительность концентрации внимания этих существ — девять секунд, примерно как у современного человека. Но это не значит, что человечество деградировало, — оно просто подстраивается под новые условия жизни.
Темпы ускоряются, задач становится больше, решать их нужно быстро и разом. Информация подается в сжатом виде — ее нужно понять и переработать в короткие сроки и не откладывая принять решение. В уме уже не требуется держать много данных, что снижает нагрузку на мозг, но, как следствие, лишает его способности долго концентрироваться на одном объекте.
Простой пример: людям стало скучно смотреть полнометражное кино. Сценаристы подогревают интерес невероятными спецэффектами, но и этого недостаточно.
Если дочитали до этого места в статье, значит, синдром дефицита внимания еще не добрался до вас.
При большом объеме задач, которые нужно быстро решать, забывается действительно важное. В ситуации, когда необходимо держать в голове цели, спланировать порядок действий и отслеживать шаги, нужны помощники.

Раньше освободить оперативную память мозга помогали ежедневники и блокноты. Сегодня это электронные планировщики со множеством встроенных функций для тайм-менеджмента и управления целыми проектами. Благодаря им вы можете правильно распределять фокус и ничего не пропустить.
Совкомбанк тоже может помочь с планированием. Чтобы накопить на важную цель, воспользуйтесь онлайн-копилкой. Настройте автоматические перечисления на нее с карты «Халва» и получайте проценты на остаток на счете. Накопить еще никогда не было так просто.
Хороший способ сберечь деньги онлайн-копилка с возможностью пополнения и снятия средств. Откройте онлайн-копилку до 13,6% годовых в мобильном приложении «Халва Совкомбанк».
На что обратить внимание при выборе
таск-менеджеры (task managers), трекеры задач или ласково «тудушки» различаются по многим факторам. Для эффективной работы нужно выбрать тот, что подходит для ваших целей. Обратите внимание на следующие характеристики:
- Платформы установки. Оцените, нужен ли вам мобильный помощник или требуется совместимость с операционной системой на компьютере. Проверьте, какие платформы поддерживает планировщик.
- Цена. Чаще всего бесплатная версия сильно урезана, и для эффективной работы потребуется покупать дополнительный пакет услуг. Заранее оцените, достаточно ли вам базовой версии.
- Функции. Нужна ли вам командная работа, автономный режим без интернета, статистика или простое наглядное расписание — сегодня есть планировщики под любые запросы.
- Удобство. Интерфейс должен быть простым и понятным, ведь его функция — упрощать работу, а не создавать новые трудности.
- Цель. Полномасштабная работа с проектами, когда участвует целая команда с распределением ролей, или личное расписание, чтобы не пропустить визит к врачу — под каждую задачу свои программы.
Ещё по этой теме
Лучшие программы и приложения для домашней бухгалтерии
Подборка лучших программ и приложений

Разберем особенности самых популярных приложений. Среди них есть и масштабные для ведения больших проектов, и «карманные» для личных текущих дел.
Weeek — умная система для коллективной работы в маленькой или большой команде. Есть три режима отображения задач: одним списком, в календаре и в виде
Крупную цель можно разбить на мелкие, создать пошаговую стратегию и назначить исполнителя на каждую подзадачу. Программа позволяет контролировать каждый этап, получать уведомления в удобном формате (телеграм-бот, пуши, на почту). Чтобы обсуждать планы, доступен внутренний чат. У задач можно контролировать длительность выполнения на каждой ступени.
Из интересного: есть микросервис медитации (а почему бы и нет) и помодоро-трекер. Слышали имя Франческо Чирилло? Когда-то он при помощи кухонного таймера в виде помидора создал свою теорию концентрации. Сейчас это эффективный и популярный метод тайм-менеджмента.
Суть техники проста: определите задачи на день и приступайте к выполнению. Работайте по будильнику ровно 25 минут, не отвлекаясь, когда пропищит сигнал — отдохните пять минут. Через четыре таких цикла, или помидора, сделайте перерыв на 20 минут. Эффективность работы повышается, так как вы знаете, что скоро отдохнете, и не отвлекаетесь на посторонние дела.
Weeek подходит для небольших проектов и координации действий команды на месяц вперед. Но это не лучший выбор для крупномасштабных работ.
Цена: компания до пяти человек может работать бесплатно, расширенные версии за дополнительную плату.
Одно из лучших приложений-«тудушек»: миллионы скачиваний, тысячи хвалебных отзывов, первые места в рейтингах изданий о технологиях.
Todoist позволяет сортировать задачи по дням и неделям, собирать в списки и проекты, помечать разными цветами и уровнями важности, а также делегировать другим пользователям.
Одна из особенностей — наглядная статистика достижения поставленных целей. С программой легко отследить эффективность действий каждого и проанализировать работу с помощью диаграмм.
Фишка Todoist — система мотивации в виде игры. За выполнение задания член команды получает плюсик в карму, за сорванные сроки очки теряются.
подходит как личный ежедневник, особенно в мобильной легкой версии (доступен на и айос), а также для небольшой команды.
Цена: базовая версия бесплатная (до пяти пользователей), продвинутую оплатить с российской карты сейчас нельзя.
Не подойдет для личного пользования — скорее, для корпоративных задач.
Отличается гибкостью и тонкостью настроек. К задачам можно прикреплять метки, теги, вложения. Есть удобная автоматизация повторяющихся дел. Следить за планами помогают детальная отчетность и табель учета времени.
Приложение синхронизируется с Dropbox, «Google Диск» и другими сервисами. В мобильной версии доступны многие функции, кроме того, она полностью синхронизирована с десктопной (что создается в одном формате, видно и в другом).
А еще на всех тарифных планах есть помощник — искусственный интеллект Wrike AI.
Есть проблемы, которые планировщик решить не может, а Совкомбанк — вполне. Если вам не хватает денег для личных целей или воплощения бизнес-идей, возьмите кредит. Оформите его в несколько кликов и не откладывайте средства месяцами.
Зачем откладывать деньги долгие месяцы, если можно получить желаемое прямо сейчас? в Совкомбанке, оформите услугу «Гарантия минимальной ставки» и получите шанс вернуть проценты по истечении срока кредитования. Для этого расплачивайтесь Халвой каждый месяц и не допускайте просрочек по кредиту. Оставить заявку вы можете в два клика.
Цена: есть бесплатный базовый тариф и дополнительные расширенные версии.
Масштабное приложение, чтобы управлять работой большой команды и объемными проектами. В таск-менеджере вы найдете , статистику и аналитику, канбан-доски, , тайм-трекер, календари, типовые шаблоны. Перечисление всех инструментов займет немало времени.
«Битрикс 24» включает внутреннюю социальную сеть, онлайн-офис; видеозвонки доступны прямо из задачи и чата. Создатели утверждают, что платформа заменит собой десятки сервисов и приложений.
Есть поддержка русского языка.
, расширенные тарифы — от 2 тысяч рублей в месяц за всех пользователей.
Это отечественный планировщик для управления проектами. Не подходит для личных целей. По словам разработчиков, «Яндекс.Трекер» создан, исходя из опыта самой компании по взаимодействию с клиентами и между сотрудниками. Из особенностей — интеграция с другими сервисами Yandex.
Из плюсов — гибкая настройка задач, маркировка, назначение ответственных за каждый этап. Есть возможность анализировать работу команды с помощью досок и диаграмм. Встроены документооборот и сервис уведомлений.
Из минусов — сложность управления. Однако команда разработчиков продолжает работу над программой и слышит голоса недовольных.
Цена: бесплатно для компании до пяти человек, дальше тариф зависит от количества пользователей — примерно 400 рублей в месяц за каждого.
Если ищете лаконичный и простой в управлении органайзер, то это он. Умеет синхронизироваться с различными устройствами: компьютером, планшетом, умной колонкой, голосовым помощником. Например, вы можете создать задачу, используя Siri.
Перечень дел можно держать в разных папках, то есть разбить все задачи на рабочие, личные, мечты и все, что вам придет в голову. Есть отдельный список для покупок, которым можно поделиться.
В приложении удобная настройка напоминаний, маркировка приоритетных целей. Лучше всего подходит для ведения личных дел.
Цена: базовый пакет бесплатный, расширенную версию оплатить сейчас из России не получится.
Ещё по этой теме
Лучшие приложения для подработки в интернете и офлайн
Remember the milk

Приложение-планировщик с забавным названием. Изначально это была маленькая программа для списка покупок, но быстро разрослась до масштабов полноценной «тудушки».
Это универсальный помощник для занятого человека. Внутри есть сортировка задач: сегодня, завтра, неделя. Отдельно располагаются списки дел. К задачам можно привязывать даты, контакты, геолокацию, а также планируемые затраты по времени.
Напоминания приходят, куда вам удобно: почта, мобильный, пуши на рабочем столе.
Цена: основная версия бесплатная, есть платные функции, но сегодня их невозможно оплатить из России.
Считается, что первые чеканные монеты появились на территории нынешней Западной Турции в VII–VI веках до нашей эры.
Еще одно известное приложение-планировщик. Подойдет для личных дел и проектов маленькой команды. Внутри удобная система сортировки задач по сроку, приоритету, дате создания, темам. Встроена геолокация: программа пришлет уведомление о домашних делах дома, о рабочих — на работе.
Из интересного: есть помодоро-таймер, трекер привычек и функция «белый шум» для концентрации на важном. Еще встроен сервис «Назойливое напоминание» для особо важных дел, которые нельзя пропустить, даже если очень хочется.
Цена: бесплатно, есть дополнительные функции за деньги, но их все равно оплатить невозможно (надеемся, это не навсегда).
Умный и дружелюбный помощник от российских разработчиков. А значит, проблем с хранением данных, переводом на родной язык, оплатой и техподдержкой точно не будет.
Что предлагают создатели:
- телеграм-бот для постановки задач;
- добавление дел по электронной почте;
- голосовой ввод данных в мобильной версии;
- двухсторонняя синхронизация с «Гугл-календарем» (что напишете в приложении, то появится в календаре и наоборот);
- распознавание распечатанного плана дня (ставьте галочки на листе бумаги, сканируйте — отметки появятся в планировщике);
- облачная синхронизация между всеми устройствами;
- бесконечная вложенность задач, проектов, тегов без ограничений (в платной версии);
- фокусировка на главном при помощи нескольких инструментов, включая помодоро-таймер;
- веселые эмодзи и цветные темы.
- базовый тариф бесплатный, но с ограниченными возможностями, подойдет для ведения простых списков задач на одном устройстве.
- pro тариф стоит 199 рублей в месяц или 5999 рублей навсегда.

Российский органайзер личных дел, в основе которого лежит философия Дэвида Аллена. Он считал, что человеческий мозг создан для генерации идей, а не как склад, поэтому, чтобы прийти к успеху, нужно обязательно записывать куда-нибудь необходимую информацию.
В «Хаос-контроле» каждый проект — это формулировка результата, который вы хотите получить, и список задач, выполнение которых приведет к цели.
В целом, как отмечают пользователи, органайзер похож на остальные. Задачи можно спланировать, обозначить тегами, добавить время выполнения. Из минусов — сложное управление. Из особенностей — есть «место хаоса» для возникших идей или входящих неразобранных задач.
Обратите внимание: у «Хаос-контроля» нет веб-версии.
Цена: есть пробная бесплатная версия и различные тарифы в зависимости от места установки.
Органайзер с упрощенным интерфейсом, в отзывах его называют «олдовым». Несмотря на некоторую непривычность, в программе есть все необходимое для ведения личных дел.
Внутри вы найдете многоуровневое создание задач, списки дел, канбан-доску, теги, индикатор просроченных этапов. Содержит большое число типовых шаблонов, которые помогут в управлении. Из плюсов — двухсторонняя синхронизация с «Гугл-календарем». Еще из интересного — режим фокусировки на одной цели (другие на время исчезнут из списка).
Цена: базовая мобильная программа бесплатна, расширенная — около 3000 рублей (разовый платеж с доступом навсегда). Для Windows есть только платная версия: базовая — около 5000 рублей, профессиональная — 6000 рублей.
Красивое современное приложение для iOS, отмеченное премиями за дизайн. Подходит не только как органайзер, но и как личный дневник, для хранения креативных идей, заметок.
В приложении можно составить список дел, сортировать планируемое по папкам, ставить теги. К задаче можно прикрепить файлы, документы, заметки. Отправляйте свои планы другим, чтобы достигать целей вместе. А еще есть возможность нарисовать эскиз прямо внутри задачи при помощи Apple Pencil или обычного человеческого пальца.
Цена: урезанная локальная версия бесплатна и расширенная с синхронизацией с iCloud за 300 рублей в месяц.
Российский таск-менеджер с простым и понятным интерфейсом. Не боится санкций, внезапно утром не превратится в тыкву.
Внутри на выбор два режима: личное пользование и командная работа. Во втором варианте есть встроенный корпоративный чат, статистика эффективности сотрудников. Предусмотрено создание поручений прямо из электронной почты, удобный формат канбан-доски для проектной работы.
У программы есть встроенный календарь. Можно создавать проекты, задачи и подзадачи на день, неделю, месяц. Прикреплять к ним файлы, сроки и ссылки. Есть индикаторы цвета. Работает также в офлайн-режиме. Неважно, что вы планируете — прием лекарств или развитие бизнеса — программа подстроится под ваши нужды.
Из особенностей: есть внутренний бот под названием «Модуль Инспектор». В нем можно поставить задачу и срок выполнения, назначить ответственного. А бот будет самостоятельно общаться с исполнителем, высылать ему напоминания, получать результат и отчитываться о ходе работы.
- бесплатно — для начинающих (до 100 задач, 10 проектов и трех досок);
- тариф «Премиум» — только для личного использования от 241 рублей в месяц;
- «Бизнес» — для работы в команде от 375 рублей в месяц за одного пользователя.
Как эффективно пользоваться планировщиком
Просто купить программу и ждать изменений в жизни — не сработает. Подскажем, как пользоваться «тудушками» для себя и действительно почувствовать положительный эффект.
- Распределите дела в планировщике на категории: семья, работа, продукты, наведение красоты. Наверняка, вы слышали о рекомендациях психологов, что нужно разделять сферы жизни, нельзя смешивать личное и профессиональное. Потренируйтесь в онлайн-помощнике. Это действительно работает.
- Расставляйте приоритеты. Время не резиновое. Есть большая вероятность, что, увлекшись одним делом, вы не уделите внимание чему-то более важному. Отмечайте цветами или выставляйте строгие дедлайны.
- Классифицируйте, создавайте папки, используйте теги. Вам должно быть легко найти задачу в пару кликов.
- Делегируйте. Даже в простом приложении с покупками можно отправить список нужному человеку. В планировщике вы четко увидите, что из важного не успеете выполнить по времени. Не делайте все дела сами.
- Разбивайте задачи на мелкие шаги. Тогда даже самое большое и сложное дело будет лишь чередой проставленных галочек. Сегодня одна, завтра вторая — вы уже на два шага ближе к цели.
- Используйте функцию повторяющихся дел. Так вам не придется регулярно заполнять одно и то же. Конечно, это может выглядеть тоскливо — изо дня в день делать что-то одинаковое. Но такова правда жизни.
- Будьте реалистами. Поначалу вы будете переоценивать себя и ставить невыполнимые планы, потому что не привыкли подсчитывать за собой потраченное время. Но постепенно поймете, сколько в реальности занимает та или иная работа.
Возможно, все планировщики кажутся вам похожими, с одинаковым набором функций. На самом деле нюансы очень важны. Пользуйтесь пробными версиями и выбирайте то, что подходит для ваших целей и ритма жизни.
Вся информация о ценах актуальна на момент публикации статьи.
(3).jpg)
Что такое bat-файл
Bat-файл – это текстовый файл, который содержит в себе набор команд для выполнения в командной строке. Такие файлы используются при работе с ОС Windows и обозначаются расширением .bat. Название bat-файла происходит от английского “batch file” – пакетный файл, продвинутые пользователи часто используют название “батник”.
Bat-файлы используются для автоматизации задач и выполнения ряда команд, без применения ввода данных в командную строку.
Зачем нужны bat-файлы:
- Автоматизация задач. Например, для повторяющихся типов действий: копирование, переименование файлов, создание резервных копий. Благодаря bat-файлам, можно запустить серию команд одним нажатием кнопки, что экономит время и не требует необходимость вводить однотипные команды вручную.
- Выполнение скриптов. Bat-файлы используют для выполнения скрипта на командном языке, например, CMD или PowerShell. Это позволяет создавать и запускать скрипты для выполнения сложных задач без необходимости запуска каждой команды по отдельности.
- Конфигурация системы. Bat-файлы могут использоваться для настройки и конфигурации операционной системы Windows, например, чтобы изменять системные переменные, устанавливать параметры безопасности, настраивать сетевые подключения.
(6).png)
Если вы ищите надежный выделенный сервер с операционной системой Windows, предлагаем воспользоваться услугой Windows VDS/VPS от RU-CENTER.
Как создать bat-файл
Для создания bat-файла понадобится устройство с ОС Windows и любой текстовый редактор. Следуйте инструкции:
- Откройте текстовый редактор, например, Блокнот или Visual Studio Code.
- Создайте в нем пустой файл.
- Запишите команду в том виде, как бы вы вводите ее в командную строку (каждую новую команду указывайте на отдельной строке).
- Добавьте любую необходимую логику или условные операторы, например, if-else или циклы, чтобы определить, какие команды будут выполняться в зависимости от определенных условий.
- Сохраните файл с расширением .bat. Для этого выберите Сохранить как и укажите тип файла Все файлы, добавьте расширение .bat в конце имени файла (например, myscript.bat).
- Создания bat-файла завершено.
Запуск bat-файла
Есть несколько способов запустить bat-файл:
- Найдите bat-файл с помощью Проводника и дважды щелкните на него. Это запустит файл. Команды в нем будут автоматически выполнены в командной строке.
- Из командной строки. Откройте командную строку, перейдите в директорию, где находится bat-файл, и введите имя файла. Кликните Enter, чтобы запустить bat-файл.
- С помощью ярлыка на рабочем столе. Щелкните правой кнопкой мыши на bat-файле, выберите Отправить, затем выберите Рабочий стол (создать ярлык). После создания ярлыка переместите его на рабочий стол и дважды щелкните на нем для запуска.
- Через Планировщик заданий. Можно настроить запуск bat-файла в определенное время или при определенных событиях с помощью Планировщика заданий. Для этого откройте Планировщик, создайте новое задание и укажите путь к bat-файлу в разделе Действие.
Независимо от способа запуска bat-файла, команды в файле будут выполнены последовательно в командной строке, в том же окне или в новом, в зависимости от настроек и команд в самом файле.
Синтаксис написания bat-файла
При написании bat-файла необходимо учитывать следующие правила:
- Комментарии в bat-файлах начинаются с символа REM (от английского remark – замечание) или :: (двойные двоеточия) и используются для пояснения кода.
- Команды в bat-файле записываются на отдельных строках и выполняются последовательно, начиная с верхней строки.
- При использовании переменных для хранения значений в bat-файле, их имена должны начинаться с символа %, и значения переменных устанавливаются с помощью оператора SET, например:
- В bat-файле можно использовать условные операторы, такие как IF и FOR, для выполнения команд в зависимости от определенных условий.
- С помощью оператора FOR можно создавать циклы для выполнения команд несколько раз или по списку значений.
Настройка планировщика заданий (периодический запуск)
Чтобы настроить запуск bat-файла в заданное время используйте планировщик задач Windows:
- Откройте Планировщик, нажав Win + R, введите taskschd.msc и нажмите Enter.
(3).jpg)
- Нажмите на Создать задачу в правой части окна.
- Во вкладке Основные введите имя задачи и описание (необязательно), нажмите Далее.
- Во вкладке Действия нажмите на Создать, в выпадающем меню выберите Запуск программы.
- В строке Программа/скрипт укажите путь к bat-файлу, который вы хотите запускать. Кликните на кнопку Обзор, чтобы найти bat-файл на компьютере.
- Настройте остальные параметры по вашему усмотрению: вы можете указать условия запуска, триггеры, параметры задачи и т.д.
- Когда все настройки сделаны, нажмите ОК, чтобы сохранить задачу.
Теперь ваш bat-файл будет запускаться автоматически в заданное время или по указанным условиям заданным в планировщике задач.
Основные команды при написании
Приведем несколько основных команд, которые можно использовать при написании bat-файла:
- echo – для вывода текста или переменных в командную строку или в файл.
- set – для определения или изменения значения переменной.
- if – для выполнения команд в зависимости от определенных условий.
- for – для создания циклов и повторного выполнения команд.
- call – для вызова другого bat-файла из текущего.
- pause – для остановки выполнения скрипта и ожидания, пока пользователь не нажмет клавишу.
- rem – для добавления комментариев в скрипт. Комментарии игнорируются интерпретатором bat-файлов.
- cd – для перехода в другой каталог.
- del – для удаления файлов.
- copy – для копирования файлов.
Переменные
При написании bat-файла также применяют переменные, которые используются для хранения и управления значениями данных. Они позволяют создавать гибкие скрипты, облегчают автоматизацию повторяющихся задач и упрощают изменение значений в различных частях скрипта.
Чтобы использовать переменные в bat-файлах, следует сначала задать ее с помощью команды set. Значение переменной указывается с помощью символа %.
В bat-файлах можно использовать несколько типов переменных:
- Строковые переменные:
- Числовые переменные:
set /a NUMBER=5
- Параметры командной строки:
- Системные переменные:
- Временные переменные:
Примеры bat-файлов
- Пример bat-файла, выводящего “Hello, World!”:
- Пример bat-файла, запрашивающего у пользователя имя и выводящего приветствие:
set /p name=Введите ваше имя:
- Пример bat-файла, выполняющего математические операции:
set /a num1=5
set /a num2=2
set /a sum=%num1% + %num2%
set /a product=%num1% * %num2%
(3).jpg)
- Пример bat-файла, выполняющего цикл для перебора файлов в каталоге:
for %%i in (*.txt) do (
- Пример bat-файла, проверяющего наличие файла и выполняющего определенные действия:
if exist myfile.txt (
) else (
Заключение
Bat-файлы весьма гибкие и простые в использовании. Они позволяют выполнять различные задачи, такие как копирование и перемещение файлов, создание и удаление папок, запуск программ и многое другое.
С помощью bat-файлов можно экономить время и упрощать выполнение повторяющихся задач. При их правильном использовании можно значительно повысить эффективность и продуктивность работы пользователя.
PowerShell – это средство автоматизации разработанное и выпущенное Microsoft в 2006 году на замену Командной строке и её батникам, помимо всего функционала cmd – Powershell обзавелась собственным скриптовым языком с поддержкой классов, объектов, переменных и т.д. По сути с её помощью можно обращаться ко всему функционалу Windows и Windows Server как к объектам и выполнять с ними действия. В статье я расскажу свой опыт, как автоматизировал создание пользователей в домене из писем-заявок в Outlook на удаленном сервере AD.
Все запланированные задачи в Windows можно посмотреть в “Планировщике задач”, автоматизировать Windows возможно как с его помощью, так и чисто на Powershell, чтобы вывести все текущие задачи необходимо выполнить:
Get-ScheduledJob Чтобы вывести запланированные только с помощью Powershell используется команда ниже, так как задачи созданные в Powershell хранятся в отдельной директории, достаточно их просто прочитать:
Get-ChildItem $HOME\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobsДля создания задания необходимо выполнить следующую команду, в квадратные скобки необходимо передать выполняемый скрипт:
$Условие = New-JobTrigger -Daily -At 12AM
Register-ScheduledJob -Name NewAD_User -ScriptBlock {######} -Trigger $УсловиеРассмотрим как происходит взаимодействие с Outlook, и сразу отмечу что для выполнения действий с почтой, необходимо закрыть открытое приложение, иначе команды не будут выполняться.
#Завершение Outlook
Get-Process | Where-Object {$_.ProcessName -eq "OUTLOOK"} | Stop-Process
Start-Sleep -Seconds 10
# Создание объекта Outlook
$outlook = New-Object -ComObject Outlook.Application
# Получение коллекции папок
$folders = $outlook.Session.Folders.Item("###Ваш адрес почты####").Folders
# Выбор папки "Входящие"
$Входящие = $folders.Item("Входящие")
$Исполнено = $folders.Item("Исполнено")
# Получение последнего письма
$Письма = $Входящие.Items | Sort-Object ReceivedTime -DescendingВ данном коде я получаю сортированный по дате список писем из папки “Входящие” и адрес папки “Исполнено” куда я планирую перемещать письма после выполнения скрипта.
foreach ($Письмо in $Письма) {
$lines = $Письмо.Body -split "`n"
#Условие чтения письма
if ($lines[0].Substring(0, 29) -ne "Заявка в IT - Новый сотрудник") {continue}
$Дата_заявки = $lines[0].Substring(32).Trim()
$Фамилия = $lines[2].Substring(18).Trim()
$Имя = $lines[4].Substring(4).Trim()
$Отчество = $lines[6].Substring(9).Trim()
$Отдел = $lines[8].Substring(6).Trim()
$Должность = $lines[10].Substring(10).Trim()
$Организация = $lines[12].Substring(12).Trim()
$Подразделение = $lines[14].Substring(14).Trim()
$Номер_телефона = $lines[16].Substring(15).Trim()
$Мобильный_телефон = $lines[18].Substring(18).Trim()
$Имя_пользователя_для_копирования_групп = $lines[20].Substring(29).Trim()В данном фрагменте начинается цикл который проходит по каждому письму, преобразует в список строк и получает значения из него, в начале я добавил простую проверку на случай если на выделенный почтовый ящик попадет случайное письмо. Далее самое важное – создание учетки, и в моем случае контакта, на удаленном сервере, для этого используется команда Invoke-Command:
$Сессия = New-PSSession -ComputerName ###Сетевое имя или IP-адресс компа###$Переменные = Invoke-Command -Session $Сессия -ScriptBlock {
param(####Все ваши переменные через запятую###)
команды на удаленном компе
return Переменные которые вернуться в массив обьектов "$Переменные"
} -ArgumentList ###Переменные через запятую которые вы передали в параметры###Переменная “$Переменные” примет, после выполнения команды на удаленном компьютере, переменные, указанные в return – они понадобятся для отправления письма-отчета.
#Транслит имени
function global:Translit {} - Функция принимает кирилицу и возвращает латиницу
$count = 0
#---------------Получаем список пользователей AD-----------------
$adUsers = Get-ADUser -Filter * -Properties UserPrincipalName
#---------------------Создание логина---------------------------
#чтобы транслейтить имя надо написать: $Транслит = Translit($имя)
$Имя_пользователя = Translit($Имя[0] + "." + $Фамилия)
$Отображаемое_имя = "$Фамилия $Имя"
#---------------Проверка на однофамильцев-----------------
while ($adUsers.SamAccountName -like "*$Имя_пользователя*") { $count = $count + 1 $Имя_пользователя = Translit($Имя[0] + $count + "." + $Фамилия) $Отображаемое_имя = "$Фамилия $Имя $count"
#---------------Создание почты на основе логина-----------------
$Эл_почта = $Имя_пользователя + "@mail"Теперь самое важное – создание учетной записи и контакта, Powershell не даст просто присвоить учетной записи пароль, для этого строку необходимо сначала преобразовать в защищенную.
#Пользователь
$Пароль = ConvertTo-SecureString -String "###Пароль###" -AsPlainText -Force
New-ADUser -SamAccountName "$Имя_пользователя" -UserPrincipalName "$Имя_пользователя" -Name $Отображаемое_имя -DisplayName $Отображаемое_имя -GivenName "$Имя" -Surname "$Фамилия" -Title "$Должность" -Mobile "$Мобильный_телефон" -OfficePhone "$Номер_телефона" -EmailAddress "$Эл_почта" -Department "$Отдел" -Company "$Организация" -AccountPassword $Пароль -Enabled $true -Path "OU=ТЕСТ,DC=domen,DC=local"
#Контакт
New-ADObject -Name "$Отображаемое_имя" -Type Contact -Path "OU=ТЕСТ_КОНТАКТЫ,OU=ТЕСТ,DC=domen,DC=local" -OtherAttributes @{DisplayName = $Отображаемое_имя; GivenName = "$Имя"; Sn = "$Фамилия"; Mobile = "$Мобильный_телефон"; Mail = "$Эл_почта";telephoneNumber = "444"; Title = "$Должность"; Department = "$Отдел"; Company = "$Организация"}$Исходные_группы = Get-ADUser $Имя_пользователя_для_копирования_групп -Properties MemberOf | Select-Object -ExpandProperty MemberOf
foreach ($группы in $Исходные_группы) { Add-ADGroupMember -Identity $группы -Members $Имя_пользователя
}На этом действия на сервере заканчиваются, закрываем скобки, и переходим в локальную сессию, в качестве отчета я отправлю письмо-ответ на адрес отправителя, для этого получаем переменные из объекта сессии и составляем письмо, после чего перемещаем письмо в папку “Исполнено”.
#Получение значений из сессии
$Имя_учетки = $Переменные.GetValue(0)
$Почта = $Переменные.GetValue(1)
#Ответное письмо
$Ответ = $Письмо.ReplyAll()
$Ответ.Body = @"
$Фамилия $Имя $Отчество
$Отдел
$Должность
$Организация
$Имя_учетки
$Почта
$Мобильный_телефон
$Номер_телефона
"@
$Ответ.Send( )
$Письмо.Move($Исполнено)После завершения цикла, закрываем сессию с сервером и закрываем Outlook, через 10 секунд чтобы письма успели отправиться.
#Завершение сессии
Remove-PSSession -Session $Сессия
#Завершение Outlook
Start-Sleep -Seconds 10
Get-Process | Where-Object {$_.ProcessName -eq "OUTLOOK"} | Stop-ProcessОбразец моей заявки:
Заявка в IT - Новый сотрудник от 12.04.2024 10:34:49
Описание: Фамилия: Жданов
Имя: Дмитрий
Отчество: Юрьевич
Отдел: Служба Качества
Должность: Контролер пищевой продукции
Организация: АО "Агрофирма "Бунятино"
Подразделение: -
Номер телефона:
Мобильный телефон: -
Пользователь для копирования:Полный листинг кода:
#----------------Создание сессии------------------------
$Сессия = New-PSSession -ComputerName ServerAD
#-------------------------Чтение почты-----------------------------
#Завершение Outlook
Get-Process | Where-Object {$_.ProcessName -eq "OUTLOOK"} | Stop-Process
Start-Sleep -Seconds 10
# Создание объекта Outlook
$outlook = New-Object -ComObject Outlook.Application
# Получение коллекции папок
$folders = $outlook.Session.Folders.Item("auto-user@agro-holding.ru").Folders
# Выбор папки "Входящие"
$Входящие = $folders.Item("Входящие")
$Исполнено = $folders.Item("Исполнено")
# Получение последнего письма
$Письма = $Входящие.Items | Sort-Object ReceivedTime -Descending
#-------------------------Рабочий алгоритм-----------------------------
#Получение значений переменных из письма
foreach ($Письмо in $Письма) {
$lines = $Письмо.Body -split "`n"
#Условие чтения письма
if ($lines[0].Substring(0, 29) -ne "Заявка в IT - Новый сотрудник") {continue}
$Дата_заявки = $lines[0].Substring(32).Trim()
$Фамилия = $lines[2].Substring(18).Trim()
$Имя = $lines[4].Substring(4).Trim()
$Отчество = $lines[6].Substring(9).Trim()
$Отдел = $lines[8].Substring(6).Trim()
$Должность = $lines[10].Substring(10).Trim()
$Организация = $lines[12].Substring(12).Trim()
$Подразделение = $lines[14].Substring(14).Trim()
$Номер_телефона = $lines[16].Substring(15).Trim()
$Мобильный_телефон = $lines[18].Substring(18).Trim()
$Имя_пользователя_для_копирования_групп = $lines[20].Substring(29).Trim()
#---------------Основная команда создания пользователя на удаленном сервере-----------------
$Переменные = Invoke-Command -Session $Сессия -ScriptBlock { param($Фамилия, $Имя, $Отчество, $Отдел, $Должность, $Организация, $Подразделение, $Номер_телефона, $Мобильный_телефон, $Имя_пользователя_для_копирования_групп)
#---------------Функция транслита-----------------
#Транслит имени
function global:Translit {
param([string]$inString)
$Translit = @{
[char]'а' = "a"
[char]'А' = "a"
[char]'б' = "b"
[char]'Б' = "b"
[char]'в' = "v"
[char]'В' = "v"
[char]'г' = "g"
[char]'Г' = "g"
[char]'д' = "d"
[char]'Д' = "d"
[char]'е' = "e"
[char]'Е' = "e"
[char]'ё' = "yo"
[char]'Ё' = "yo"
[char]'ж' = "zh"
[char]'Ж' = "zh"
[char]'з' = "z"
[char]'З' = "z"
[char]'и' = "i"
[char]'И' = "i"
[char]'й' = "j"
[char]'Й' = "j"
[char]'к' = "k"
[char]'К' = "k"
[char]'л' = "l"
[char]'Л' = "l"
[char]'м' = "m"
[char]'М' = "m"
[char]'н' = "n"
[char]'Н' = "n"
[char]'о' = "o"
[char]'О' = "o"
[char]'п' = "p"
[char]'П' = "p"
[char]'р' = "r"
[char]'Р' = "r"
[char]'с' = "s"
[char]'С' = "s"
[char]'т' = "t"
[char]'Т' = "t"
[char]'у' = "u"
[char]'У' = "u"
[char]'ф' = "f"
[char]'Ф' = "f"
[char]'х' = "h"
[char]'Х' = "h"
[char]'ц' = "c"
[char]'Ц' = "c"
[char]'ч' = "ch"
[char]'Ч' = "ch"
[char]'ш' = "sh"
[char]'Ш' = "sh"
[char]'щ' = "sch"
[char]'Щ' = "sch"
[char]'ъ' = ""
[char]'Ъ' = ""
[char]'ы' = "y"
[char]'Ы' = "y"
[char]'ь' = ""
[char]'Ь' = ""
[char]'э' = "e"
[char]'Э' = "e"
[char]'ю' = "yu"
[char]'Ю' = "yu"
[char]'я' = "ya"
[char]'Я' = "ya"
}
$outCHR=""
foreach ($CHR in $inCHR = $inString.ToCharArray())
{
if ($Translit[$CHR] -cne $Null )
{$outCHR += $Translit[$CHR]}
else
{$outCHR += $CHR}
}
Write-Output $outCHR
}
$count = 0
#---------------Получаем список пользователей AD-----------------
$adUsers = Get-ADUser -Filter * -Properties UserPrincipalName
#---------------------Получение логина---------------------------
#чтобы транслейтить имя надо написать: $Транслит = Translit($имя)
$Имя_пользователя = Translit($Имя[0] + "." + $Фамилия)
$Отображаемое_имя = "$Фамилия $Имя"
#---------------Проверка на однофамильцев-----------------
while ($adUsers.SamAccountName -like "*$Имя_пользователя*") { $count = $count + 1 $Имя_пользователя = Translit($Имя[0] + $count + "." + $Фамилия) $Отображаемое_имя = "$Фамилия $Имя $count"
}
#---------------Создание почты на основе логина-----------------
$Эл_почта = $Имя_пользователя + "@почта"
#---------------------Добавиление в AD-----------------------------
#Пользователь
$Пароль = ConvertTo-SecureString -String "пароль" -AsPlainText -Force
New-ADUser -SamAccountName "$Имя_пользователя" -UserPrincipalName "$Имя_пользователя" -Name $Отображаемое_имя -DisplayName $Отображаемое_имя -GivenName "$Имя" -Surname "$Фамилия" -Title "$Должность" -Mobile "$Мобильный_телефон" -OfficePhone "$Номер_телефона" -EmailAddress "$Эл_почта" -Department "$Отдел" -Company "$Организация" -AccountPassword $Пароль -Enabled $true -Path "OU=ТЕСТ,DC=bun,DC=local"
#Контакт
New-ADObject -Name "$Отображаемое_имя" -Type Contact -Path "OU=ТЕСТ_КОНТАКТЫ,OU=ТЕСТ,DC=bun,DC=local" -OtherAttributes @{DisplayName = $Отображаемое_имя; GivenName = "$Имя"; Sn = "$Фамилия"; Mobile = "$Мобильный_телефон"; Mail = "$Эл_почта";telephoneNumber = "444"; Title = "$Должность"; Department = "$Отдел"; Company = "$Организация"}
#-----------Копируем группы пользователя из контейнера-------------
$Исходные_группы = Get-ADUser $Имя_пользователя_для_копирования_групп -Properties MemberOf | Select-Object -ExpandProperty MemberOf
foreach ($группы in $Исходные_группы) { Add-ADGroupMember -Identity $группы -Members $Имя_пользователя
}
#-----------Возвращение переменных из сессии для ответного письма-------------
return $Имя_пользователя, $Эл_почта, $Фамилия, $Имя, $Отчество, $Отдел, $Должность, $Организация, $Подразделение, $Номер_телефона, $Мобильный_телефон, $Имя_пользователя_для_копирования_групп
} -ArgumentList $Фамилия, $Имя, $Отчество, $Отдел, $Должность, $Организация, $Подразделение, $Номер_телефона, $Мобильный_телефон, $Имя_пользователя_для_копирования_групп
#Получение значений из сессии
$Имя_учетки = $Переменные.GetValue(0)
$Почта = $Переменные.GetValue(1)
#Ответное письмо
$Ответ = $Письмо.ReplyAll()
$Ответ.Body = @"
$Фамилия $Имя $Отчество
$Отдел
$Должность
$Организация
$Имя_учетки
$Почта
$Мобильный_телефон
$Номер_телефона
"@
$Ответ.Send( )
$Письмо.Move($Исполнено)
}
#Завершение Outlook
Start-Sleep -Seconds 10
Get-Process | Where-Object {$_.ProcessName -eq "OUTLOOK"} | Stop-Process
#Завершение сессии
Remove-PSSession -Session $СессияНадеюсь вам помогла моя статья, я постарался максимально понятно разделить код на составные части чтобы его части можно было поменять на собственные.




