Windows powershell или командная строка

Интерпретатор командной строки (Command Line Interpreter, или CMD) и PowerShell — это приложения, используемые для прямого взаимодействия с операционной системой Windows. На первый взгляд у них много общего, но в этом тексте мы сконцентрируемся на ключевых отличиях командной строки CMD и PowerShell.

Что из себя представляет командная строка Windows?

Интерпретатор командной строки (более распространенное название — командная строка Windows) — это командная оболочка, которая появилась впервые в MS-DOS 1980-х годов. Она позволяла пользователю взаимодействовать с операционной системой (ОС) напрямую. 

Так, данная командная оболочка предоставляет среду для запуска приложений и различных утилит — выходные данные отображаются в том же окне. Командную строку можно использовать для создания и редактирования сценариев и сохранения их в пакетных файлах, для решения задач автоматизации в рамках одной системы.

Как открыть командную строку CMD

Прежде чем проводить сравнение Windows PowerShell и CMD, хорошо бы понять, где их найти и как с ними взаимодействовать.

Существует несколько способов открыть интерфейс командной строки. Классический метод — через поисковую строку, введя в ней слова cmd или командная строка.

Для большинства этот способ быстрее и удобнее, но существует и другая возможность получить доступ к cmd.exe:

  1. Комбинацией клавиш win+r открыть меню выполнения.
  2. Ввести в открывшееся меню команду cmd.

Также можно вручную открыть cmd.exe из его исходного местоположения: C:\Windows\system32\cmd.exe.

Для взаимодействия с ОС в командной строке нужно ввести команду и ее параметр.

Например, чтобы проверить соединение с удаленным хостом вводим:

ping -r google.com

Где ping — команда, -r — параметр команды, google.com — адрес удаленного хоста.

После этого командная строка выполняет введенную команду и реализует задачу или функцию, для которой она предназначена в Windows.

Команды должны быть введены в Command Prompt без ошибок. Неправильный синтаксис или написание могут привести к сбою команды или, что еще хуже, к выполнению неправильной команды или правильной команды неправильным способом. Если ввести команду без параметров, вы увидите подсказку с возможными параметрами:

Вывод подсказки в командной строке

Теперь мы можем перейти к PowerShell.

Что такое PowerShell Windows

PowerShell — это более продвинутая версия CMD. Кросс-платформенное решение для автоматизации задач, состоящее из оболочки командной строки, языка сценариев и структуры управления конфигурацией.

Подробнее о PowerShell читайте здесь → 

Ключевым отличием от CMD, заметным на старте работы, являются командлеты — упрощенные команды, используемые в среде PowerShell. Назначение команды PowerShell довольно легко интерпретировать по названию: они следуют простой закономерности — за глаголом идет существительное.

Сравним:

  • Команда CMD: ping
  • Командлет PowerShell: Test-Connection

Командлеты помогают управлять инфраструктурой Windows. Кроме того, они позволяют обычному пользователю получить удаленный доступ к реестру, файловой системе и пространству Windows Management Instrumentation (WMI) на системах.

Как современная командная оболочка PowerShell включает в себя лучшие функции других популярных оболочек. В отличие от большинства оболочек, которые принимают и возвращают только текст, PowerShell принимает и возвращает объекты .NET. Это программная платформа, в которой исполняются программы. Таким образом, нет необходимости разбирать текст для извлечения информации из выходных данных.

Как язык сценариев PowerShell обычно используется для автоматизации управления системами, позволяет создавать сложные сценарии с множеством условий. Он также используется для сборки, тестирования и развертывания решений, часто в средах CI/CD.

Открыть shell, как и командную строку, можно через поисковую строку и через меню выполнения, вписав в обоих случаях PowerShell. Также, в зависимости от версии операционной системы его можно найти в Power User Menu. Открывается оно комбинацией клавиш win+x или нажатием правой кнопки мыши на значок Windows.

Зачем PowerShell обычному пользователю

Разница PowerShell и CMD заключается в их использовании. Последний используется в основном для выполнения пакетных команд, устранения некоторых первичных неполадок. PowerShell, в свою очередь, может использоваться как для выполнения пакетных команд, так и для административных целей.

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

В качестве примера создадим простой выводящий текст сценарий, который состоит из одной команды:

  1. Создаем файл сценария (с расширением ps1), в котором будут прописаны команды:
Файл сценария

2. В окне PowerShell вводим & и путь к необходимому файлу:

Окно PowerShell для ввода данных

Теперь давайте разберем, как выполнять простое взаимодействие с системой при помощи CMD и PowerShell.

Как получить помощь?

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

В командной строке Windows используется команда help, чтобы отобразить список доступных команд.

В PowerShell, чтобы выполнить такое же действие используется команда Get-help.

Соберите сервер в конфигураторе под свои задачи. Или выберите из более 100 готовых.

Как изменить каталог?

Для изменения каталога (папки) в командной строке применяется команда Change Directory (cd). Эта команда позволяет перейти в другую папку с компьютера (изменить текущий каталог).

В PowerShell команда cd является псевдонимом для командлета Set-Location-Path <название каталога>, выполняющего идентичную функцию.

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

Для перехода в нужную папку с диска, выполните команду CD «название папки». Вложенные папки должны быть разделены символом бэкслэша: \. Например, если необходимо перейти в папку user, находящуюся в C:\users нужно ввести команду cd users\user. Используя команду cd .., можно вернуться на один каталог вверх.

Чтобы изменить диск, нужно ввести его название с двоеточием. Например, d:, чтобы переключиться на диск D. В PowerShell используется командлет set-location d:.

От каталогов перейдем к хранящимся в них файлам.

Как перечислить файлы в каталоге?

Команда dir (Directory) используется, чтобы перечислить файлы в каталоге через командную строку.

Отличие PowerShell – в используемой для перечисления файлов команде. Чтобы перечислить файлы в каталоге, используется команда Get-ChildItem.

Как переименовать файл?

Чтобы переименовать файл в каталоге, в cmd используется команда ren (rename). После нее сначала вводится имя файла, которое вы хотите заменить, затем вводится желаемое имя. Например, ren dir1 dir2.

В Windows PowerShell используется команда Rename-Item для переименования папки путем передачи пути к переименовываемой папке и целевого имени. Например, C:\Windows\dir1 dir2.

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

Ключевые отличия команд PowerShell от CMD

