Скрипты для сисадмина
Любой системный администратор не может обойтись в своей работе без применения скриптов. Причём эти скрипты нужны, прежде всего, самому сисадмину для облегчения его работы. Ведь хороший сисадмин — ленивый сисадмин.
Ему лениво бегать по рабочим местам в офисе, ездить по удалённым офисам, если для выполнения административных задач можно обойтись скриптами, к тому же запускаемыми удалённо с его рабочего места или на рабочих станциях и серверах по расписанию автоматически. Без скриптов спокойная работа настоящего сисадмина невозможна. Не важно, на каком языке написаны эти скрипты. Главное — результат. В качестве примера приведу два полезных скрипта, один из которых написан на VBS, и является файлом с расширением VBS, а второй — с использованием команд командного интерпретатора, и является BAT-файлом. Оба скрипта проверены и успешно работают.
Без скриптов спокойная работа настоящего сисадмина невозможна.
Скрипт 1
Скрипт состоит из отдельных блоков, которые можно использовать как отдельно, так и целиком. Вообще, этот скрипт предназначен для обеспечения работы программы «Учёт и контроль компьютеров в сети» для сбора информации о компьютере. Вот её описание. Рекомендую. Бесплатно, информативно, наглядно. Но в данной статье не это главное. Главное, что это делается не руками, а по расписанию или по нажатию иконки.
Где можно применить этот скрипт? Если вам необходимо что-то выполнить на удалённом компьютере, вне пределов локальной сети, и получить результат по электронной почте, с приложенным файлом или без него, то этот скрипт для вас. Или может быть вам нужно при наступлении какого-либо события на удалённом компьютере из любой точки мира получить на свой адрес письмо-оповещение, или SMS на телефон, если ваш оператор поддерживает передачу SMS по электронной почте. Всё в ваших руках.
Вам может показаться, что код перегружен проверками. Не соглашусь с таким мнением. Всевозможные проверки и обработка ошибок — спокойствие для вас и комфорт для пользователя. Гораздо понятнее получить ваше сообщение об ошибке, чем сообщение, сгенерированное интерпретатором или просто молча неработающий скрипт из-за того, что нет нужного файла.
Что делает этот скрипт?
- Запускает программу для сбора информации
- Запускает архиватор для архивирования результата работы первой программы
- Создаёт письмо и отправляет архив по почте в головной офис, не используя почтовые программы. Как он это делает? Специально для таких целей Microsoft создал для всех пользователей Windows бесплатный облачный транспортный сервис, который на основании данных вашей учётной записи вашего почтового сервера отправляет на ваш почтовый сервер ваше письмо. Работает это практически мгновенно. Ну конечно, если вы не отправляете по почте гигабайтный фильм.
Но это — в общем. На самом деле скрипт ещё делает ряд проверок и обрабатывает возможные ошибки. Что полезного может сисадмин найти в этом скрипте для своих нужд?
- Проверка каталога, откуда запущен сам скрипт
- Проверка наличия конкретного файла
- Проверка наличия конкретного каталога
- Запуск программы с параметрами командной строки
- Удаление конкретного файла в каталоге
- Чтение всего текстового файла
- Вывод содержимого текстового файла на экран силами MsgBox и/или WScript.Echo. Второй способ используется просто для примера, как альтернатива
- Вывод окна сообщения с обработкой нажатой пользователем кнопки выбора действия
- Создание письма:
- Заполнение полей для отправки: «Кому», «От кого», «Тема»
- Заполнение тела письма текстом из текстового файла (конечно, можно указать текст и в самом скрипте, но так более гибко)
- Прикрепление файла к письму (можно и не одного файла, но это уже своими силами, аналогично или в цикле)
- Отправка письма силами скрипта, без использования внешней почтовой программы
Если хоть что-то из перечисленного вас заинтересовало, то тогда этот скрипт для вас. Используйте эти «кирпичики» для написания своих скриптов. Разумеется, и этот скрипт можно упростить или дополнить, всё в ваших руках.
- Программа сбора информации: Checkcfg.exe (бесплатная)
- Архиватор командной строки: 7za.exe (бесплатный)
- Текстовый файл unitname.txt содержит три строки:
- «Не ваш Город»
- «Не ваш Офис»
- «Не ваши Имя компьютера или Имя пользователя»
и предназначен для информации пользователя в процессе выполнения скрипта о том, правильно ли он заполнил данные о проверяемом компьютере, а в конечном итоге — для помещения этих строк в тело письма. До начала работы пользователю необходимо заменить строки своими данными.
Разумеется, при автоматической работе скрипта надо оставить только сообщения об ошибках, и то их тоже можно послать себе на почту, они отправятся в любом случае, если есть интернет и открыт соответствующий доступ. А этот доступ открываете вы, так что все будет в порядке.
Остальные пояснения даны в теле скрипта.
Скрипт 2
Иногда необходимо выполнить какие-то регламентные работы с файлами на сети в автоматическом режиме, а рассеянные (назовём их ласково так) пользователи забыли выключить свой компьютер и, более того, оставили открытыми кучу приложений с открытыми файлами и базами данных. В итоге из-за блокировки файлов или баз данных работы не были выполнены со всеми вытекающими возможными последствиями. Что делать? Если слова не помогают — надо действовать! Можно получить список всех включённых компьютеров и выключить их. Легко! Но это не всегда хорошо. Бывает, что некоторые рабочие станции должны работать, не выключаясь на ночь. Если вы знаете самых злостных нарушителей, то лучше проверить только их, и, если они забыли выключить свои компьютеры, выключить только эти компьютеры, причём из педагогических соображений — без сохранения их данных. Это дисциплинирует, поверьте мне. Особенно если узаконить приказом иным документом правило выключать компьютеры на ночь. Тогда пользователи и возразить не смогут — сами виноваты.
На чём основана работа скрипта?
Для скорости работы скрипта компьютер пингуется только одним пингом. Опытным путём выявлено, что для IP4 единственным общим для разных версий Windows признаком ответа работающего компьютера является строка «TTL» в ответе. У выключенных компьютеров её нет. Главная строка скрипта работает по принципу конвейера: результат пинга обрабатывает команда FIND, ищет «TTL» в ответе с игнорированием регистра, а чтобы не «светиться», все направляется в NUL. При обнаружении «TTL» переменная ERRORLEVEL будет равна нулю, что нам и надо. «Гасим» его, нарушителя! Вопрос, чем гасить? В Windows есть штатная команда SHUTDOWN. Но она, как выяснилось, не всегда срабатывает, если открыты программы на компьютере нарушителя. Я использовал утилиту Марка Руссиновича PsShutdown.exe. Это работает. Взять её можно официально и бесплатно отсюда. Работу скрипта по выключению при обнаружении работающего компьютера пишем в лог. Записываются текущие дата, время и фамилия нарушителя.
Моя рекомендация
Если вы хотите серьёзно заняться написанием своих VBS и WSH скриптов для администрирования, очень рекомендую вам пройти обучение на курсах Microsoft 2433B «Scripting Microsoft Windows Management Instrumentation» и 2439A «Microsoft Visual Basic Scripting Edition and Microsoft Windows Script Host Essentials». Именно в таком порядке. Для настоящего сисадмина не будет минусом то, что все материалы и задания во время обучения — на английском языке. Качество обучения высокое, т.к. это — официальные курсы Microsoft. Говорю так потому, что сам в прошлом году успешно окончил эти курсы.
Александр РЫКУНИН
Windows 10 Setup Script — скрипт для быстрой настройки Windows 10 после установки
Обновлено: 25.09.2020. Только для Windows 10, версия 2004 и 20H2
- Скрипт переименован в Windows 10 Sophia Script.
- Скрипт переписан в виде модуля (около 270 функций) с файлом пресетов!
- Теперь его необходимо запуска через .\Preset.ps1
- Каждый «твик» в файле пресетов имеет соответствующую функцию для восстановления значения по умолчанию;
- Создайте свой собственный файл с пресетами!
- Незначительные изменения. Новые возможности не добавлены.
Windows 10 Setup Script представляет собой скрипт PowerShell, который следует запускать сразу после установки свежей копии Windows 10. Основная цель скрипта — предоставить администраторам широкие возможности для настройки операционной системы. Например, скрипт позволяет переопределить параметры конфиденциальности, удалить встроенные приложения и изменить системные настройки.
Примечание
Windows 10 Setup Script предназначен для опытных пользователей и задуман для запуска сразу после установки Windows 10. Так как скрипт вносит изменения в настройки и компоненты системы, настоятельно рекомендуется создать резервную копию перед запуском скрипта.
Как использовать Windows 10 Setup Script
Перед запуском скрипта нужно подготовиться. Во-первых нужно скачать скрипт (файл с расширением .ps1) для целевой версии Windows 10. Разработчик предлагает скрипты для Windows 10 версий 1903, 1909, 2004, 20H2 и Windows 10 LTSC 1809. Тестовая версия для Windows 10, версия 21H1 находится в разработке.
Windows 10 Setup Script — это продвинутый инструмент для опытных пользователей и системных администраторов, которые хотят изменить настройки новой установки Windows 10. Перед запуском сценария требуется некоторая подготовка, чтобы убедиться, что все настроено в соответствии с потребностями.
После того, как вы скачали и распаковали нужную версию, для настройки перед запуском необходимо открыть скрипт в текстовом редакторе или Visual Studio Code с расширением PowerShell. Хотя теоретически вы можете сразу запустить скрипт и использовать все значения по умолчанию, лучше предварительно посмотреть, какие изменения он будет вносить в систему.
Если вам сложно читать сам код скрипта, то можете ознакомиться с подробными комментариями. Скрипт для Windows 10 версии 2004 содержит в общей сложности 3488 строк, и их изучение займет некоторое время, даже если вы являетесь опытным пользователем.
С полным списком модификаций вы можете ознакомиться на странице проекта в GitHub. Приведем некоторые из них:
Название | Что делает |
---|---|
Set up Privacy & Telemetry | Настройка параметров конфиденциальности и телеметрии |
Turn off diagnostics tracking scheduled tasks | Отключение запланированных заданий диагностического отслеживания |
Set up UI & Personalization | Настройка интерфейса и персонализация |
Uninstall OneDrive «correctly» | «Корректное» удаление OneDrive |
Change %TEMP% environment variable path to %SystemDrive%\Temp | Изменение пути переменной среды %TEMP% на %SystemDrive%\Temp |
Change location of the user folders programmatically (without moving user files) within interactive menu using up/down arrows and Enter key to make a selection | Изменение расположения пользовательских папок программно (без перемещения файлов пользователя) в интерактивном меню с помощью стрелок вверх/вниз и клавиши Enter |
Uninstall UWP apps from all accounts with exception apps list with pop-up form written in WPF | Удаление приложений UWP из всех учетных записей с учетом исключений с помощью всплывающей формы, написанной на WPF |
Turn off Windows features | Отключение функций Windows |
Remove Windows capabilities with pop-up form written in WPF | Удаление возможностей Windows с помощью всплывающей формы, написанной на WPF |
Create a Windows cleaning up task in the Task Scheduler | Создание задачи очистки Windows в Планировщике заданий |
Unpin all Start menu tiles | Открепление всех плиток меню Пуск |
Pin shortcuts to Start menu using syspin.exe | Закрепить ярлыки в меню «Пуск» с помощью syspin.exe |
Three shortcuts are preconfigured to be pinned: Control Panel, «old style» Devices and Printers, and Command Prompt | Предварительно настроены для закрепления три ярлыка: Панель управления, «Устройства и принтеры» и Командная строка |
Turn on Controlled folder access and add protected folders using dialog menu | Включение контролируемого доступа к папкам и добавление защищаемых папок с помощью диалогового меню |
Add exclusion folder from Microsoft Defender Antivirus scanning using dialog menu | Добавление папки исключения для сканера антивируса Microsoft Defender с помощью диалогового меню |
Add exclusion file from Microsoft Defender Antivirus scanning using dialog menu | Добавление файла исключения для сканера антивируса Microsoft Defender с помощью диалогового меню |
Refresh desktop icons, environment variables and taskbar without restarting File Explorer | Обновление значков рабочего стола, переменных сред и панели задач без перезапуска проводника |
Используйте символ комментариев # для включения или отключения определенных настроек в скрипте. Просто поместите их перед командами, чтобы пропустить их при запуске скрипта. После внесения изменений сохраните скрипт.
Затем запустите скрипт в системе. Для этого необходимо настроить политику исключения, поскольку в противном случае Windows 10 откажется запускать скрипт.
- Откройте командную строку PowerShell с повышенными привилегиями, например путем отображения меню администратора с помощью комбинации Windows + X и выбора опции Windows PowerShell (администратор).
- Выполните команду:
- После этого запустите сценарий PowerShell или Start.cmd от имени администратора.
- Программа может предлагать некоторые варианты выбора, например список приложений, которые нужно удалить, в зависимости от вашей конфигурации скрипта.
А вы используете инструменты для управления параметрами конфиденциальности?
ТОП-10 инструментов для админа Windows Server
Набор для управления, наблюдения, бэкапа и диагностики Windows Server, который облегчит работу системных администраторов.
1. Wireshark и Microsoft Message Analyzer
Утилита отслеживания сетевого потока данных. Она работает с основными протоколами, имеет чистый интерфейс на GTK и мощную систему фильтров. Программа работает на Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X и Windows. Wireshark показывает подробности сетевых данных. Выявляйте с помощью программы разные проблемы сети.
Microsoft Message Analyzer захватывает, отображает и анализирует сетевые данные. Изюминка программы – отслеживание системных вызовов, что позволяет сопоставлять поведение установленных приложений с тем, что творится в сети.
Программа подходит для следующих случаев:
- Снимки для анализа безопасности. Захватывайте и сохраняйте данные в сетевом сегменте для нахождения вероятных угроз.
- Диагностика проблем приложений. Программы вроде Скайпа используют разные порты и протоколы. Когда сервер теряет связь с клиентами, создайте снимки попыток соединений в Message Analyzer и определите возможные помехи.
- Диагностика сети и настроек файрвола. Захватывайте данные между машинами. Хост не получает ожидаемого ответа? Определите, где прерывается связь, и не мешает ли файрвол.
2. Clonezilla
Clonezilla – бесплатный open source инструмент, клонирует диски и виртуальные разделы. Поддерживает системные бэкапы и аварийное восстановление. Доступно два варианта программы: live-версия для одной машины и SE для серверов и больших деплоев.
Сохраняйте резервные копии на внешний USB-диск. Clonezilla поддерживает файловые системы FAT, NTFS, ext2, ext3, ext4, reiserfs, reiser4, XFS, JFS, JFS, VMFS и HFS +. Она идеальна для одноразовых бэкапов. Единственный минус – Clonezilla не различает программный RAID и разбивает его на отдельные устройства.
Версия SE поможет, когда на множестве одинаковых машин отсутствует ОС. Установите операционную систему и нужное ПО на один ПК, сделайте снимок, а затем деплой на остальные машины по сети. Вдобавок Clonezilla SE бэкапит ночью или в любое другое время.
3. PowerShell ISE и его аддоны
Это интерактивная оболочка на .NET Framework. Пригодна для автоматизации и управления процессами, а также понимает команды cmd.
Внешним видом и функциональностью PowerShell похож на cmd. Надстройка Script Browser позволит вам найти нужные сценарии на TechNet.
Ещё один полезный аддон – это Script Analyzer. Он автоматически анализирует скрипты и предлагает изменения.
Установите с помощью следующих команд:
4. RSAT для Windows 10
Инструменты удалённого управления сервера или RSAT предоставляют администраторам доступ к Windows Server и Active Directory. Он включает в себя:
- Управление сервером.
- Консоль MMC.
- Hyper-V.
- Командлеты PowerShell.
- Инструменты командной строки.
RSAT переносит утилиты администрирования на обычный десктоп. Нет необходимости использовать удалённый рабочий стол. Это повышает безопасность управления Windows Server.
5. Инструменты Sysinternals
Набор пригодится для диагностики проблем и выявления уязвимостей компьютеров под управлением Windows. В шести категориях около 40 утилит:
- работа с файлами и дисками
- сетевые программы
- процессы
- безопасность
- информация о системе
- разное
System Monitor
Установите эту службу на любой ПК с Windows. Sysmon расширяет функции логирования. Он записывает в журнал событий информацию о создании файлов, удалении процессов и сетевых соединениях.
Служба увеличивает количество событий в логе на серверах или десктопах.
AccessChk
Инструмент определяет разрешения групп и пользователей для следующих ресурсов:
- Файлы.
- Директории.
- Реестр.
- Глобальные объекты.
- Службы Windows.
Уязвимости возникают из-за неправильных разрешений доступа.
Autoruns
Узнайте, какие программы запускаются после загрузки и при входе. Утилита отображает все запуски из папок Startup, Run, RunOnce, а также из ключей реестра. Autoruns предоставляет информацию о расширениях оболочки проводника, установленных панелях инструментов, вспомогательных объектах браузера, об автоматическом запуске служб и уведомлениях Winlogon.
Process Explorer
Он позволяет просматривать файлы и пути выполнения процессов. Инструмент показывает производительность ЦП, использование памяти и обрабатывает цифровые подписи.
Process Explorer работает как альтернатива диспетчеру задач. Он отображает потребление ресурсов, включая память, дескрипторы, объекты и потоки. Замораживайте и уничтожайте выполняющиеся программы с помощью PE. Используйте интеграцию с VirusTotal для поиска опасного кода.
Process Monitor
Инструмент содержит информацию о системных файлах, реестре, процессах и потоках. Настройте его на снятие данных активности.
Возможности Process Monitor:
- Захватывайте информацию процессов: путь, команды, ID пользователя и сессии, а также нагрузку на сеть.
- Подробности служб, утилизация файлов.
- Определяйте ключи реестра с данными приложений.
- Логирование событий.
- Логи операций при загрузке.
- Фильтры поиска.
6. 7-zip
Open source инструмент обладает малым размером и поддерживает различные алгоритмы сжатия. Работает со всеми распространёнными архивами: zip, rar, Gzip, bzip2, xz, tar и WIM. Имеет проприетарный формат 7z с алгоритмом сжатия LZMA. Программа доступна из консоли с помощью команды p7zip или через графический интерфейс. Поддерживает интеграцию в проводник и шифрует zip-архивы с помощью AES 256. Скрывайте названия содержимого в архиве формата 7z.
7. Notepad ++
Notepad ++ – крутой текстовый редактор. Подходит для работы с кодом. В нём есть подсветка синтаксиса и поддержка регулярных выражений в поиске. Но главное – быстрое время отклика при открытии больших файлов. Редактор поможет сисадминам исследовать длинные логи.
Настройте интерфейс под себя и скройте всё ненужное. Устанавливайте горячие клавиши и функции меню. Notepad++ поддерживает вкладки – работайте с несколькими файлами в одном окне. Другие фичи:
- автоматическое сохранение
- поиск и замена регулярным выражением
- макросы
- множественное редактирование
- разделение экрана и синхронизация прокрутки
- строковые операции, включая сортировку, преобразование регистров и удаление лишних пробелов
8. Netwrix Account Lockout Examiner
Бесплатная утилита оповещает IT-администраторов о блокировке учётных записей AD. Она помогает установить причину для быстрого восстановления нормальных операций. В службу поддержки поступает уведомление со ссылкой на подробности. Выбирайте оповещения для определённых пользователей.
Критические для бизнеса приложения используют служебные учётные записи. Инструмент оповещает администраторов после блокировки для минимизации влияния на бизнес.
9. Process Hacker
Хотите навороченный Task Manager, который опережает даже аналог от Sysinternals:
- Фишка PH – уведомления о запуске, установке служб и драйверов. Когда устанавливается программа, вы получаете сводку о запускаемых процессах.
- Главное окно похоже на аналог в Process Explorer, но в отличие от PE, который разбивает информацию, PH позволяет открывать вкладки кликами по диаграммам в главном окне. PH показывает имя процессора, общее количество физической памяти.
- Он помечает процессы разными цветами в зависимости от типа.
- Доступен поиск по ключевым словам.
- Network и Disk – две полезные вкладки с соответствующей информацией о процессах.
Эти функции делают Process Hacker одним из топовых бесплатных инструментов для сисадминов.
10. PuTTy
PuTTY – лёгкий и быстрый эмулятор терминала. Он поддерживает протоколы SSH, SCP и rlogin. Доступен для разнообразных ОС, включая Windows и Linux. Поддерживает различные варианты удалённого терминала. PuTTY позволяет контролировать пользователей с помощью шифрования SHH, 3DES, Arcfour, Blowfish, DES или аутентификацией по открытым ключам. Программа поддерживает IPv6.
В PuTTY есть клиенты SCP и SFTP для командной строки ( pscp и psftp ). А также plink – консольная утилита для не интерактивных сессий. PuTTY – программа для удалённой настройки роутеров, коммутаторов и серверов.