PowerShell — это современная оболочка командной строки и язык сценариев от Microsoft, предназначенная для автоматизации и управления системами Windows. В отличие от классической CMD, она работает с объектами, а не с текстом, что делает её мощнее для администрирования. Основные команды позволяют управлять процессами, службами, сетью, пользователями и настройками безопасности. Разберём ключевые команды, их применение и частые ошибки.

Базовые команды для начала работы

Перед использованием сложных скриптов необходимо освоить основные команды. Они помогают ориентироваться в системе, получать информацию и выполнять простые операции.

  • — справочная система. Пример: покажет справку по команде Get-Process.
  • — поиск доступных команд. Например, Get-Command *network* найдет все команды, связанные с сетью.
  • — изменение политики выполнения скриптов. По умолчанию запуск скриптов запрещён, поэтому часто требуется установить .

Управление процессами и службами

Администраторы часто работают с запущенными процессами и службами. PowerShell предоставляет удобные cmdlet для их контроля.

  • — список процессов. Можно фильтровать по имени: Get-Process -Name "chrome".
  • — остановка процесса. Пример: Stop-Process -Name "notepad" -Force принудительно закрывает блокнот.
  • — статус служб. Get-Service -Name "WinRM" покажет состояние службы удалённого управления.
  • — перезапуск службы. Полезно после изменения конфигураций.

Работа с файлами и папками

Файловые операции в PowerShell мощнее, чем в CMD, благодаря объектному подходу.

  • — аналог dir в CMD. Показывает содержимое папки. С параметром -Recurse выводит вложенные каталоги.
  • — копирование файлов. Поддерживает регулярные выражения и фильтры.
  • — удаление. Будьте осторожны: без корзины, удаление необратимо.

Сетевые команды

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

  • — проверка connectivity. Заменяет ping и tracert. Пример: Test-NetConnection -ComputerName google.com.
  • — текущие сетевые настройки: IP, DNS, шлюз.
  • — изменение DNS-серверов. Требует прав администратора.

Сравнение PowerShell и CMD

Критерий
Подход Объектно-ориентированный Текстовый
Интеграция с Windows Глубокая, включая Active Directory Базовая
Автоматизация Мощные скрипты с логикой Простые batch-файлы
Безопасность Политики выполнения скриптов Ограниченная

Типичные ошибки и как их избежать

Новички часто сталкиваются с проблемами из-за непонимания особенностей PowerShell.

  • Неправильные кавычки: в PowerShell двойные кавычки позволяют раскрывать переменные, а одинарные — нет. Используйте их осознанно.
  • Отсутствие прав: многие команды требуют запуска от имени администратора. Проверяйте права через [Security.Principal.WindowsIdentity]::GetCurrent().Groups -match "S-1-5-32-544".
  • Игнорирование ExecutionPolicy: если скрипты не запускаются, проверьте текущую политику и при необходимости измените её.

Часто задаваемые вопросы

Чем PowerShell лучше обычной командной строки?

PowerShell использует объектно-ориентированный подход, а не текстовый вывод. Это позволяет гибко обрабатывать данные, автоматизировать сложные задачи и интегрироваться с системами вроде Active Directory.

Какие самые частые ошибки при работе с PowerShell?

Типичные ошибки: неправильное использование кавычек, отсутствие прав администратора, игнорирование политик выполнения скриптов. Для избежания проблем всегда проверяйте текущую политику выполнения командой Get-ExecutionPolicy.

Можно ли управлять сетевыми настройками через PowerShell?

Да, например, команда Get-NetAdapter показывает сетевые адаптеры, а Set-DnsClientServerAddress изменяет DNS-серверы. PowerShell предоставляет модуль NetTCPIP для комплексного управления сетью.