Завершим знакомство обычного пользователя с PowerShell и CMD сравнением команд и командлетов. Остановимся на нескольких примерах.

  • Ping: как мы писали ранее, аналогом cmd-команды ping является командлет Test-Connection в PowerShell.
Вывод командлета Test-Connection

Test-Connection в PowerShell
Альтернативная команда в CMD

Команда ping в CMD
  • Tracert: в PowerShell для определения маршрута следования данных в сети используется Test-NetConnection -TraceRoute.
Вывод командлета в PowerShell

Test-NetConnection -TraceRoute в PowerShell
Команда для определения маршрута следования данных в сети

Команда tracert
  • IPConfig: Get-NetIPConfiguration в PowerShell – эквивалент IPConfig.
Альтернативная команда в PowerShell

Get-NetIPConfiguration в PowerShell
IPConfig в командной строке

Вывод команды эквивалент IPConfig
  • Nslookup: Команда Resolve-DnsName выполняет DNS-запрос для указанного имени. Эта команда функционально аналогична инструменту nslookup, который позволяет пользователям запрашивать имена.
Команда Resolve-DnsName выполняет DNS-запрос для указанного имени

Командлет Resolve-DnsName
Команда nslookup в CMD
  • Netstat: Get-NetRoute в PowerShell получает текущие TCP-соединения.
Вывод Get-NetRoute

Командлет Get-NetRoute в PowerShell
Вывод команды netstat

Команда netstat
  • Route: Команда Get-NetRoute является аналогом route и получает информацию о маршруте IP из таблицы маршрутизации IP.
Вывод Get-NetRoute в PowerShell

Командлет Get-NetRoute в PowerShell
Вывод route в CMD

Команда route
  • Netsh: Netsh – служебная программа на базе командной строки, позволяющая показывать или изменять конфигурацию сети активного компьютера. Чтобы запустить ее, и в Windows Powershell, и в CMD используется одна и та же команда — netsh.
И в Windows Powershell, и в CMD используется одна и та же команда — netsh
  • Gpupdate: ее аналогом является команда Invoke-GPUpdate. Она обновляет параметры групповой политики, включая параметры безопасности, установленные на удаленных компьютерах.
Командлет Invoke-GPUpdate в PowerShell

Командлет Invoke-GPUpdate
GPUpdate

  • Gpresult: Команда Get-GPResultantSetOfPolicy получает и записывает в файл информацию о результирующих политиках (RSoP) для пользователя.
Командлет Get-GPResultantSetOfPolicy в PowerShell

Командлет Get-GPResultantSetOfPolicy
Вывод Gpresult в командной строке

Команда Gpresult

Разница между командной строкой CMD и Windows PowerShell: что выбрать

Мы завершили обзор, которые условно можно назвать «PowerShell против CMD». Очевидно, есть много причин, по которым Windows PowerShell заменила командную строку Windows по умолчанию в ОС Windows 10. Но, если вы привыкли к CMD, вам не обязательно переходить на PowerShell.

Хотя переход не будет болезненным: в среде PowerShell большинство команд из CMD работают. Все потому, что были созданы псевдонимы командной строки в PowerShell, которые позволяют интерпретировать старые команды cmd как новые команды PowerShell.

Какой инструмент выбрать — ваш выбор. Но PowerShell – более современен. В две основные функции PowerShell встроены дополнительные возможности. И эти возможности, или сценарии использования, являются причиной растущей популярности PowerShell.

Чтобы узнать, как старые команды CMD соотносятся с новыми командами PowerShell, используйте команду Get-Alias.

Реклама. АО «ТаймВэб». erid: 2W5zFG3MBNx


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

В этой статье мы разберемся, что такое командная строка, как она работает и чем отличаются ее встроенные инструменты – PowerShell и CMD. 

Что из себя представляет командная строка Windows?

Командная строка, также известная как CMD (Command Line Interpreter), – это инструмент который позволяет управлять файлами и папками в Windows с помощью ввода текстовых команд. Принцип ее работы напоминает старые операционные системы, где все действия выполнялись вручную через текстовый интерфейс. Теперь командная строка – это просто функция Windows, которая открывается в отдельном окне. 

Сегодня CMD остается важным инструментом, который чаще всего используется для двух типов задач:

  • устранение неполадок;
  • выполнение диагностических операций. 

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

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться


Как открыть командную строку CMD

В современных версиях Windows есть несколько способов открыть командную строку, что иногда может запутать начинающих пользователей. Они ошибочно полагают, что вызов CMD из разных мест интерфейса создает ее разные версии. 

На самом деле, независимо от способа запуска, открывается одна и та же командная строка, которая работает с одними и теми же командами. CMD является обычным исполняемым файлом в корневой системе Windows. 

Но для удобства и ускорения работы этот файл можно открыть из разных мест:

  1. Через строку поиска Windows: введите «cmd» или «командная строка» в поиске на панели задач.
  2. С помощью комбинации клавиш Win + R: откроется окно «Выполнить», в котором нужно ввести «cmd» и нажать Enter.
  3. Через проводник Windows: откройте проводник, перейдите по адресу: «C:\Windows\System32\cmd.exe» и запустите файл cmd.exe вручную.

Само управление устройством через командную строку предельно простое и интуитивно понятное, оно состоит из требуемой команды и ее значения (параметра).

Необходимо учитывать, что синтаксис команд в CMD критичен. Каждая черточка, символ или пробел играют важную роль, поэтому вводить команды следует без ошибок. Впрочем, если параметр указан неправильно, система автоматически покажет подсказку с доступными вариантами. Поэтому использование командной строки понятно даже для начинающих пользователей.

Что такое PowerShell Windows

PowerShell – это современная оболочка для Windows, которая представляет собой усовершенствованную альтернативу классической командной строке CMD. Основной особенностью PowerShell является ее расширенный функционал и интуитивно понятный интерфейс для работы с командами.

PowerShell появился в ответ на пожелания пользователей о необходимости более мощного инструмента для администрирования системы. 

Удобный синтаксис команд

В PowerShell можно вводить команды в более человекочитаемом формате. Например, для проверки интернет-соединения вместо ping используется команда Test-Connection – она более наглядна и понятна для пользователей без опыта работы с командной строкой.

Расширенный функционал 

