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 позволяет пользователям запрашивать имена
Команда 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.
Команда netsh в PowerShell
Команда netsh в CMD
И в 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.

Своим терпением мы можем достичь большего, чем силой (Э. Берк).

PowerShell против CMD (командная строка). В чем ключевое отличие

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

Разница между CMD и PowerShell заключается в том, что CMD — это «традиционный» стиль командной строки или интерактивной оболочки. Он очень удобен в использовании, и тысячи людей могут его без проблем выполнить. С другой стороны, PowerShell — это встроенная, но сложная программа командной строки Microsoft, которая значительно уступает оболочкам, доступным для систем на базе Linux или Unix. Большинство команд командной строки легко использовать в PowerShell изначально или через псевдонимы.

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

CMD или «интерфейс командной строки» — это не что иное, как серия простых команд. Эти команды позволяют выполнять простые административные задачи и взаимодействовать с любым объектом Windows в операционных системах Microsoft Windows. Напротив, интерфейс командной строки PowerShell позволит вам выполнять более сложные задачи и сложные сценарии.

PowerShell делится на две основные категории: «Обычные» и «Особые». Типичный интерфейс PowerShell не имеет особых возможностей. Точно так же CMD разбита на серию команд. Итак, в чем разница между PowerShell и cmd?

PowerShell против командной строки: таблица сравнения

PowerShell Командная строка
PowerShell был представлен в 2006 году. CMD был представлен в 1981 году.
Вы можете запустить его, набрав PowerShell. Вы можете запустить его, набрав CMD.
Он поддерживает как пакетные, так и командлеты PowerShell. На CMD следует запускать только пакетные команды.
Он также поддерживает создание псевдонимов для командлетов, чтобы пользователи могли легко перемещаться между функциями. CMD не может создавать псевдонимы команд.
У вас есть свобода передавать выходные данные командлета другому командлету. Вы никогда не сможете передать результат одной команды другой.
PowerShell возвращает результат в виде объекта. CMD возвращает только текст.
Мы можем запустить последовательность командлетов в сценарии. В cmd вторая команда будет запущена, если первая команда будет завершена.
Вы можете использовать команду Help, чтобы с легкостью получить информацию о любых командлетах. В CMD нет такой опции помощи.
PowerShell имеет интегрированную среду сценариев (ISE). Это просто интерфейс командной строки.
Вы можете получить доступ к библиотекам программирования, потому что они построены на основе .NET Common Language Runtime (CLR). Нет доступа к библиотекам
Вы можете напрямую интегрировать его с WMI. Если вам нужна интеграция с WMI, вам потребуются внешние плагины.
С облачными продуктами Microsoft проще подключиться. CMD не может подключиться к продуктам Microsoft Online.
Он поддерживает системы Linux. CMD не поддерживает системы Linux.
Вы можете запускать все типы программ с помощью PowerShell. ssCMD предназначен только для программ консольного типа.

Powershell против cmd: Несколько примеров

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

CMD:

cd /d D:

PowerShell:

Set-Location D:

PowerShell против CMD (командная строка). В чем ключевое отличие

Вывод: Обе команды, приведенные выше, были использованы для изменения текущего местоположения каталога на диск D.

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

CMD:

Dir

PowerShell:

Get-Childitem

PowerShell против CMD (командная строка). В чем ключевое отличие

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

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

CMD:

rename d:\old.txt new.txt

PowerShell:

Rename-Item "d:\new.txt" -NewName "old.txt"

PowerShell против CMD (командная строка). В чем ключевое отличие

Вывод: данные команды используются для переименования любого конкретного файла.

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

CMD:

Help

PowerShell:

Get-Help

PowerShell против CMD (командная строка). В чем ключевое отличие

Вывод: Если вы не являетесь экспертом, вы можете выполнить приведенные выше команды, чтобы получить полезную информацию о командах или командлете.

CMD:

Tasklist

PowerShell:

Get-Process

