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