В PowerShell собраны специализированные инструменты для работы с командами из Windows Management Instrumentation (WMI). Кроме того, оболочка поддерживает функционал языков программирования, таких как .NET, что позволяет автоматизировать задачи и управлять системой на более глубоком уровне.

Гибкость команд и поддержка скриптов

PowerShell позволяет создавать полноценные скрипты из нескольких команд для автоматизации задач. Это значительно упрощает работу системных администраторов и опытных пользователей. Так как команды стало проще вводить, воспринимать и запоминать. 

Способы доступа к PowerShell

PowerShell можно открыть несколькими способами:

  1. Через командную строку CMD: введите «powershell» и нажмите Enter.
  2. Через сочетание клавиш Win + X: в появившемся меню выберите «Windows PowerShell».
  3. Правый клик по кнопке Windows: в контекстном меню найдите «Windows PowerShell» или «Terminal» (в зависимости от версии Windows).

Зачем PowerShell обычному пользователю

Если командная строка CMD чаще используется для базового управления компьютером и папками, то PowerShell предоставляет гораздо больше возможностей, включая администрирование системы, автоматизацию задач и диагностику.

Основные преимущества PowerShell:

  1. Готовые сборки (скрипты). В PowerShell можно использовать готовые скрипты для выполнения целого набора команд одним кликом. 
  2. Создание собственных скриптов. Пользователи могут создавать свои скрипты с расширением .ps1, которые содержат команды для автоматизации действий. 

Основные различия: функциональность и возможности сценариев

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

Поддержка справки и помощи

В PowerShell есть встроенная система справки, которую можно вызвать командой:

Get-Help

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

Синтаксис команд

PowerShell и CMD используют разный синтаксис. Некоторые команды, привычные для CMD, могут быть недоступны в PowerShell, и наоборот. В PowerShell эти команды нередко «зашиты» внутри готовых скриптов или являются частью более сложных сценариев. 

Объектно-ориентированный подход

Главное отличие PowerShell от CMD заключается в объектно-ориентированном подходе:

  • В CMD команды работают на уровне текстового ввода и вывода данных.
  • В PowerShell команды обрабатывают объекты, которые открывают доступ к мощным инструментам автоматизации и управления.

PowerShell был разработан значительно позже командной строки CMD, поэтому он вобрал в себя более современные технологии и принципы работы. 

Команды PowerShell и CMD

Рассмотрим популярные команды PowerShell и их аналоги из классической командной строки.

Как изменить каталог

Смена активного каталога или переход между папками – это одна из базовых команд, с которой начинают знакомство пользователи. 

В CMD для этого используется команда:

cd путь\к\каталогу

В PowerShell аналогичная функция выполняется командой:

Set-Location -Path путь\к\каталогу

Особенности:

  • в обоих случаях путь указывается через обратные слэши \;
  • переключение диска осуществляется в PowerShell привычной командой d: или расширенной формой:
Set-Location d:

Как перечислить файлы в каталоге

Чтобы вывести список файлов и папок в текущем каталоге, в CMD применяется команда dir. В PowerShell используется ее более мощный аналог – команда Get-ChildItem:

Get-ChildItem C:\Users\Documents

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

Как переименовать файл

Переименование файла в CMD выполняется командой:

ren старое_имя новое_имя

В PowerShell используется более развернутая команда:

Rename-Item старое_имя новое_имя

Особенности:

  • указывается два параметра: путь к текущему файлу и его новое имя;
  • в отличие от ручного переименования в проводнике, команда позволяет автоматизировать этот процесс для нескольких файлов или папок.

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

Ключевые отличия команд PowerShell от CMD

Ниже приведем примеры наиболее часто используемых команд в CMD и их аналогов в PowerShell, которые называются командлетами.

Проверка интернет-соединения

В CMD для проверки доступности хоста используется команда ping:

30c35bee887ce3af48f9f1b53fe8e24cda0e8989.jpeg

В PowerShell для той же задачи используется командлет Test-Connection:

9b2cc919fa54cd5e6e7d6785e34668711053f423.jpeg

PowerShell предоставляет более детализированный результат выполнения команды с дополнительными полями (Source, Bytes, Time).

Отображение маршрута сетевого соединения

В CMD для просмотра маршрутов используется команда route print, а аналогичная функция в PowerShell выполняется командлетом Get-NetRoute.

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

Перспективы на будущее: наследие CMD и эволюция PowerShell

Классическая командная строка постепенно теряет свою актуальность при работе с папками. Основная причина этого заключается в ее ограниченной функциональности.

PowerShell эволюционировал из простой утилиты для выполнения команд в полноценный инструмент для разработчиков, системных администраторов и опытных пользователей. Сегодня он не только заменяет CMD, но и становится базовым компонентом Windows для ввода сложных задач и автоматизации процессов.

Выбор подходящего инструмента для решения задачи

Выбор между командной строкой CMD и PowerShell зависит от уровня подготовки пользователя и характера задач, которые нужно решить.

CMD

Командная строка остается удобным инструментом для начинающих пользователей, которые только знакомятся с архитектурой Windows. Она имеет минималистичный синтаксис и позволяет выполнять базовые команды.

PowerShell

PowerShell – это мощный инструмент, который решает задачи по настройке и управлению операционной системой:

  • автоматизация рутинных действий;
  • выполнение сложных операций администрирования;
  • обработка данных с использованием расширенных функций и командлетов.

При этом переход из CMD на PowerShell не вызывает трудностей, поскольку многие базовые команды полностью идентичны. 

Заключение

PowerShell содержит базовые возможности CMD и дополняет их расширенным набором команд. Он собрал под одной оболочкой лучшие возможности командной строки и автоматизации. С другой стороны, CMD остается минималистичным инструментом, который позволяет взаимодействовать с системой на глубинном уровне. Она полезна для выполнения базовых команд и понимания архитектуры Windows.

Уровень сложностиПростой

Время на прочтение4 мин

Количество просмотров16K

Краткая предыстория

Когда компьютеры только появились, пользователи общались с ними с помощью текстовых команд. Это так называемый CLI (Command Line Interface) — интерфейс командной строки. Всё, что вы могли сделать — это вводить команды вручную и смотреть результаты их отработки, которые выводились также в виде текста или символов. Например, в 1980-х годах MS-DOS была популярной операционкой, и пользователи должны были знать многие команды наизусть, вроде dir (показать файлы) или copy (скопировать файл), чтобы полноценно работать в ней.

Пример интерфейса командной строки

