Windows powershell или командная строка что лучше

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

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

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

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

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

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

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

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

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

Также можно вручную открыть cmd.exe из его исходного местоположения: C:Windowssystem32cmd.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.

Используйте PowerShell в работе с выделенным сервером

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

Подобрать

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

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

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

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

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

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

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

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

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

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

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

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

В Windows PowerShell используется команда Rename-Item для переименования папки путем передачи пути к переименовываемой папке и целевого имени. Например, C:Windowsdir1 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, который появился позже? В чем разница между 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 отличается от командной строки? Поделитесь с нами своими мыслями в комментариях ниже.

Начиная с Windows 7 и заканчивая Windows 10, Microsoft предоставляла опции командной строки Windows и Windows PowerShell. Это два интерфейса командной строки, которые помогают пользователям напрямую взаимодействовать с операционной системой. Вы можете использовать большинство команд DOS в интерфейсе командной строки.

Связанный: 10 команд командной строки Windows, которые вы должны знать.

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

Командная строка против Windows PowerShell

Командная строка против Windows PowerShell

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

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

Пользователи полагаются на возможности CMD для взаимодействия со всеми другими объектами и приложениями Win32. Это помогает выполнять различные задачи в Windows, например:

  • Запускайте различные приложения и утилиты.
  • Активировать / деактивировать важные настройки Windows.
  • Создавать или изменять скрипты для автоматизации задач.
  • Диагностировать и устранять различные проблемы с ОС, например, сканирование на наличие ошибок.

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

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

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

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

Что такое Windows PowerShell?

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

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

Windows PowerShell

Windows PowerShell

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

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

Доступ к командной строке и Windows PowerShell

Вы можете получить доступ к командной строке следующими способами:

  • Нажмите сочетания клавиш «Win + R», чтобы открыть окно «Выполнить». Введите CMD и нажмите Enter, чтобы открыть командную строку.
  • Введите CMD в окне поиска Windows или Cortana Search и выберите классическое приложение командной строки.
  • Щелкните правой кнопкой мыши кнопку «Пуск» и выберите «Командная строка» или «Командная строка (администратор)». Помните, что вам необходимо запускать командную строку с правами администратора, чтобы выполнять определенные действия.

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

  • Введите powershell в поле поиска и выберите классическое приложение Windows PowerShell.
  • Нажмите «Win + R», чтобы открыть окно «Выполнить». Введите powershell и нажмите Enter.
  • Щелкните правой кнопкой мыши кнопку «Пуск» или нажмите клавиши «Win + X» и выберите вариант Windows PowerShell или Windows PowerShell (Admin).

Если щелкнуть правой кнопкой мыши кнопку «Пуск» или нажать клавиши «Win + X», Windows покажет либо командную строку, либо параметры, связанные с Windows PowerShell. Вы можете изменить настройки, чтобы выбрать, какой вариант вы хотите отображать в меню.

  • Нажмите клавиши «Win + I», чтобы открыть приложение «Настройки Windows».
  • Нажмите на опцию «Персонализация» и перейдите в раздел «Панель задач».
  • Включите или отключите параметр «Заменить командную строку на Windows PowerShell …… ..».

Заменить командную строку на PowerShell

Заменить командную строку на PowerShell

Сравнение PowerShell и командной строки

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

  • В то время как Cmd использует команды DOS, PowerShell использует команды, известные как командлеты, которые представляют собой независимые программные объекты, которые обеспечивают доступ к основным параметрам администрирования в Windows. Эти параметры недоступны из Cmd, что означает, что пользователям необходимо перемещаться по графическому интерфейсу, чтобы получить к ним доступ.
  • Cmd — это просто система оболочки, которая ограничивает пользователей выполнять только простые и базовые сценарии для выполнения командного файла. Однако PowerShell — это и оболочка, и среда сценариев, которая поддерживает создание больших и сложных файлов для управления системой Windows.
  • Командная строка не предназначена для системного администрирования, и пользователям требуются дополнительные утилиты для расширения ее функциональности. Напротив, в Windows PowerShell есть множество командлетов, которые упрощают жизнь системным администраторам. Он позволяет выполнять широкий спектр задач и автоматизацию, включая управление пользователями и разрешениями, конфигурации безопасности, извлечение данных и администрирование Active Directory.
  • Еще одна интересная функция PowerShell, которой не хватает в Cmd, — это «Псевдонимы». Это очень важная функция, позволяющая пользователям настраивать собственные имена для различных сценариев или командлетов. PowerShell использует псевдонимы для интерпретации старых команд DOS и запуска их как командлетов PowerShell. Например, псевдоним для «cd» (DOS) — «Set-Location» (командлет).