PowerShell против CMD (командная строка). В чем ключевое отличие

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

CMD:

taskkill /IM "skype.exe" /F

PowerShell:

Stop-Process -Name "Skype" -Force

PowerShell против CMD (командная строка). В чем ключевое отличие

Вывод: любой запущенный процесс можно остановить с помощью заданных команд. Мы остановили Skype с помощью команд.

Заключительные слова

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 110 просмотров

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

Что такое командная строка

Командная строка — это интерфейс командной строки по умолчанию, предоставляемый Microsoft, начиная с Windows NT (Windows NT 3.x и выше). Это простое приложение win32, которое может взаимодействовать с любыми объектами win32 в операционной системе Windows. Он имеет удобную для пользователя структуру команд и широко используется для выполнения командных файлов, устранения неполадок Windows, выполнения дополнительных действий, получения информации и т. Д. Из-за его пользовательского интерфейса и структуры командной строки многие называют его «приглашением DOS», хотя это не имеет ничего общего с MS-DOS.

командная строка

Что такое PowerShell

Первая версия PowerShell, основанная на платформе .NET, была выпущена еще в 2006 году и является гораздо более продвинутой, чем командная строка. PowerShell имеет множество различных расширенных функций, таких как конвейерная обработка команд, автоматизация задач, удаленное выполнение и т. Д.

PowerShell

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

Чем PowerShell отличается от командной строки

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

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

PowerShell ISE

Более того, PowerShell использует так называемые cmdlets. Эти cmdlets можно вызывать либо в среде выполнения, либо в сценариях автоматизации. В отличие от командной строки или даже оболочки * nix, выходные данные cmdlets — это не просто поток текста (строк), а набор объектов.

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

Когда вы сравните все это с устаревшей командной строкой, вы обнаружите, что она сильно уступает PowerShell как по функциональности, так и по тому, сколько вы можете с ней сделать.

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

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

Что вы предпочитаете: командную строку или PowerShell? В комментариях ниже поделитесь своими мыслями и опытом использования PowerShell и командной строки.

Вот и все.

Большинство из вас, должно быть, использовали командную строку в какой-то момент времени — будь то просто ради эксперимента или решения проблемы, такой как восстановление данных после заражения ярлыком вируса. Но как насчет PowerShell, который появился позже? В чем разница между PowerShell и cmd?

Что ж, я уверен — если вы не являетесь опытным пользователем со знанием программирования, вам даже не придется открывать PowerShell. Но можно ли его использовать в качестве замены командной строки? Это только для программистов или с ним легко познакомиться?

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

История компании

1. Командная строка

Командная строка — это интерпретатор командной строки. Он существует в Windows с тех пор, как введение Windows 95. В то время она называлась не «Командная строка», а просто «cmd.exe», которая позволяла пользователям взаимодействовать с операционной системой с помощью определенных команд. А затем с Windows NT это было названо — «Командная строка».

Что ж, теоретически это было почти то же самое, что и COMMAND.COM (или более известное как MS-DOS), с множеством улучшений.

Командная строка

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

2. PowerShell

Чтобы преодолеть недостатки командной строки, Microsoft начал разработку оболочки под названием Monad, которая была намного мощнее командной строки (могла выполнять множество основных административных задач, которые CMD не могла).

Powershell

Позже, в 2006 году, он был переименован в Microsoft PowerShell. А недавно (в 2016 году) PowerShell был сделан с открытым исходным кодом с кроссплатформенной поддержкой.

Технические функции

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

PowerShell использует другой набор команд, известный как командлеты. С его помощью вы можете попробовать управлять множеством задач системного администрирования. Однако вы не можете получить доступ к тому же через командную строку. PowerShell также позволяет вам использовать — «каналы» — что является просто способом облегчить передачу информации из одной программы в другую — это делает PowerShell еще более мощным.

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

Короче говоря, PowerShell — это улучшенная среда командной строки по сравнению с командной строкой.