Пример интерфейса командной строки

С появлением GUI (Graphical User Interface) всё изменилось. Windows, macOS и другие операционные системы представили графический интерфейс с окнами, кнопками и мышью. Это сделало компьютеры доступными для миллионов людей, которые не хотели запоминать команды. Казалось бы, что «неудобный» CLI должен уйти в прошлое, но этого не произошло до сих пор. Более того, CLI продолжил активное развитие!

GUI + CLI

Сейчас CLI встроен в любую операционную систему, но видеть его использование чаще всего можно в фильмах про хакеров. Для большинства людей работа в интерфейсе командной строки считается «магией», которой владеют лишь «избранные». Вопрос: «В каком интерфейсе проще, лучше и удобнее работать – графическом или интерфейсе командной строки?» — изначально некорректен. А что, если не выбирать между ними, а научиться пользоваться эффективно обоими?

Командная строка — это как суперспособность для тех, кто знает, как её использовать и дальше я попытаюсь вам это доказать на примерах.

CLI в Windows: CMD и PowerShell

Давайте рассмотрим Windows, как самую массовую ось. Для Windows есть два основных инструмента для работы с командной строкой: CMD и PowerShell.

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

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

PowerShell — это эволюция CMD. Инструмент сочетает в себе мощь CLI с гибкостью современного языка программирования. Его и будем использовать.

Скачать PowerShell

Хватит лирики, давайте уже рассмотрим примеры. Рассматривая примеры, задумайтесь, сколько бы времени у вас заняло делать эту операцию через графический интерфейс?

Лайфхак!

Если примеры ниже покажутся вам сложными, то это только кажется. Для написания скриптов для PowerShell больше не нужно знать язык программирования. Используйте ChatGPT, GigaChat, любой чат-бот, которым вы уже наверняка пользуетесь: «Напиши мне однострочный скрипт PowerShell, который…» и чат-бот вам быстро выдаст результат.

5 примеров того, как PowerShell может сэкономить вам часы

Пример 1 — Массовое переименование файлов

В графическом интерфейсе каждый файл надо переименовывать отдельно, что долго и муторно. Но есть выход:

Get-ChildItem -Path "C:\Photos" | ForEach-Object { Rename-Item -Path $_.FullName -NewName ("Otpusk_" + $_.Name) }

Скрипт переименует все файлы в папке C:\Photos, добавив к ним префикс «Otpusk_» и это займёт менее 1 сек.

Работа скрипта в PowerShell

Работа скрипта в PowerShell

Пример 2 — Поиск и удаление пустых папок

Как это вообще сделать в графическом интерфейсе? В CLI — легко:

Get-ChildItem -Path "C:\Data" -Directory -Recurse | Where-Object { (Get-ChildItem -Path $_.FullName).Count -eq 0 } | Remove-Item -Force

Скрипт найдёт и удалит все пустые папки в C:\Data.

Пример 3 — Поиск файлов по определённым условиям

Поиск в GUI Windows конечно же есть, но мне не нравится скорость его работы и удобство задания условий поиска. Поэтому иногда файлы гораздо быстрее найти с помощью PowerShell:

$yesterday = (Get-Date).AddDays(-1).Date; Get-ChildItem -Path C:\ -Recurse -File -ErrorAction SilentlyContinue | Where-Object { $_.Extension -eq ".docx" -and $_.CreationTime.Date -eq $yesterday } | ForEach-Object { Write-Host "Файл: $($_.FullName), Дата создания: $($_.CreationTime)" }

С этим скриптом вы можете легко и быстро найти все .docx файлы, созданные вчера на диске C. Подобные сценарии актуальны, когда сохранил куда-то файл, а куда — не посмотрел.

Пример 4 — автоматизация каких-то действий

Например, вам нужно в определённой папке найти все jpg размером от 2 Мб до 5 Мб и получить архив с ними в целевой папке. Это можно сделать в GUI, но потребуется сделать несколько действий и при этом есть риск совершить ошибку, отбирая картинки по критериям. Скрипт не ошибётся:

$sourceFolder = "C:\Photos"; $destinationFolder = "C:\FilteredPhotos"; $archivePath = "$destinationFolder\PhotosArchive.zip"; Get-ChildItem -Path $sourceFolder -Recurse -File -Include *.jpg | Where-Object { $_.Length -gt 2MB -and $_.Length -lt 5MB } | Copy-Item -Destination $destinationFolder -Force; Compress-Archive -Path "$destinationFolder\*" -DestinationPath $archivePath -Force; Remove-Item -Path "$destinationFolder\*" -Exclude PhotosArchive.zip -Force

Скрипт в целевой папке (включая подпапки, если они есть) находит jpg по критериям размера (от 2 до 5 МБ), копирует их во временную папку, затем архивирует и удаляет фотки, оставляя только архив.

Пример 5 — управление процессами

Немного специфичный пример, но иногда полезная функция, когда какой-то процесс или процессы забили процессор, от чего компьютер стал тормозить:

Get-Process | Where-Object { $_.CPU -gt 30 } | Stop-Process -Force

Скрипт завершит все процессы, которые используют больше 30% CPU.

Итого

CLI — это не пережиток прошлого, а мощный инструмент, который помогает решать некоторые задачи существенно быстрее и эффективнее, чем если их решать через графический интерфейс. PowerShell позволяет автоматизировать рутину, управлять системой и работать с данными на новом уровне.

Если вы ещё не пробовали PowerShell, самое время начать. Это как получить суперспособность для работы с компьютером.

Это моя первая статья на Хабре. Поддержите меня вашими реакциями и комментариям. Обязательно напишите мне, если данная статья действительно помогла вам сэкономить своё время. У этой статьи будет продолжение о том, как скрипты PowerShell можно сохранять и запускать по расписанию.

Подписывайтесь на мой канал в Телеграм, куда я также буду постить полезный контент!

Windows PowerShell and command prompt (CMD) are both essential command-line interface tools for Windows administrators, allowing them to execute commands, manage system processes and automate administrative tasks. While CMD has been a foundational component of Windows since the MS-DOS era, PowerShell has emerged as a more advanced and powerful scripting language, enhancing system management and automation capabilities.

This blog provides a detailed comparison between PowerShell and CMD, highlighting their strengths and weaknesses and examining practical examples and key differences. The goal is to help Windows professionals understand when to choose one tool over the other.