Псевдоним в Windows PowerShell

Псевдоним в Windows PowerShell

Связанный: Что такое драйверы в Windows и как устранить проблемы с драйверами?

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

Кроме того, PowerShell предоставляет другие расширенные функции, включая:

  • Windows PowerShell ISE — интерактивная среда сценариев, которая помогает в управлении сценариями PowerShell.

Интегрированная среда сценариев Windows PowerShell

Интегрированная среда сценариев Windows PowerShell
  • Secure Shell (SSH) — протокол для реализации зашифрованных соединений между удаленными системами Windows.
  • Управление пакетами — инструмент для мониторинга программного обеспечения в вашей системе.
PowerShell или командная строка, что делать дальше?

Если вы полагаетесь только на Cmd для выполнения основных команд, таких как ПФС, IPCONFIG и тому подобное, это по-прежнему удобный инструмент. Для системных администраторов и опытных пользователей, которым необходимо выполнять сложные задачи или управлять удаленными системами, PowerShell — лучший выбор. Это экономит время системных администраторов, обеспечивая доступ к более глубокой автоматизации системных задач. Тем не менее, пользователям Windows рекомендуется начать знакомство с последним, особенно после того, как Microsoft сделала оболочку по умолчанию для Windows 10. Кроме того, PowerShell превосходит старый Cmd, поскольку он предоставляет все возможности Cmd и многое другое.

Черный (или синий) терминал с мигающим курсором — классический образ для всех, кто использует систему Linux. Однако в Microsoft Windows вам больше не нужно работать с интерфейсом командной строки. Независимо от того, устанавливаете ли вы новые приложения или настраиваете свою операционную систему, вы можете делать все через графический интерфейс пользователя (GUI).

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

Итак, какой инструмент командной строки лучше, командная строка или Powershell? Есть ли причина использовать оба? Каковы преимущества и недостатки каждого из них? Вот полный обзор.

Командная строка Windows — MS-DOS для современных систем

В темные века черных терминалов и печатных команд Microsoft стала популярной благодаря своей операционной системе MS-DOS. Даже когда компания окончательно отказалась от интерфейса командной строки (CLI), Microsoft построила ОС поверх MS-DOS. Пользователи по-прежнему могли получить доступ к его функциям с помощью командной строки MS-DOS, позже переименованной в просто командную строку.

Все версии операционной системы Windows включают командную строку, будь то Windows NT, Windows 7 или Windows 10. Запуск командной строки открывает черное окно терминала с мигающим курсором, готовым принимать команды. Активным каталогом по умолчанию является папка текущего пользователя, хотя вы можете легко переключиться с помощью команды CD.

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

Единственная проблема с командной строкой в ​​том, что это всего лишь интерпретатор. Хотя вы можете использовать пакетные файлы для повторного использования набора команд, он далеко не так эффективен, как правильная оболочка, такая как Bash. Более того, каждый новый выпуск Windows уводит графический интерфейс все дальше и дальше от представления командной строки, а это означает, что вы не можете на самом деле многое контролировать с помощью командной строки.

Как использовать CMD

Начать работу с командной строкой очень просто. Вам не нужно ничего устанавливать или настраивать — просто введите CMD в меню «Пуск», чтобы найти приложение. Это напрямую откроет новое окно cmd.exe, готовое для ввода. Для некоторых команд вам необходимо открыть CMD с правами администратора.

Командная строка: плюсы и минусы

Плюсы

  • Простота в освоении и использовании.
  • Множество полезных команд, таких как chkdsk или scannow.
  • Низкий системный след.

Минусы

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