Если вы собираетесь использовать какой-либо из них большую часть времени, вам следует внимательно изучить их документацию здесь:

Документация по PowerShell

Документация по командной строке

Если вы просто хотите узнать основную разницу в их командах, то вот что:

Когда вы наблюдаете такую ​​команду, как cd / dir / переименовать (команды из одного слова), это командная строка для вас. Вот почему это по-прежнему самый простой инструмент командной строки.

Однако с Powershell вы получите более выразительные команды (описывающие их работу), например:

Set-Location/Get-children/Rename-item

Windows PowerShell против командной строки: какую из них использовать?

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

Если вы знаете о создании сценариев, управлении задачами автоматического администрирования в Windows и хотите сделать это с большей расширяемостью, тогда PowerShell для вас. Кроме того, если вы знаете язык программирования C #, это отлично подойдет.

Однако, если вы не программист и понятия не имеете, что делают системные администраторы, вам следует придерживаться командной строки. Он не устареет. Командная строка по-прежнему будет использоваться многими пользователями (включая программистов) для выполнения менее сложных, но важных вещей, таких как очистка жесткого диска, преобразование диска из GPT в MBR, восстановление после ярлыка вируса и т. д.

Вы бы не захотели использовать PowerShell, если хотите исправить незначительные проблемы или просто проверить данные ping.

Подводя итог

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

Все еще не понимаете, чем PowerShell отличается от командной строки? Поделитесь с нами своими мыслями в комментариях ниже.

Раскрытие информации: Контент, опубликованный на TechLila, поддерживается читателями. Мы можем получать комиссию за покупки, совершенные по нашим партнерским ссылкам, без каких-либо дополнительных затрат для вас. Читайте наши Страница отказа от ответственности чтобы узнать больше о нашем финансировании, редакционной политике и способах поддержки.

In Windows 10, the “traditional” command prompt that we’ve been using for years (dozens of years, to be exact) has been replaced by PowerShell. Of course, you can still call good old cmd.exe, but all menus and hotkeys now contain PowerShell as a default option, instead of CMD. Let’s sort things out: why did this happen and what’s the difference between these console applications?

A screenshot from Diablo II: Deckard Cain

Stay awhile and listen.

Command Prompt

CMD, or command prompt, originated from the Microsoft MS-DOS command-line shell and was used not only by system administrators but by end-users as well. (However, the dividing line between these two categories was, as you might remember, hardly noticeable.) Later on, when Microsoft introduced Windows NT, it was shipped with cmd.exe – the command line app that resembled its DOS predecessor and was compatible with it but also had additional functions. That was in 1987. Since then, cmd.exe has been a built-in app for all Windows operating systems.

What Is PowerShell?

Windows PowerShell

PowerShell is more than just a “powerful shell”. After its release in 2006, this fully-fledged object-based scripting environment quickly became widespread among system administrators, who enjoyed its ease and functionality. PowerShell is based on CMD but leaves it far behind in terms of usefulness. With PowerShell, you can automate various tasks; for instance, managing Active Directory or implementing user access levels.

PowerShell Remote Alerts

In this document you’ll find a PowerShell script that checks the status of the services listed below and sends an email alert if any of them is turned off:

  • Windows Firewall
  • Windows Defender
  • Windows Update Service
  • Any installed third-party antivirus


New call-to-action

WP icon

PowerShell vs Command Prompt: a Comparison

Before talking about the differences, it is worth discussing the characteristics that are shared by CMD and PowerShell. First of all, they have similar ancestors: the teletype machines of the 19th century. These machines were used in a similar way to all command lines nowadays. Even though technologies have developed drastically, a user still enters symbols on a machine and receives a result after these symbols have been interpreted and processed by this machine – like many years ago. Another point is that CMD and PowerShell appear to be attachments to the Windows console. Neither of them is a console itself; they’re just additions.