What is PowerShell?

PowerShell is a powerful command-line interface and scripting language, primarily aimed at system administrators and IT professionals. PowerShell was designed to automate administrative tasks, manage configurations, and provide detailed control over the Windows operating system and its components.

One of the defining characteristics of PowerShell is its object-oriented nature. Because PowerShell is built on top of .NET framework. PowerShell commands (known as cmdlets) return objects rather than plain text output. Each object contains properties and methods, which represent the actions that can be performed on the object.

PowerShell’s close integration with the .NET framework means that users can leverage a vast library of classes, methods and properties. PowerShell is also designed to work seamlessly with Windows Management Instrumentation (WMI), which provides a powerful way of accessing system management information. WMI allows PowerShell to retrieve system properties, manage hardware components and interact with the operating system at a deeper level.

What is Command Prompt (CMD)?

CMD is a command-line interpreter available in Windows operating systems that allows users to run Windows commands and scripts for file management, directory navigation and system configuration. Its simplicity makes it an ideal choice for users who need to perform basic tasks without the complexity of an advanced scripting language.

A key feature of CMD is its capability to run batch files. A batch file is a script file containing a series of commands that are executed sequentially, this way users can automate repetitive tasks, such as backing up files, modifying system settings, or installing applications.

CMD provides direct access to operating system features and configurations. Users can access system settings, network configurations and execute system commands without navigating through a GUI, which can be more efficient for certain tasks, especially troubleshooting. CMD allows access to system environment variables like %PATH%, %TEMP% and %USERNAME%, which  are used to define system settings and configurations and can be referenced in commands and scripts.

Key Differences Between PowerShell and (CMD) Command Prompt

PowerShell and command prompt are designed with different functionalities and user needs in mind. Below is a detailed feature comparison that highlights the key differences.

Feature PowerShell Command Prompt (CMD)
Cross-platform availability The PowerShell Core (v7 and later) edition of PowerShell works on Windows, Linux and macOS. CMD is limited to Windows environments only.
Command help and community support PowerShell offers detailed, structured help for cmdlets, functions and scripts, including examples, via the Get-Help cmdlet. It also has extensive online documentation and an active community, offering troubleshooting, tutorials and advanced use cases. CMD provides basic information and options about command syntax via the Help command but lacks in-depth guidance. CMD’s community is smaller than that of PowerShell, and its documentation is less comprehensive.
Output types PowerShell outputs .NET objects, which can be easily manipulated, so it is suitable for more advanced processing of data and complex operations. CMD outputs plain text. While you can use redirection or piping, all output is a simple stream of characters, making it less flexible for complex data manipulation.
Command chaining PowerShell supports advanced command chaining using pipes (|), which allow passing of objects between cmdlets for complex workflows. CMD allows basic chaining using operators like (|), but only text is passed between commands. This limits the types of operations you can perform.
Scripting capabilities PowerShell uses .ps1 scripts with advanced scripting elements like functions, loops and conditional statements, making it ideal for automation. CMD supports batch scripting with simple command sequences. It is suitable for basic automation and file management tasks. Scripts are written in .bat files.
Object manipulation PowerShell is excellent at manipulating objects due to its object-oriented nature, allowing for efficient handling of different data types and complex tasks. CMD is limited to text manipulation and lacks the ability to handle structured data easily, so more complex commands are required for similar outcomes.
Remote management PowerShell has built-in capabilities for executing commands remotely, making it an essential tool for system administrators managing multiple machines. CMD has limited remote management options, so external tools or scripts are needed for remote operations.
User interface PowerShell supports a richer user interface with features like tab completion, syntax highlighting and access to Windows Presentation Foundation (WPF) for graphical elements. CMD has a basic user interface with no advanced features like tab completion or syntax highlighting, so it often requires more exact command input.
Command aliases and flexibility PowerShell includes cmdlet aliases (like gci for Get-ChildItem), making it more user-friendly. CMD does not have many aliases and its command syntax is more rigid.
Error handling PowerShell has advanced and structured error handling using try, catch and finally. This allows for better control and debugging of errors. CMD offers limited error handling via if error level, which is less useful and not as user-friendly as PowerShell’s approach.
Task automation PowerShell’s object-oriented nature and full scripting language makes it excellent for automating complex workflows, system administration and bulk operations across machines. CMD’s batch scripting is suitable for smaller, straightforward automation tasks, like file management or system diagnostics.
Cross-platform scripting PowerShell scripts can be executed on Windows, Linux and macOS, making it a versatile choice for system administrators working across platforms. CMD batch files (.bat) are exclusive to Windows, limiting their use in cross-platform environments.
Ease of use PowerShell is more complex; its advanced capabilities mean there is a steeper learning curve. For basic tasks, users may find it overkill. CMD is simpler, which makes it easier for beginners and other users to perform straightforward tasks like navigating directories or listing files.
Troubleshooting/network testing PowerShell provides advanced cmdlets for detailed network diagnostics, such as Test-Connection (which is like ping but more powerful) and Get-NetIPAddress. CMD is preferred for network testing because commands like ping, ipconfig, tracert and netstat are lightweight.

Why CMD Still Matters

Despite PowerShell’s dominance in system administration and automation, CMD still remains valuable in certain situations, such as the following:

  • Many legacy systems and applications still rely on CMD and batch files for functionality. With CMD, batch files are easy to create and edit.
  • CMD’s simplicity makes it ideal for basic tasks such as file management, where it offers a quick and straightforward approach. It provides direct access to system operations with minimal overhead.
  • CMD is particularly useful for quick operations when Windows is not fully operational, such as performing diagnostics or repairs.
  • While PowerShell can handle network-related tasks, CMD’s simplicity makes it faster for basic commands. For example, the ping, tracert and ipconfig commands often used by network administrators enables quick troubleshooting and offer immediate, easy-to-read feedback.

 Overall, CMD is still a practical tool for straightforward tasks that don’t require the complexity of PowerShell.

PowerShell and CMD Use Cases: When to Use Each Tool

PowerShell Use Cases: Automation and Beyond

