Использование 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 для системного администратора

PowerShell в администрировании ролей Windows Server

PowerShell – это отличное средство автоматизации настройки и управления платформой Windows Server. Практически все действия, которые вы выполняете с помощью графических оснасток можно сделать с помощью PowerShell. PowerShell значительно упрощает одновременное администрирование десятков и сотен серверов с Windows Server 2022/2019/2016/2012R2.

Администрирование компьютеров Windows 10 и 11 с помощью PowerShell

С помощью PowerShell вы можете конфигурировать различные параметрами в пользовательских операционных системах (Windows 10 и 11):

Использование PowerShell для администрирования Active Directory

Для администрирования леса/домена Active Directory используется модуль RSAT-AD-PowerShell:

Работа с файлами в PowerShell

Управление Exchange с помощью PowerShell

Командлеты PowerShell это важный инструмент администрирования и автоматизации on-premises Exchange Server и Exchange Online (Microsoft 365).  Для подключения к Exchange Online нужно установить модуль EXO. К Exchange Server можно подключиться удаленно с любого компьютера и импортировать командлеты PowerShell для Exchange в свою сессию.

Администрирование Teams из PowerShell

Управление Microsoft 365 с помощью PowerShell

Удаленное подключение, получение данных с помощью PowerShell:

Администрирование продуктов VMware из PowerShell

Автоматизация PowerShell в сторонних продуктах

Управление активацией в Windows: PowerShell модуль OSLicense (замена slmgr.vbs)

В Windows 11 недавно был добавлен новый PowerShell модуль OSLicense, который позволяет управлять ключами, лицензиями и собственно активацией в операционной системе. Данный модуль предназначен для замены устаревшего скрипта slmgr.vbs, который уже несколько десяток лет был основным инструментом администраторов для управления активацией...

Добавляем сетевые расположения в проводник Windows

Для удобства навигации пользователей в проводнике Windows можно создавать ссылки на сетевые расположения (Network Locations). Сетевые расположения представляют собой ярлыки (ссылки) на сетевые папки (SMB), интранет/интернет веб-сервера, ftp сервера или облачные хранилища. Они отображаются в проводнике File Explorer в разделе Этот...

Папка Windows Installer занимает много места, можно ли очистить?

Одной из распространенной причиной исчерпания свободного места на системном диске может быть системная папка C:\Windows\Installer. В моем случае при анализе использования диска с помощью утилиты WinDirStat, оказалось, что ее размер вырос почти до 100 Гб. В этой статье мы расскажем для...

Rclone в Windows для резервного копирования/синхронизации в облако

Консольная утилита Rclone позволяет настроить копирование или синхронизацию данных, хранящихся на вашем локальном компьютере с различными облачными хранилищами, включая Яндекс Диск, Google Drive, OneDrive, Dropbox, любыми S3 совместимым объектными хранилищами и множеством других сервисов. Часто Rclone называют rsync для облака. В...

Store CLI: интерфейс командной строки для Microsoft Store в Windows 11

Microsoft недавно выпустила для Windows новый инструмент Store CLI, представляющий собой интерфейс командной строки для взаимодействия с магазином приложений Microsoft Store. Store CLI представляет собой консольную альтернативу графическому интерфейсу Microsoft Store в Windows. С помощью Store CLI пользователь может выполнять поиск,...

Отслеживание изменений файлов в папке с помощью PowerShell

В сценариях, когда вам нужно отслеживать изменения в определенной папке и выполнять какое-то автоматические действие при обнаружении изменений в файле/директории (отправить уведомление, логировать событие в текстовый файл или журнал событий, запускать скрипт обработки и т.д.) вместо использования классического аудита событий доступа...

Очистка корзины у всех пользователей Windows

На общих компьютерах Windows, за которыми работают несколько пользователей (включая терминальные RDS сервера), размер удаленных элементов в корзине на диске может занимать значительно место. Если пользователи не очищают свои корзины самостоятельно, со временем их размер в папке $Recycle.Bin может занять существенную...

PowerShell: просмотр лог-файлов в реальном времени

В Windows логи некоторых приложений/сервисов хранятся не виде бинарных логов Event Viewer (*.evtx), а в виде простых текстовых лог файлов. При диагностике или решении проблемы иногда удобно, чтобы содержимое лог файла выводилось на экран в реальном времени и обновлялось по мере...

Как корректно отключить протокол IPv6 в Windows

Протокол IPv6 включен по умолчанию во всех версиях Windows, но при этом он практически не используется в домашних и небольших офисных сетях. Поэтому на просторах сети можно встреть большое количество рекомендации отключать протокол IPv6 как неиспользуемый (и даже вредный) при малейшей...

PowerShell: найти компьютеры ожидающие перезагрузки

При установке некоторых патчей или обновлений безопасности, для их применения требуется перезагрузка Windows. Однако, если пользователь постоянно откладывает перезагрузку или вы отключили автоматическую перезагрузку на серверах/рабочих станциях после установки обновления (например, через групповую политику Windows Update), в могут остаться хосты, которые...

Управление модулями PowerShell в Windows

Модули PowerShell – это собранные в пакет наборы командлетов PowerShell для управления различными компонентами Windows, серверными ролями, облачными сервисами. Модули используются для управления инфраструктурой и автоматизации различных задач. В централизованном репозитории PowerShell Gallery доступны тысячи готовых модулей (как от Microsoft, так...

Автозапуск мобильного хотспота (Wi-Fi точки доступа) в Windows

Многие пользователи используют свои ноутбуки с Windows в качестве виртуальной Wi-Fi точки доступа, раздающий Интернет другим устройствам. Главная проблема – такая программная точка доступа на Windows не включается автоматически после выключения или перезагрузки компьютера. В этой статье мы рассмотрим, как настроить...