And this functionality – we finally come to the PowerShell vs CMD technical comparison – differs a lot. Since CMD is a child of the MS-DOS command line, it inherited simple batch commands that any former DOS user remembers – like “cd” or “dir”. These commands can be used to create scripts, and sometimes these scripts have to be very complicated in order to handle a given task. In PowerShell, there are no commands; instead, administrators utilize cmdlets (“command-lets”) – small scripts with clear names. One PowerShell cmdlet can replace a long sequence of CMD commands. Here are some examples:


New call-to-action

Changing a directory:

Command prompt

Changind a Directory in Command Prompt

Windows PowerShell

Changind a Directory in Windows PowerShell

Getting the last backup type from logs and displaying it

Command prompt script

Getting the Last Backup Type in Command Prompt

Please note: this script doesn’t work from the command prompt itself, it should be launched as a .bat file

Windows PowerShell

Getting the Last Backup Type with Windows PowerShell

Calculating a date:

Command prompt script

Getting a Date with Command Prompt

Please note: this script doesn’t work from the command prompt itself, it should be launched as a .bat file

Windows PowerShell

Getting a Date with Windows PowerShell

Another difference is that CMD commands return text and, if a user needs some data, they must parse this text in order to get the required information. PowerShell cmdlets return objects that can be used for direct manipulation. To transfer these objects between cmdlets, pipes are used; they channel all the data so that it can be used in any number of cmdlets. Also, in CMD, the number of variables is limited and you have to pass them into commands in a strict order. PowerShell doesn’t have such limits.

Moreover, PowerShell is based on the .NET framework and can interact with any Windows objects, even core ones, unlike command prompt, which was not designed for system administration. While interacting with these objects, an administrator can create their own cmdlets in PowerShell to automate everyday tasks. In the process, administrators can use an embedded help system (it can be accessed via the Get-Help cmdlet) or test their creations. In the command prompt, there’s no opportunity to test a script; you have to enter everything properly the first time or it won’t work as expected and you may even lose some vital data. Thus, PowerShell is safer.

All this significantly improves the performance and usability of scripts; with PowerShell, you can do everything that CMD allows and much more. CMD is more backward-oriented; Microsoft wants it to be compatible with all old versions. So CMD might receive some updates, but not a lot. Accordingly, Microsoft switched to PowerShell, which gets regular updates and enhancements, and has a strong and active community.

However, note that you need to update PowerShell manually and, if your OS is old, there might be compatibility problems.

When to Use CMD

If you are used to CMD, of course, you can stay with it; it is still suitable for uncomplicated tasks. It is like a vintage car – no automation, no comfort, but you remember how helpful it was dozens of years ago and there’s still some fuel in its tank. But what if you want to travel the highway?

When to Use PowerShell

PowerShell, with its wide functionality and steep learning curve, is the way to go. With it, you can ease your everyday tasks a lot, making scripts do all the work. Performing batch deployments, getting access to hidden data, managing permissions, and much more – PowerShell is great for any task related to the Windows OS.

Conclusion

As you can see, PowerShell and command prompt differ a lot, and this applies not only to their functionality but to their purposes as well. They might seem to be lookalikes but, in fact, PowerShell and CMD are like a space shuttle and a steam car.

Once extremely useful, the command prompt has now become a thing of the past. PowerShell completely replaces it and is able to process tasks that administrators of the 1980s couldn’t even dream of. So, if you are still wondering which tool to use, there is a definite answer: PowerShell, for sure.

How to Remotely Manage Your Servers Using PSRemoting and Invoke PowerShell Commands

  • Making a new firewall rule
  • Restarting the server or computer
  • Restating certain services
  • Checking the status of the service, and more


New call-to-action

WP icon

  • Windows powershell скачать для windows 10 x64
  • Windows powershell что это за программа можно ли ее удалить
  • Windows powershell русский язык в консоли
  • Windows powershell for windows 2008 r2
  • Windows powershell подключение к удаленному рабочему столу