PowerShell excels in automating repetitive tasks such as system updates, user management and data reporting. By writing scripts or using cmdlets, IT professionals can save time and reduce human error. Key benefits include the following:

  • PowerShell is highly extensible, you can build and add your own functionality via custom cmdlets, functions and modules.
  • One of the most significant improvements to PowerShell in recent years is its multi-platform capability. PowerShell Core (v7 and beyond) runs on Windows, Linux and macOS, enabling system administrators and DevOps engineers to automate processes regardless of the underlying operating system.
  • Administrators can automate cloud infrastructure management for platforms like Azure, AWS and Google Cloud, as well as write scripts for deployment, CI/CD pipelines, or orchestration tools like Jenkins, Docker and Kubernetes.
  • PowerShell is ideal for handling complex administrative tasks that require flexibility, logic and integration with other systems. These tasks can involve dealing with large datasets, interacting with APIs and managing intricate workflows.
  • Administrators can automate the creation, modification and deletion of Active Directory objects such as users, groups and computers, as well as configuration of new systems, including the installation of software, updates and security policies.

CMD Use Cases: Quick and Simple Commands

The command prompt is a simple, fast and immediate tool for basic administrative and troubleshooting tasks, including those described below.

Network Diagnostics and Troubleshooting

CMD provides several useful commands for quickly identifying network-related problems:

  • ipconfig — Quickly check network configuration details, especially when troubleshooting IP issues.
  • ping — Test whether your computer can reach another device on the network or the internet.
  • tracert — Identify network bottlenecks or troubleshoot slow internet connections by seeing where delays occur.
  • netstat — Identify active connections and troubleshoot network-related problems.

File and Directory Management

CMD provides several commands for managing files and directories. For example, the following commands are essential for quick administrative tasks and basic file system navigation:

  • dir — Quickly view the files and directories in a folder.
  • cd — Navigate between directories quickly from the command line.
  • copy — Quickly copy files from one location to another.
  • del — Delete files.

Windows Recovery and Safe Mode Operations

CMD is frequently used in Windows Recovery Environment (WinRE) to troubleshoot and fix issues when the operating system is not booting properly. In recovery mode, CMD can be used to perform system repairs and restoration tasks that would otherwise require a GUI. For example, CMD can be used to:

  • Fix bootloader issues and repair the Master Boot Record (MBR). Resolve boot-related issues preventing Windows from starting.
  • Restore the system if it fails to boot or has become unstable. Access system restore points from the command prompt to restore the system to a previous state.
  • Fix problems related to booting or missing operating systems in dual-boot setups. Modify or rebuild the Boot Configuration Data (BCD) store.

PowerShell and CMD: Practical Examples

When it comes to administrative tasks in Windows, both PowerShell and the command prompt are powerful tools, but they handle tasks differently. Below, we compare the difference between PowerShell and CMD when it comes to three common administrative tasks: creating user accounts, querying event logs and performing file operations.

Creating User Accounts

PowerShell

With PowerShell, you can use New-LocalUser to create a local machine user, and New-ADUser to create user accounts in Active Directory, as follows:

New-LocalUser -Name "John.Doe" -Password (ConvertTo-SecureString "Password123#" -AsPlainText -Force) -FullName "John Doe" -Description "A new user account"
New-ADUser -Name "Josh Brolin" -Path "OU=NBC,DC=milkyway,DC=local" -GivenName "Josh" -Surname "Brolin" -SamAccountName "Josh-Brolin" -AccountPassword (ConvertTo-SecureString -AsPlainText “webdir123R” -Force ) -ChangePasswordAtLogon $True -DisplayName "Josh Brolin" -Enabled $True

CMD

To create a user account from CMD, use the net user command, as shown in these examples:

net user john.doe P@ssw0rd /add
net user John.Doe Password123# /add /fullname:"John Doe" /comment:"A new user account"

Querying Event Logs

PowerShell

PowerShell provides cmdlets specifically designed to retrieve event logs, making it quite powerful for this task. For instance, you can use either of the following commands to get the last 10 entries from the System and Application event logs:

Get-EventLog -LogName System -Newest 10
Get-EventLog -LogName Application -EntryType Error -Newest 10

CMD

In CMD, querying event logs requires using the wevtutil command, which is less user-friendly. Here is the command to get the last 10 entries from the System event log:

wevtutil qe System /c:10 /f:text

Performing File Operations

Both PowerShell and CMD enable copying, moving and deleting files, but PowerShell provides more advanced features, such as handling file properties.

PowerShell

PowerShell provides cmdlets like Copy-Item, Move-Item and Remove-Item to manage files, as illustrated here:

Copy-Item -Path "C:\Logs\Log1.txt" -Destination "C:\Backup\Log1.txt"

Move-Item -Path "D:\Backup\Log1.txt" -Destination "E:\Archive\Log1.txt"

Remove-Item -Path "E:\Archive\Log1.txt" -Force

CMD

In CMD, you can use the copy, move and del commands for file operations:

copy C:\Logs\Log1.txt C:\Backup\Log1.txt
move D:\Backup\Log1.txt E:\Archive\Log1.txt
del E:\Archive\Log1.txt

Transitioning from CMD to PowerShell

Key Concepts to Understand

Command prompt users who want to take advantage of the more robust capabilities of PowerShell need to understand the following key points before converting their scripts.

  • Command structure — CMD uses executable commands like dir and copy, while PowerShell uses cmdlets that follow a verb-noun structure, such as Get-ChildItem and Copy-Item.
  • Object-oriented — PowerShell deals with objects rather than plain text, which enables more complex data manipulation.
  • Pipeline — PowerShell’s pipeline feature allows you to pass objects between cmdlets, enabling chaining of commands.

Learning Basic PowerShell Cmdlets

Start with some basic cmdlets that have CMD equivalents, like those in the table below. Take time to practice these and other fundamental cmdlets.

Task CMD Command PowerShell Cmdlet
List directory contents dir Get-ChildItem
Copy a file copy Copy-Item
Move a file move Move-Item
Delete a file del Remove-Item
View network configuration ipconfig Get-NetIPConfiguration
Change current directory cd Set-Location
Ping a server ping Test-Connection

Converting CMD Batch Scripts to PowerShell Scripts

To convert CMD scripts to PowerShell, convert each CMD command to its PowerShell equivalent. However, remember that while some basic commands in batch scripts will translate directly to PowerShell, there are important differences in syntax and capabilities. In addition, remember that CMD batch scripts are typically saved with the .bat extension, while PowerShell scripts are saved with the .ps1 extension.

For example, here is a CMD batch script:

@echo off

echo Copying file...

copy C:\Temp\Log1.txt D:\Backup\

echo Done!

