Попробую описать опыт автоматизации своей (и коллег) работы на 1-ой линии техподдержки внутренних сотрудников.

Было дано

Домен MS AD, около 4-5 тыс. пользовательских компьютеров под управлением Win7-10. Задачей нашей группы поддержки было получение заявок от сотрудников и решение их проблем в процессе подключения к их рабочему столу (MSRA или Dameware) или без подключения (если это возможно).

Но были и но

Заявки поступали к нам без указания ip-адреса ПК сотрудника. В компании было настроено админами AD так, что Hostname записывался в поле Description учетки сотрудника в AD во время каждого логона. Т.е. чтобы добыть hostname нужно было копировать логин сотрудника из заявки, искать его в оснастке ADUC, там брать hostname и дальше подключаться к сотруднику и работать.

Кажется неудобным ? Вот и я так подумал. Значит нужно было упростить получение hostname ПК сотрудника из AD, а заодно и прочую информацию о юзере и его ПК.

Также во время выполнения заявок часто нужно было узнать аппаратную конфигурацию ПК пользователя. Подключаться к юзеру и смотреть это всё через его рабочий стол - не наш путь.

Далее в процессе работы над заявками возникало много рутинных однообразных действий, которые хотелось бы автоматизировать на своём уровне.

Кстати о своём уровне: читатель может воскликнуть "Неправильно! Широкую на широкую!", другими словами автоматизировать всё это нужно на других уровнях - например на уровне системы приёма заявок: ip-адрес, hostname, конфигурация ПК и прочие нужные данные должны уже быть в заявке изначально. А, например, массовая установка ПО должна по-хорошему выполняться через GPO или SCCM. И он (читатель) будет прав. Но реалии того моего места работы были таковы, что взаимодействие между отделами практически не работало. Наши предложения менеджерам о доработке систем вроде бы на словах принимались и даже формировались какие-то задачи, но потом они ложились в конец backlog'а и лежали там годами. Первое время после трудоустройства я пытался решать проблемы выдвижением предложений, но потом, видя результат (его отсутствие), стал думать как упростить работу своими силами.

Что же делать?

Сначала я стал искать готовые решения и быстро понял, что всё уже давно придумано до нас, а именно есть скрипт еще 2011 года https://lazywinadmin.com/LazyWinAdmin_GUI, который показался мне крайне интересным. В т.ч. привлек вид интерфейса - концепция одного окна с полем вывода результатов обработки команд в основном окне. Скрипт, однако, с одной стороны был перегружен функционалом для моих задач, а с другой - некоторые специфические функции отсутствовали. Также запуск неизвестного скрипта в корп. среде - довольно плохая идея. В связи с чем было принято решение форкнуть данный скрипт и переписать его с нуля под себя попутно анализируя и проверяя код, а также изучая Powershell (на тот момент я знал его очень поверхностно).

В результате получился скрипт примерно такого вида:

Так выглядит окно программы
Так выглядит окно программы

Принцип работы: по логину пользователя скрипт берет имя ПК из AD. Затем по имени пользователя и ПК скрипт собирает необходимую информацию (верхняя часть окна). Далее нажимаются функциональные кнопки (полоса в середине окна), которые что-то делают, результат их действий выводится в окне вывода ниже кнопок.

Скрипт я постоянно дорабатывал под свои потребности и на момент, когда я уже сказал себе хватит, он имел

следующие функции:
  • определение hostname ПК пользователя по его логину

  • запрос нужных данных о пользователе из AD: время логина, дата истечения пароля, результат пинга hostname, телефон пользователя, ФИО, табельный номер, членство в группах и т.д.

  • запуск подключения через MSRA/DW/RDP на выбор

  • вывод аппаратной конфигурации ПК

  • очистка временных файлов на ПК пользователя (у нас по неизвестной мне причине не чистилось автоматически через GPO)

  • вывод состояния S.M.A.R.T. HDD

  • запуск оснастки Управление компьютером с адм.правами для целевого ПК

  • копирование на целевой ПК дистрибутивов ПО, которые нужно было часто ставить, но которых не было в изначальном образе ОС.

  • вывод списка установленного ПО на целевом ПК

  • запуск cmd команды с правами администратора на целевом ПК

  • запуск сессии PS-Remote

  • перезагрузка или выключение целевого ПК

  • вывод доменных групп пользователя, быстрое добавление в нужную группу

  • подсчет занимаемого места для локального и перемещаемого профиля пользователя

  • отправка сообщения на целевой ПК (полезно например когда не дозвониться)

  • удаленная переконфигурация правил брандмауэера Windows (необходимо было работы некоторого самописного ПО в организации)

  • внесений изменений в реестр удаленного ПК для восстановления работы определенного периферийного оборудования

  • справочник часто используемых резолюций для закрытия заявок (copy-paste)

  • вывод занимаемого места п/я пользователя из Exchange (для понимания исчерпана квота или нет)

  • отдельными кнопками реализованы часто используемые выгрузки из AD (список членов определенной группы, список сотрудников по должности и тд)

Получившийся инструмент значительно упростил работу группы тех.поддержки (~ 15 чел), увеличилось количество выполняемых заявок, а с ним и моя ЗП. Успешно использовалось это всё около 3х лет, пока не пришло Импортозамещение. И, если к Вам оно ещё не пришло, то возможно мой опыт будет Вам чем-то полезен.

Уточню, что как сотрудники ТП мы имели административные права на всех ПК домена. Скрипт также запускался от учётки, имеющей эти полные права. В ином случае его функционал был бы сильно ограничен. Также для полноценной работы скрипта необходимы некоторые сетевые доступы на всю корп.сеть. В моём случае эти доступы просто были, ничего дополнительно запрашивать у ИБ не пришлось.

Как вы могли заметить, данная статья не содержит ни строчки кода, но я решил поделиться своим опытом с точки зрения концепции. Код GUI-окна и каких-то нужных функций можно подсмотреть в исходном инструменте на lazywinadmin.com. А если статья вызовет интерес, то возможно выпущу продолжение с публикацией кода конкретных функций моего варианта скрипта.

Комментарии (1)


  1. Andrei9385
    31.10.2025 11:42

    Привет. Любой админ хоть раз писал для поддержки GUI формы) И на гите есть разные реализации, но вот что я понял, самый удобный метод предоставления сервиса - это WEB. Потому с ИИ я пишу формы на IIS, где поддержка может создавать уз, почтовые ящики и любые другие реализации, которые есть допустим у Вас. Попробуйте, это легко и не зависит от ПК пользователя, просто и удобно с единой точкой входа. + ИИ очень красиво и современно кастомизирует.