Windows Powershell — оболочка сценариев Microsoft.

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

И здесь на помощь приходит PowerShell. Это полноценный язык сценариев, созданный с использованием платформы. NET. Вы можете использовать Windows PowerShell для автоматизации большинства задач администрирования на сервере Windows или на домашнем компьютере. Чтобы было ясно, теперь также можно запускать Bash непосредственно в Windows 10 или Windows 11, но PowerShell имеет лучшую интеграцию.

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

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

Как использовать PowerShell

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

Для этого у вас есть два варианта. PowerShell ISE (интегрированная среда сценариев) — отличное приложение для тестирования сценариев PowerShell, поскольку оно позволяет писать и отлаживать код в одном приложении. Но Windows прекратила разработку ISE и вскоре прекратит ее поддержку.

Теперь вы можете писать сценарии PowerShell в Visual Studio, используя официальное расширение. Это лучший подход, если вы планируете писать сложные сценарии для автоматизации и системного администрирования.

PowerShell: плюсы и минусы

Плюсы

  • Может автоматизировать большинство задач меню графического интерфейса.
  • Широкие возможности расширения за счет сторонних надстроек.
  • Модульная конструкция делает сценарии универсальными и многоразовыми.
  • Может взаимодействовать с системными компонентами, такими как реестр.
  • Может использоваться с WMI для управления корпоративными системами.

Минусы

  • Тяжело учиться новичкам.
  • Слишком многословно для простых задач.

Командная строка PowerShell VS: какая из них лучше?

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

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

Но большинству пользователей не нужен такой уровень настройки или контроля. Для домашнего пользователя, который хочет выполнять базовые действия из командной строки, CMD — гораздо более простой инструмент. Синтаксис командной строки гораздо проще и предлагает ключевые инструменты, такие как chkdsk и SFC, в виде однострочных команд.

Лучшая утилита командной строки для вас — это та, которая выполняет вашу работу. Если вам нужна среда сценариев, подобная Linux, для управления серверами или сетевыми компьютерами, PowerShell — это то, что вам нужно. С другой стороны, если все, что вам нужно, — это способ выполнения основных команд для восстановления жесткого диска или поиска скрытых файлов, командная строка — это то, что вам нужно.


Если вы являетесь администратором 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.

Командная строка долгое время является неотъемлемой частью 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 Contosoadministrator

командлет 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 ? Не знаю как вы, а я не готов однозначно ответить на этот вопрос. Впрочем, ничто не мешает нам пользоваться и тем и другим.

Скорость и удобство командной строки известна многим пользователям Windows. Жаль, что далеко не все знают, как сделать ее более удобной для себя. Более того не всегда ее удобно вызывать, что делает ее использование менее комфортным. Сегодня мы рассмотрим некоторые возможности повышающие наше удобство как пользователя. Мы повысим скорость доступа к таким инструментам как PowerShell и уже упомянутая командная строка. Если вас не пугает то, что нам придётся лезть в реестр и что-то там менять, то эта статья для вас.

PowerShell

PowerShell

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

Если вы хотите решить задачи на своём компьютере без долгого мучения, вам стоит позаботиться о быстром доступе к командной строке или PowerShell. К счастью они оба крепятся на панель задач, разве что придётся немного попотеть, но это нам окупится. Для этого нужно выбрать в открытом окне контекстного меню пункт «Закрепить на панель задач».

PowerShell использовать таким образом даже удобнее чем командную строку, хотя каждому своё. При клике на него правой кнопкой мыши появляется меню с дополнительными данными для запуска с правами администратора, например, таким, как PowerShell ISE (Integrated Scripting Environment). Это сопутствующий Script-Editor.

Для того чтобы запустить обе программы с полными правами нужно сделать следующие шаги. Нажать CTRL и Schift одновременно и нажать на значок панели задач. Следующим шагом будет запустить PowerShell (с правами администратора или без). Для этого нужно нажать Win+X или нажать на кнопочку пуск слева при помощи правой кнопки мыши. Тогда вылезет контекстное меню с кучей пунктов там, где обычно открывается меню от кнопки «пуск».

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

Погружаемся глубже в тему, вернее в Windows.