And here is the equivalent PowerShell script:

Write-Host "Copying file..."

Copy-Item -Path "C:\Temp\Log1.txt" -Destination "D:\Backup\"

Write-Host "Done!"

Why PowerShell Is the Future

Microsoft is increasingly positioning PowerShell as the default command-line tool, gradually replacing the traditional command prompt. Accordingly, adopting PowerShell is not just a choice, but a necessity for anyone aiming to stay ahead in modern IT environments. Key benefits include the following:

  • Designed for modern environments — PowerShell offers capabilities that rival tools like Bash while seamlessly integrating with Microsoft products and cloud services.
  • Easy cloud management — It excels in managing Azure resources, with specialized cmdlets for tasks like automating deployments, managing virtual machines and configuring services.
  • Efficient email management — PowerShell also improves management of both on-premises Exchange and Exchange Online, allowing administrators to automate bulk tasks, configure policies, improve efficiency and reduce manual errors.

PowerShell also simplifies user and group management, reporting, and compliance tasks, further cementing its role as the future of system administration.

Conclusion

When choosing the command prompt vs PowerShell, it is important to consider the strengths of each tool. PowerShell excels in automation, offering advanced scripting capabilities and efficient system management. Its object-oriented design enhances data manipulation and integrates seamlessly with modern technologies. However, CMD remains useful for quick, simple commands and file management, especially for users who prefer a straightforward interface.

If you have not yet explored PowerShell, start by experimenting with basic commands and scripts, and then move on to translating your current CMD scripts to PowerShell. Embracing PowerShell can significantly improve your efficiency and equip you with the skills needed for navigating modern IT environments.

Frequently Asked Questions About CMD vs PowerShell

Is PowerShell the same as command prompt?

No, they are separate tools.

Can PowerShell replace CMD entirely?

PowerShell can replace CMD for most users because it supports a broader range of functionalities, including automation, scripting and integration with modern technologies. However, CMD may still be used for basic commands or quick tasks by users who prefer its simplicity or need to support legacy applications or processes.

Is CMD still relevant for Windows administrators?

While PowerShell is generally recommended for more complex operations, CMD still serves as a simple and efficient option for less demanding tasks. In addition, some legacy scripts, applications and utilities require CMD.

What are the biggest advantages of PowerShell over CMD?

Key benefits of PowerShell vs CMD include the following:

  • Advanced scripting and automation — PowerShell enables the creation of complex scripts to automate a wide range of tasks, from server management to provisioning cloud resources.
  • Object-oriented approach — Unlike CMD, PowerShell returns structured data that can be easily manipulated, filtered and passed through pipelines, providing greater flexibility and precision.
  • Cloud integration — PowerShell seamlessly integrates with cloud platforms like Azure, Microsoft 365 and AWS, enabling administrators to manage cloud resources, deploy applications and automate workflows.
  • Cross-platform compatibility — With PowerShell Core, administrators can manage systems across Windows, Linux and macOS using a single tool.
  • Integrated security — PowerShell includes built-in security features such as script signing, execution policies and secure remote connections, which are crucial for maintaining a secure IT environment.

Since 2012, Jonathan Blackwell, an engineer and innovator, has provided engineering leadership that has put Netwrix GroupID at the forefront of group and user management for Active Directory and Azure AD environments. His experience in development, marketing, and sales allows Jonathan to fully understand the Identity market and how buyers think.

Automate Active Directory Groups & User Management

Командная строка долгое время является неотъемлемой частью Windows, и за это время для нее было создано множество различных утилит. PowerShell задумывался в том числе и как альтернатива командной строке, однако сможет ли он полностью заменить ее ?

Для примера я взял наиболее распространенные утилиты командной строки, применяемые в администрировании, и попробовал подобрать им замену в PowerShell. Вот что из этого получилось.

Ping

На замену утилите ping в PowerShell пришел командлет Test-Connection, входящий в состав модуля Microsoft.PowerShell.Management. Для примера пропингуем сервер SRV3 командой:

Test-Connection -ComputerName SRV3

Можно указать для проверки сразу несколько серверов, например перечислив их через запятую:

Test-Connection -ComputerName SRV3, SRV4

или считав из файла:

Test-Connection -ComputerName (Get-Content serverlist.txt)

Еще командлет умеет запускать проверку сразу с нескольких точек. Например, для проверки сервера SRV4 с локального компьютера и с сервера SRV3 воспользуемся следующей командой:

Test-Connection -Source localhost, SRV3 -ComputerName SRV4

Параметр -Source появился только в PS 3.0. В некоторых случаях очень удобно, однако при его использовании может понадобится ввести учетные данные:

Test-Connection -Source localhost, SRV3 -ComputerName SRV4 -Credential Contoso\administrator

командлет Test-Connection

Примечание. Командлет использует класс Win32_PingStatus, поэтому для проверки соединения можно воспользоваться командой Get-WmiObject Win32_PingStatus, ее действие аналогично команде Test-Connection.

Tracert

Следующее средство, обычно применяемое после ping — это трассировка с помощью утилиты tracert. В PowerShell для этих целей можно задействовать командлет Test-NetConnection из модуля NetTCPIP. Не смотря на похожее название, по функционалу он довольно сильно отличается от предыдущего командлета, хотя включает в себя и его возможности. Кроме проверки TCP соединения вывод может включать в себя список IP интерфейсов, разрешение DNS-имен (DNS lookup), правила IPsec и проверку возможности установления соединения. В самом простом варианте команда выглядит так:

Test-NetConnection -ComputerName ya.ru

Для пошагового вывода в стиле tracert можно сделать так:

Test-NetConnection -ComputerName ya.ru -TraceRoute

Также можно указать определенный порт и сделать детализованный вывод:

Test-NetConnection -ComputerName ya.ru -Port 80 -InformationLevel Detailed

командлет Test-NetConnection

IPConfiig

Первое, для чего используют Ipconfig — это просмотр сетевых настроек. В PowerShell для этих целей можно воспользоваться командлетом Get-NetIPConfiguration. Так для подробного вывода настроек для всех сетевых интерфейсов (аналог ipconfig /all) введем команду:

Get-NetIPConfiguration -All -Detailed

командлет Get-NetIPConfiguration

