Использование PowerShell для администрирования и автоматизации задач
PowerShell – это командная оболочка и полноценный объектно-ориентированный язык сценариев основанный на .NET, который можно использовать для управления компьютерами и созданий скриптов автоматизации различных задач администрирования. Среда PowerShell предустановлена в Windows.
Команды PowerShell (называются командлеты) можно запускать в командной строке
powershell.exe
(
pwsh.exe
для PowerShell Core 6.7, 7.x), или можно использовать встроенный в Windows редактор сценариев PowerShell ISE (с подсветкой кода, справочником команд, средствами отладки). Еще больше возможностей для работы с кодом PoweShell дает бесплатный редактор Visual Studio Code (VSCode). В консоли PowerShell доступна история выполненных ранее команд.
На данный момент есть две ветки PowerShell:
- Windows PowerShell до версии 1 — встроенная в Windows классическая версия PowerShell, основанная на .NET Framework. На данный момент PowerShell 5.1 не развивается Microsoft.
- PowerShell Core x, 7.x — актуальная кроссплатформенная версия PowerShell, основанная на .NET Core. Активно развивается. Эту версию PowerShell нужно устанавливать и обновлять отдельно. Возможна установка на PowerShell Core на Linux.
PowerShell позволяет системным администраторам автоматизировать и управлять различными компонентам дестопных версий Windows, ролями Windows Server, и другими компонентами инфраструктуры Microsoft и сторонними продуктами.
PowerShell в администрировании ролей Windows Server
PowerShell – это отличное средство автоматизации настройки и управления платформой Windows Server. Практически все действия, которые вы выполняете с помощью графических оснасток можно сделать с помощью PowerShell. PowerShell значительно упрощает одновременное администрирование десятков и сотен серверов с Windows Server 2022/2019/2016/2012R2.
- Установка и удаление ролей в Windows Server через PowerShell
- Файловый сервер: управление общими сетевыми папками с помощью PowerShell
- Установка, настройка и администрирование роли Remote Desktop Services (RDS): развертывание фермы серверов RDS; настройка шлюза RD Gateway; перенос ролей RDS на другой сервер;
- Включить поддержку Wi-Fi адаптеров в Windows Server
- Установка и настройка службы SNMP в Windows
- Основные команды настройки Windows Server Core из консоли PowerShell
- Администрирование роли Hyper-V требует наличия установленного PowerShell модуля Hyper-V. Он позволяет: установить Windows в виртуальную машину Hyper-V; настроить автозапуск ВМ; клонирование, экспорт и импорт виртуальных машин в Hyper-V
- Использование iSCSI дисков в Windows Server
- Установка и настройка роли DHCP сервера в Windows Server
Администрирование компьютеров Windows 10 и 11 с помощью PowerShell
С помощью PowerShell вы можете конфигурировать различные параметрами в пользовательских операционных системах (Windows 10 и 11):
- Сетевые настройки: задать IP адрес и другие сетевые параметры с помощью PowerShell; сбросить сетевые настройки Windows; вывести сохраненные пароли Wi-Fi сетей;
- Windows Defender Firewall – включить/отключить брандмауер; создать, удалить правило файервола
- Управление Windows Update – модуль PSWindowsUpdate для установки обновлений в Windows
- Управление локальными пользователями Windows с помощью PowerShell
- Управление принтерами – создать принтер, установить драйвер из PowerShell; удалить принтер, получить логи печати
- Управление дисками и разделами с помощью PowerShell; расширить раздел в Windows
- Установка языковых пакетов Windows
- Удаление драйверов в Windows
- Работает с логами Event Viewer: обработка логов Event Viewer с помощью PowerShell; аудит событий входа пользователей в Windows; история запуска программ на компьютере; анализ логов RDP; очистка логов Windows
- Установка приложений через winget и удаление программ в Windows с помощью PowerShell
- Microsoft Defender (Защитник Windows) – управление встроенным антивирусом с помощью PowerShell; как отключить Защитник Windows
- Управление VPN подключениями из PowerShell
- Установка WSL 2 в Windows, перенос VHDX диска WSL на другой диск;
- Установить новые шрифты с помощью PowerShell, восстановить стандартные шрифты в Windows
- Управление службами Windows через PowerShell
- Получить и изменить настройки BIOS/UEFI компьютера из PowerShell
- PowerShell: управление NTFS разрешениями объектов файловой системы
- Отправить письмо через Outlook с помощью скрипта PowerShell
- Создать, удалить, изменить параметр реестра из PowerShell
- Проверить статус активации Windows
- Игнорировать обновления и драйвера в образ Windows
Использование PowerShell для администрирования Active Directory
Для администрирования леса/домена Active Directory используется модуль RSAT-AD-PowerShell:
- Контроллеры домена – установить новый DC в AD (установка роли ADDC на Server Core); удалить контроллер домена; проверить состояние контроллеров домена и репликации;
-
New-ADUser
– создать пользователя в Active Directory -
Get-ADUser
– получить информацию о пользователях домена AD - Set-ADUser – изменить атрибуты пользователя в AD
-
Set-ADAccountPassword
– изменить/сбросить пароль пользователя в домене -
New-ADOrganizationalUnit
– создать Organizational Unit в AD -
Unlock-ADAccount
– разблокировать пользователя в AD -
Get-ADComputer
– получить информацию о компьютерах Active Directory -
Set-ADComputer
– изменить свойства компьютера в Active Directory -
Search-ADAccount
– поиск неактивных пользователей и компьютеров в AD -
Restore-ADObject
— восстановить удаленные объекты AD - Управление группами Active Directory с помощью PowerShell
- Найти с какого компьютера блокируется учетная запись в домене
- Логи (историй) входа пользователей в домен
- Получить список локальных администраторов на компьютерах в домене
- Получить список версий Windows в Active Directory
- Сбросить пароль администратора домена
- Управление групповыми политиками в Active Directory возможно с помощью PowerShell модуля GroupPolicy
Работа с файлами в PowerShell
-
Import-CSV
,Export-CSV
– чтение, экспорт данных в CSV файлы из скриптов PowerShell - Чтение и запись в Excel файл из PowerShell
Управление Exchange с помощью PowerShell
Командлеты PowerShell это важный инструмент администрирования и автоматизации on-premises Exchange Server и Exchange Online (Microsoft 365). Для подключения к Exchange Online нужно установить модуль EXO. К Exchange Server можно подключиться удаленно с любого компьютера и импортировать командлеты PowerShell для Exchange в свою сессию.
- Перевод Exchange Server в режим обслуживания, очистка и перемещение логов Exchange
- Настройка ящиков пользователей: включить/отключить переадресацию почты в ящике Exchange, предоставить права доступа к ящику Exchange или календарю, настроить региональные параметры ящика Exchange; создать/удалить правило в ящике пользователя; поиск и удаление писем в ящиках Exchange; разрешить автоподключение ящиков Exchange в Outlook; включить и настроить автоответ в почтовом ящике
- Проверить размер почтового ящика, задать квоты в Exchange Server
- Конвертировать ящик пользователя в общий и наоборот
- Управление группами рассылок (distribution group)
- Как удалить или переименовать почтовую базу в Exchange
- Аудит действий пользователя в ящике Exchange
-
Get-MessageTrackingLog
– анализов журналов доставки писем в Exchange
Администрирование Teams из PowerShell
- Модуль PowerShell для Teams
- Отправка сообщения в канал Teams из PowerShell
- Экспортировать историю чата Microsoft Teams
- Отключить автозапуск Teams
Управление Microsoft 365 с помощью PowerShell
- Подключение к Azure AD (Entra ID) с помощью PowerShell
- Аутентификация в Microsoft 365 из скрипта PowerShell с помощью сертификата
- Назначить лицензии в Microsoft 365 с помощью PowerShell
- PowerShell: управление группами Microsoft 365 (Entra AD ex. Azure AD)
- Восстановление удаленных пользователей в Microsoft 365
- Отправка писем через Microsoft Graph API и PowerShell
Удаленное подключение, получение данных с помощью PowerShell:
- Удаленные подключения PowerShell Remoting через SSH
- Управление компьютерами в рабочей группе из PowerShell
- Удаленное подключение PowerShell через HTTPS
- Командлет
Enter-PSSession
– создать интерактивную PowerShell сессию с удаленным компьютером - Получить имя пользователя на удаленном компьютере
- Командлет
Invoke-Command
– запуск команд и скриптов PowerShell на удаленных компьютерах - Проверка открытых/закрытых портов на удаленном хосте с помощью PowerShell
-
Invoke-WebRequest
– получить данные с веб страницы, скачать файл с помощью PowerShell -
Send-MailMessage
– PowerShell командет для отправки писем по протоколу SMTP
Администрирование продуктов VMware из PowerShell
- Установка модуля VMware PowerCLI
- Включить/отключить SSH доступ к хосту VMware ESXi
- Создать виртуальную машину VMware с помощью PowerShell
- Расширить диск виртуальной машины VMware
- Включить/отключить буфер обмена в консоли VMware
- Интеграция драйверов в образ ESXi
- Выполнить консолидацию дисков виртуальной машины VMware