Помимо всего прочего PowerShell можно запускать из проводника и отправлять в конкретную папку. Для этого нужно в папке в правой части на пустой белой половине нажать правую кнопку мыши и выбрать пункт «открыть PowerShell». Иной возможности запустить командную строку с правами администратора у нас к сожалению нет.

Команды могут оказаться для вас сложными, но далее мы покажем, как с ними взаимодействовать. Пункты контекстного меню настраиваются по следующему пути: папка — проводник — реестр — записи. Таковых и нужных нам три штуки в подразделах в HKEY_ CLASSES_ROOTDirectoryshell. Если кликнуть правой кнопкой мыши на значок папки или на часть списка, ну, или в правой части пустого поля, то произойдёт одно и то же, так что не принципиально что вы выберите и сделаете главное, что вот результат этих действий нам и нужен. Контекстное меню в папке в свободной области управляется подразделом HKEY_CLASSES_ROOTDirectoryBackgroundShell. Лезем глубже. В записях под HKEY_CLASSES_ROOTDriveshell есть команды контекстного меню дисков.

Итак, рассмотрим описание записей в HKEY_CLASSES_ROOTDirectoryshell поближе. В ранних версиях Windows можно было с помощью правой кнопки мыши + Shift открыть контекстное меню папки и выбрать пункт открыть «командную строку». Эта функция была в Windows 10 1703 уже убрана, а жаль.

Посмотрите на ключ в Windows 10 с помощью редактора реестра где есть подраздел cmd с записями для командной строки. Интересно то что, Microsoft добавила сюда запись HideBasedOnVelocityId, точное значение которой нигде публично не задокументировано и не описано, но, позволяет проводнику подавить команду. Если просто попробовать удалить это значение или назначить ему значение 0, то без прав редактирования ничего не выйдет. Изменения в ней ни к чему не приводят.

По непонятным причинам Microsoft настроила ключ cmd (а также соседний ключ Powershell) так, чтобы их содержимое не могло быть изменено даже администраторами или системной учетной записью, но есть лазейка. Это может сделать только учетная запись «TrustedInstaller». Нам нужно ее как-то получить, но вот не задача. Нет ни одного способа получить эту учетную запись с помощью «выполнить как» или аналогичных механизмов в использовании. Можно конечно изменить права ключа таким образом, чтобы администраторы могли что-то редактировать, но лучше этого не делать. Потому что это может вызвать проблемы при следующем обновлении Windows, хотя если вы заблокировали обновления, то можете попробовать, мы же рассмотрим иной вариант.

Вот и тот самый вариант, который мы рассмотрим подробнее. Для этого вам нужно знать, что на самом деле нет ключа у реестра HKEY_CLASSES_ROOT. Он просто ярлык для HKEY_LOCAL_MACHINE SoftwareClasses и HKEY_CURRENT_USER SoftwareClasses. При противоречивых записях в обоих путях приоритет получает последний.

Ключ HKEY_CURRENT_USER и все его подразделы принадлежат не только логически, но и юридически зарегистрированной учетной записи пользователя и вы можете внести изменения в ней, как вам нужно для ваших целей. Таким образом, чтобы восстановить команду командной строки, отключенную Microsoft, вы можете создать в реестре путь к ключу HKEY_CURRENT_USERSoftware ClassesDirectoryshellcmd, если он еще не существует, и там есть запись DWORD с именем HideBasedOn, она то нам и нужна. Создадим VelocityId со значением 0. То же самое относится и к вышеупомянутым вариантам. Под ct.de/yvma можно найти .reg — файл для загрузки, который вы можете дважды щелкнуть в вашем реестре и сделать записи. Кроме того, он содержит копии соответствующих записей из HKEY_LOCAL_MACHINESoftware Classes и помещает их в HKEY_CURRENT_USER Software Classes, чтобы защитить их от любых изменений, которые Microsoft может по своей прихоти внести в более поздних версиях Windows. Кроме того, файл по-прежнему пропускает команды контекстного меню, описанные здесь. Если после обновления Windows возникнут непредвиденные проблемы с контекстным меню или вообще с чем нибудь ещё, вы можете импортировать reg – файл и возможно, экспортировать ключ HKEY_CURRENT_USERSoftware ClassesDirectory из своего реестра и удалить его, чтобы восстановить исходное состояние.