Для операций с клиентом DNS воспользуется командлетами PowerShell из модуля DNSClient. Для очистки содержимого локального кеша DNS вместо ipconfig /flushdns выполним команду Clear-DnsClientCache, для перерегистрации вместо ipconfig /registerdns — команду Register-DnsClient. Вывести содержимое кеша (ipconfig /displaydns) можно командой Get-DnsClientCache. Также можно выводить не все содержимое кеша, а посмотреть только определенную запись, например:

Get-DnsClientCache -Entry www.bing.ru

командлет Get-DNSClientCache

Nslookup

Для проверки DNS имен вместо nslookup можно воспользоваться командлетом Resolve-DnsName, входящий в состав модуля DNSClient. Синтаксис у них похожий, например:

Resolve-DnsName -Name SRV3

Можно указать тип записи (A, PTR, SRV), указать, откуда брать данные и выбрать определенный DNS-сервер, отличный от дефолтного:

Resolve-DnsName -Name SRV3 -Type A -DNSOnly -Server 192.168.0.1

командлет Resolve-DNSName

Netstat

Утилита Netstat — еще один инструмент сетевой диагностики, показывающий сетевые подключения. Заменим ее командлетом Get-NetTCPConnection. Следующая команда выведет все подключения к интернету, имеющие статус установленных (Established):

Get-NetTCPConnection -State Established -AppliedSettings Internet | ft -auto

командлет Get-NetTcpConnection

Route

Для управления маршрутизацией вместо утилиты Route воспользуемся несколькими командлетами из модуля NetTCPIP. Для примера попробуем добавить новый постоянный маршрут до сети 172.16.0.0 с маской 255.255.0.0 и шлюзом 192.168.0.1 для интерфейса с номером 3. Вот так это можно сделать с помощью Route:

Route -p add 172.16.0.0 mask 255.255.0.0 192.168.0.1 -if 3

А вот так при использовании PowerShell:

New-NetRoute -DestinationPrefix ″172.16.0.0/16″ -InterfaceIndex 3 -NextHop 192.168.0.1

Для просмотра таблицы маршрутизации вместо route print возьмем командлет Get-NetRoute.  Выведем все маршруты для протокола IPv4 командой:

Get-NetRoute -AddressFamily IPv4 | ft -auto

New-NetRoute и Get-NetRoute

В PS 4.0 появился интересный командлет Find-NetRoute, с помощью которого можно вывести маршрут для одного конкретного  IP-адреса, например:

Find-NetRoute -RemoteAddress 10.0.0.1

Для удаления маршрута (вместо route delete) также есть отдельный командлет Remove-NetRoute, например:

Remove-NetRoute -DestinationPrefix ″172.16.0.0/16″ -InterfaceIndex 3 -NextHop 192.168.0.1 -Confirm:$false

Для изменения уже созданного маршрута вместо route change можно воспользоваться связкой Remove-NetRoute&New-NetRoute.

Netsh

Утилита Netsh (Network shell) предназначена для выполнения различных задач по настройке сети. Поскольку функционал ее достаточно широк, для сравнения возьмем одну из типичных задач по настройке сетевого интерфейса.  Предположим, нам необходимо проверить настройки сетевого интерфейса, и если включен DHCP — отключить его и настроить статическую адресацию. С помощью netsh это будет выглядеть следующим образом:

Netsh interface IPv4 show addresses
Netsh interface IP set address ″Ethernet″ static 192.168.0.11 255.255.255.0 192.168.0.1
Netsh interface IP add DNSServers ″Ethernet″ 8.8.8.8

И тоже самое, но уже с помощью PowerShell:

Get-NetIPAddress -InterfaceIndex 3 -AddressFamily IPv4
Set-NetIPInterface -InterfaceIndex 3 -Dhcp disabled
New-NetIPAddress -InterfaceIndex 3 -IPAddress 192.168.0.11 -PrefixLength 24 -DefaultGateway 192.168.0.1
Set-DNSClientServerAddress -InterfaceIndex3 -ServerAddresses (″8.8.8.8″)

изменение сетевых настроек из PowerShell

Что интересно, для изменения сетевых настроек придется их удалить и создать заново. Например IP-адрес можно изменить так:

Remove-NetIPAddress -InterfaceIndex 3 -IPAddress 192.168.0.11 -PrefixLength 24 -DefaultGateway 192.168.0.1 -Confirm:$false
New-NetIPAddress -InterfaceIndex 3 -IPAddress 192.168.0.12 -PrefixLength 24 -DefaultGateway 192.168.0.1 -Confirm:$false

изменение IP-адреса из powerShell

Примечание. Для изменения IP-адреса логично было бы воспользоваться специально предназначенным для этого командлетом Set-NetIPAddress, но не тут-то было 🙂 При попытке изменить настройки этот командлет стабильно выдает ошибку. Как выяснилось, этот командлет не может изменить сам IP-адрес, а только некоторые его свойства.

Gpupdate и Gpresult

Для обновления групповых политик вместо Gpupdate в модуле GroupPolicy есть командлет Invoke-GPUpdate. Синтаксис у них практически один и тот же, например принудительное обновление политик пользователя выполняется командой:

Gpupdate /target:user /force
Invoke-GPUpdate -Target user -force

Ну и посмотреть результирующие политики вместо Gpresult можно командлетом Get-GPResultantSetOfPolicy. Осуществить вывод результатов в HTML-файл можно командой:

Get-GPResultantSetOfPolicy -ReportType Html -Path C:\gpo.html

командлет Invoke-GPUpdate

CMD vs PowerShell

Как видите, PowerShell вполне в состоянии заменить большинство утилит командной строки. Однако остается еще один вопрос —  зачем это нужно.

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

Из недостатков — большинство описанных в статье команд требуют PowerShell 3.0, а некоторые вообще есть только в четвертой версии. Также некоторые командлеты (напр. Set-NetIPAddress) работают криво не совсем так, как должны.

Ну а на стороне CMD проверенный временем функционал, который есть в любой версии Windows. Кроме того, для простых задач администрирования cmd использовать привычнее, а где-то и удобнее.

Итак, что же лучше — CMD или PowerShell ? Не знаю как вы, а я не готов однозначно ответить на этот вопрос. Впрочем, ничто не мешает нам пользоваться и тем и другим.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Power plan assistant for windows
  • Canon pixma ip1600 драйвер windows 10 64 bit
  • Изменить курсор мыши windows 10 без скачивания
  • Apache настроить ssl windows
  • Driver airpods pro windows 10