Полные права, которые нам так нужны.

Делаем следующее. Пункт меню для открытия командной строки с правами администратора в определенной папке можно создать используя содержимое ключа …shellcmd и соседний ключ …shellRunAs копируется. Просто измените значение ключа (по умолчанию), например на „открыть командную строку здесь (администратор) “– это имя команды, которое отображается в контекстном меню. При этом не нужно изменять команду для выполнения.

Вызов выполняется с полными правами админа с именем ключа RunAs. Если вы предпочитаете PowerShell то, вместо этого вы можете скопировать содержимое из …shellPowershell после …shellRunAs и настроить как описано выше. Но нереально получить сразу и для командной строки и PowerShell права администратора как бы мы не пытались.

Таким образом, ключ RunAs может быть только один раз нами использованным. Наш .reg-файл уже использован, следовательно, для PowerShell нужно идти иным путём: генерим новый ключ …shellHella Power admin. В качестве выполняемой команды он вводит вызов PowerShell и в опции командной строки-command дает ему команду, которая запускает еще один PowerShell с помощью команд Start — Process. Этот вызов использует опцию-Verb RunAs, которая гарантирует, что PowerShell будет открыт с правами администратора.

Кроме того, через ArgumentList вызов Start-Process получает инструкцию для переключения в выбранную папку через Set — ocation. Имя папки может содержать пробелы и, следовательно, должно быть заключено в кавычки. Тем не менее, цена импорта.reg-файла — это каждый новый запуск PowerShell, а также вызов процесса запуска с несколькими кавычками.

Каждая из этих операций уничтожает другие N-направляющие символы, которые не маскируются с Escape-символом в соответствии с используемой схемой. В результате, в качестве параметра для папки для управления в .reg-файл вставляем этот «винегрет» из символов \»»\»%V`\»‘\», хотя делать это, не самая лучшая затея. Все изменения будут внесены в ключ HKEY_CURRENT_ USER и, таким образом, должны быть защищены от возможных будущих творческих и прочих изменений Microsoft в правах пользователя реестра, это нам поможет не потерять свои труды. Даже если Microsoft когда-нибудь сможет полностью стереть записи в командной строке, то файл восстановит их, потому что он содержит все необходимое, то есть копию текущих записей из HKEY_LOCAL_MACHINESoftwareClasses, которые по сути и защищают наши интересы от Microsoft в реестре. Это текстовый файл, который вы сможете по необходимости легко настроить перед импортом.

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

As far as operating systems are concerned, Windows is perhaps the least reliant on the command line. In fact, most of us have managed to get this far without ever once using it. But with Windows 10 around the corner, maybe it’s about time we learned.

But before you jump into it, there’s one significant difference that you need to understand, and that’s the difference between Command Prompt and PowerShell. They look pretty similar on the surface, but in practice are vastly unlike each other.

Here’s what you need to know about the two.

The Command Prompt Came First

Starting with Windows NT and beyond, Windows came equipped with a command line interpreter called cmd.exe, better known as Command Prompt. With it, users could interact with the operating system using text-based commands and parameters.

But while Command Prompt came first, it wasn’t the first. Previous versions of the operating system (Windows 95, 98, and ME) had a more primitive command line interpreter called COMMAND.COM, better known as MS-DOS.

It goes without saying that Command Prompt was a huge improvement over the outdated MS-DOS interpreter.

command-prompt-powershell-primitive

Despite the graphical nature of Windows, the command line has never been — and will never be — obsolete. It offers a degree of power and flexibility that just can’t be achieved with point-and-click interfaces (such as batch scripting), and depending on your proficiency, you can get things done faster using Command Prompt.

For example, here are some common tasks made easier by Command Prompt. In addition, there are several basic commands every user should know in case you need to troubleshoot an issue and all you have is command line access.

If you’re an absolute command line virgin, we recommend checking out our beginners guide to Command Prompt. It’s easier than you think and well worth knowing.

While Command Prompt is more than adequate for the average user, some people want more — which is why command prompt replacements, like the open source Console, exist. Fortunately for us all, Microsoft had a better answer in store: PowerShell.

PowerShell Took It to the Next Level

If Command Prompt is like a 2004-era Motorola Razr, then PowerShell is like a 2015-era Motorola Moto X. It can do a lot of the same things and more. PowerShell may not be the best command line interpreter available, but it’s certainly powerful enough to satisfy power users.

The seeds for PowerShell were planted in 2002 when Microsoft began working on Microsoft Shell, also known as Monad, which was designed to be extensible by users. Monad went public in 2005 and was eventually renamed to PowerShell in 2006. At the same time, it became integrated into the operating system itself.

But what does all of this mean?

command-prompt-powershell-powershell

Simply put, PowerShell allows you to create your own commands and scripts using the C# programming language. Both PowerShell and C# are integrated with Microsoft’s .NET Framework, meaning you get access to a lot of preexisting functions and tools to help you create better commands and scripts with less overall effort.

PowerShell has a lot of advanced features — like remote execution of tasks, background tasks, task automation, command piping, and more — that make it a better choice than the archaic Command Prompt when you have a lot of system administration and maintenance to do.

Should you use PowerShell? Well, the average user doesn’t really need all of these bells and whistles. Administrators and power users, on the other hand, will likely love what it can do. Get started with these basic PowerShell commands to get a taste of its potential.

Note: PowerShell has a bit of a learning curve, so don’t expect to grasp it right away.

PowerShell Improvements In Windows 10

As useful as it is already, PowerShell will be receiving several improvements when Windows 10 is officially released. Here are some highlights that you can expect.

PackageManagement: A package manager is a convenient way to manage all of the software that you download, install, and remove. Instead of hopping from website to website, you just browse packages with PackageManagement (formerly known as OneGet). By subscribing to different repositories, you can pick which packages are available to you.

OneGet is technically available already for Windows 8.1, but only if you install Windows Management Framework 5.0. When Windows 10 comes around, PackageManagement will be integrated with the system by default.

Secure Shell (SSH): Secure Shell has long been a staple protocol for establishing encrypted connections between remote systems. Without SSH, it’s easy for outsiders to intercept data as it’s being transmitted.

command-prompt-powershell-features

Until recently, SSH on Windows required use of a third-party solution (e.g. PuTTY), but the PowerShell team announced that they would be implementing SSH support on Windows. It took a while, but it seems like Windows is finally catching up in this area.

PowerShell Features: With version 5.0, the language of PowerShell itself is being enhanced with new features like: classes and enums, new built-in commands, expanded features for existing commands, syntax coloring in the console, and more.

For in-depth details, check out the What’s New in PowerShell 5.0 article by Microsoft.

Hopefully you now have a better sense of the differences between Command Prompt and PowerShell. If you’ve gotten this far and you’re still confused, don’t worry: PowerShell is for power users and Command Prompt is good enough for everyone else. In fact, you can get by without knowing either.

Have any questions? What do you think about PowerShell? Is Microsoft going in the right direction? Share with us in the comments below!

Image Credits: Command Prompt by Kaleb Fulgham via Flickr, Encrypted Connection by Andrea Danti via Shutterstock

As far as operating systems are concerned, Windows is perhaps the least reliant on the command line. In fact, most of us have managed to get this far without ever once using it. But with Windows 10 around the corner, maybe it’s about time we learned.

But before you jump into it, there’s one significant difference that you need to understand, and that’s the difference between Command Prompt and PowerShell. They look pretty similar on the surface, but in practice are vastly unlike each other.

Here’s what you need to know about the two.

The Command Prompt Came First

Starting with Windows NT and beyond, Windows came equipped with a command line interpreter called cmd.exe, better known as Command Prompt. With it, users could interact with the operating system using text-based commands and parameters.

But while Command Prompt came first, it wasn’t the first. Previous versions of the operating system (Windows 95, 98, and ME) had a more primitive command line interpreter called COMMAND.COM, better known as MS-DOS.

It goes without saying that Command Prompt was a huge improvement over the outdated MS-DOS interpreter.

command-prompt-powershell-primitive

Despite the graphical nature of Windows, the command line has never been — and will never be — obsolete. It offers a degree of power and flexibility that just can’t be achieved with point-and-click interfaces (such as batch scripting), and depending on your proficiency, you can get things done faster using Command Prompt.

For example, here are some common tasks made easier by Command Prompt. In addition, there are several basic commands every user should know in case you need to troubleshoot an issue and all you have is command line access.

If you’re an absolute command line virgin, we recommend checking out our beginners guide to Command Prompt. It’s easier than you think and well worth knowing.

While Command Prompt is more than adequate for the average user, some people want more — which is why command prompt replacements, like the open source Console, exist. Fortunately for us all, Microsoft had a better answer in store: PowerShell.

PowerShell Took It to the Next Level

If Command Prompt is like a 2004-era Motorola Razr, then PowerShell is like a 2015-era Motorola Moto X. It can do a lot of the same things and more. PowerShell may not be the best command line interpreter available, but it’s certainly powerful enough to satisfy power users.

The seeds for PowerShell were planted in 2002 when Microsoft began working on Microsoft Shell, also known as Monad, which was designed to be extensible by users. Monad went public in 2005 and was eventually renamed to PowerShell in 2006. At the same time, it became integrated into the operating system itself.

But what does all of this mean?

command-prompt-powershell-powershell

Simply put, PowerShell allows you to create your own commands and scripts using the C# programming language. Both PowerShell and C# are integrated with Microsoft’s .NET Framework, meaning you get access to a lot of preexisting functions and tools to help you create better commands and scripts with less overall effort.

PowerShell has a lot of advanced features — like remote execution of tasks, background tasks, task automation, command piping, and more — that make it a better choice than the archaic Command Prompt when you have a lot of system administration and maintenance to do.

Should you use PowerShell? Well, the average user doesn’t really need all of these bells and whistles. Administrators and power users, on the other hand, will likely love what it can do. Get started with these basic PowerShell commands to get a taste of its potential.

Note: PowerShell has a bit of a learning curve, so don’t expect to grasp it right away.

PowerShell Improvements In Windows 10

As useful as it is already, PowerShell will be receiving several improvements when Windows 10 is officially released. Here are some highlights that you can expect.

PackageManagement: A package manager is a convenient way to manage all of the software that you download, install, and remove. Instead of hopping from website to website, you just browse packages with PackageManagement (formerly known as OneGet). By subscribing to different repositories, you can pick which packages are available to you.

OneGet is technically available already for Windows 8.1, but only if you install Windows Management Framework 5.0. When Windows 10 comes around, PackageManagement will be integrated with the system by default.

Secure Shell (SSH): Secure Shell has long been a staple protocol for establishing encrypted connections between remote systems. Without SSH, it’s easy for outsiders to intercept data as it’s being transmitted.

command-prompt-powershell-features

Until recently, SSH on Windows required use of a third-party solution (e.g. PuTTY), but the PowerShell team announced that they would be implementing SSH support on Windows. It took a while, but it seems like Windows is finally catching up in this area.

PowerShell Features: With version 5.0, the language of PowerShell itself is being enhanced with new features like: classes and enums, new built-in commands, expanded features for existing commands, syntax coloring in the console, and more.

For in-depth details, check out the What’s New in PowerShell 5.0 article by Microsoft.

Hopefully you now have a better sense of the differences between Command Prompt and PowerShell. If you’ve gotten this far and you’re still confused, don’t worry: PowerShell is for power users and Command Prompt is good enough for everyone else. In fact, you can get by without knowing either.

Have any questions? What do you think about PowerShell? Is Microsoft going in the right direction? Share with us in the comments below!

Image Credits: Command Prompt by Kaleb Fulgham via Flickr, Encrypted Connection by Andrea Danti via Shutterstock

Понравилась статья? Поделить с друзьями:
  • Windows phone не видит sd карту
  • Windows phone как установить 10 виндовс
  • Windows phone как скачать приложения в 2020
  • Windows powershell для windows xp sp3
  • Windows phone как включить режим разработчика