- Разница между командной строкой и Windows PowerShell
- Командная строка против Windows PowerShell
- PowerShell или командная строка? Что лучше?
- Погружаемся глубже в тему, вернее в Windows.
- Полные права, которые нам так нужны.
- В чём разница между cmd и PowerShell Windows?
- Разница между cmd и PowerShell: не только в цветах.
- Разница между cmd и PowerShell: а зачем нужен Shell обычному пользователю?
- Знакомство с PowerShell.
Разница между командной строкой и Windows PowerShell
Windows 10, Windows 8 и Windows 7, все поставляются с Windows PowerShell из коробки. Вместе с этим появилась Командная строка , которая была преемницей командной строки MS-DOS. Часто наличие двух инструментов командной строки в одной операционной системе может сбить пользователя с толку. Сегодня мы поговорим о том, в чем разница между командной строкой и Windows PowerShell и что вам следует использовать, когда! Этот пост предназначен для новичка или обычного конечного пользователя.
Командная строка против Windows PowerShell
Прежде чем мы перейдем к обсуждению различий, сначала давайте взглянем на краткую историю командной строки и Windows PowerShell.
Командная строка Windows Command Prompt представляет собой простое приложение Win32. Он имеет возможность взаимодействия с любым другим приложением или объектом Win32 в операционной системе Windows. Люди используют его для различных целей – но главным образом для переключения критических настроек Windows и для исправления различных компонентов операционной системы, используя такие инструменты, как средство проверки системных файлов. Его также можно условно назвать обновленной версией MS-DOS. MS-DOS была приложением командной строки Microsoft в операционных системах Windows до появления командной строки.
Командная строка Windows PowerShell обеспечивает более глубокую интеграцию с операционной системой Windows, а также обеспечивает поддержку сценариев. Он основан на .NET Framework и впервые выпущен в 2006 году. Он используется для всех задач, которые может выполнять командная строка, но, кроме того, он также является отличным инструментом для системных администраторов.
Реальная разница
Первоначальное различие заключается в том, что PowerShell использует использование так называемых командлетов. Эти командлеты позволяют пользователю выполнять ряд административных задач, таких как управление реестром и работа с инструментарием управления Windows. Командная строка не может выполнять такие задачи.
Если вы хоть немного знакомы с компьютерным программированием, вы узнаете о переменных . Эти переменные используются для хранения данных, которые можно использовать для выполнения различных операций. Командлеты PowerShell можно использовать для операций в другом командлете. Это позволяет объединить несколько командлетов для создания сложного, но эффективного командлета, который выполняет задачу раз и навсегда. Возможно, вы сможете связать это с Pipes в Linux.
Наконец, Windows PowerShell поставляется с Windows PowerShell ISE , что делает его отличной средой сценариев, которую можно использовать для создания и управления различными сценариями PowerShell, использующими расширение. ps1 .
Командная строка Windows не может делать все эти вещи. Это устаревшая среда, которая переносится в более новые выпуски Windows. Он вдохновлен MS-DOS, но не имеет большого доступа к административным привилегиям, как в Windows PowerShell.
Заключение
Если вы запустите некоторые базовые команды, такие как ipconfig, netsh, sfc и т. Д., Вы можете продолжить использовать командную строку Windows. Это командная строка, предназначенная для обычного пользователя, который нуждается в некоторой базовой информации или хочет выполнить основные операции, такие как проверка ошибок диска или проверка системных файлов.
Но если вы хотите выполнять сложные операции или управлять удаленным компьютером или сервером, вам следует использовать Windows PowerShell, поскольку он обладает различными возможностями для выполнения подобных задач. Тем не менее, может иметь место обучение, связанное с PowerShell, но оно того стоит.
Читать дальше . Разница между PowerShell и PowerShell Core.
PowerShell или командная строка? Что лучше?
Скорость и удобство командной строки известна многим пользователям Windows. Жаль, что далеко не все знают, как сделать ее более удобной для себя. Более того не всегда ее удобно вызывать, что делает ее использование менее комфортным. Сегодня мы рассмотрим некоторые возможности повышающие наше удобство как пользователя. Мы повысим скорость доступа к таким инструментам как 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_ROOT\Directory\shell. Если кликнуть правой кнопкой мыши на значок папки или на часть списка, ну, или в правой части пустого поля, то произойдёт одно и то же, так что не принципиально что вы выберите и сделаете главное, что вот результат этих действий нам и нужен. Контекстное меню в папке в свободной области управляется подразделом HKEY_CLASSES_ROOT\Directory\Background\Shell. Лезем глубже. В записях под HKEY_CLASSES_ROOT\Drive\shell есть команды контекстного меню дисков.
Итак, рассмотрим описание записей в HKEY_CLASSES_ROOT\Directory\shell поближе. В ранних версиях Windows можно было с помощью правой кнопки мыши + Shift открыть контекстное меню папки и выбрать пункт открыть “командную строку”. Эта функция была в Windows 10 1703 уже убрана, а жаль.
Посмотрите на ключ в Windows 10 с помощью редактора реестра где есть подраздел cmd с записями для командной строки. Интересно то что, Microsoft добавила сюда запись HideBasedOnVelocityId, точное значение которой нигде публично не задокументировано и не описано, но, позволяет проводнику подавить команду. Если просто попробовать удалить это значение или назначить ему значение 0, то без прав редактирования ничего не выйдет. Изменения в ней ни к чему не приводят.
По непонятным причинам Microsoft настроила ключ cmd (а также соседний ключ Powershell) так, чтобы их содержимое не могло быть изменено даже администраторами или системной учетной записью, но есть лазейка. Это может сделать только учетная запись “TrustedInstaller”. Нам нужно ее как-то получить, но вот не задача. Нет ни одного способа получить эту учетную запись с помощью “выполнить как” или аналогичных механизмов в использовании. Можно конечно изменить права ключа таким образом, чтобы администраторы могли что-то редактировать, но лучше этого не делать. Потому что это может вызвать проблемы при следующем обновлении Windows, хотя если вы заблокировали обновления, то можете попробовать, мы же рассмотрим иной вариант.
Вот и тот самый вариант, который мы рассмотрим подробнее. Для этого вам нужно знать, что на самом деле нет ключа у реестра HKEY_CLASSES_ROOT. Он просто ярлык для HKEY_LOCAL_MACHINE \ Software\Classes и HKEY_CURRENT_USER \ Software\Classes. При противоречивых записях в обоих путях приоритет получает последний.
Ключ HKEY_CURRENT_USER и все его подразделы принадлежат не только логически, но и юридически зарегистрированной учетной записи пользователя и вы можете внести изменения в ней, как вам нужно для ваших целей. Таким образом, чтобы восстановить команду командной строки, отключенную Microsoft, вы можете создать в реестре путь к ключу HKEY_CURRENT_USER\Software\ Classes\Directory\shell\cmd, если он еще не существует, и там есть запись DWORD с именем HideBasedOn, она то нам и нужна. Создадим VelocityId со значением 0. То же самое относится и к вышеупомянутым вариантам. Под ct.de/yvma можно найти .reg – файл для загрузки, который вы можете дважды щелкнуть в вашем реестре и сделать записи. Кроме того, он содержит копии соответствующих записей из HKEY_LOCAL_MACHINE\Software\ Classes и помещает их в HKEY_CURRENT_USER\ Software \ Classes, чтобы защитить их от любых изменений, которые Microsoft может по своей прихоти внести в более поздних версиях Windows. Кроме того, файл по-прежнему пропускает команды контекстного меню, описанные здесь. Если после обновления Windows возникнут непредвиденные проблемы с контекстным меню или вообще с чем нибудь ещё, вы можете импортировать reg – файл и возможно, экспортировать ключ HKEY_CURRENT_USER\Software\ Classes\Directory из своего реестра и удалить его, чтобы восстановить исходное состояние.
Полные права, которые нам так нужны.
Делаем следующее. Пункт меню для открытия командной строки с правами администратора в определенной папке можно создать используя содержимое ключа …\shell\cmd и соседний ключ …\shell\RunAs копируется. Просто измените значение ключа (по умолчанию), например на „открыть командную строку здесь (администратор) “– это имя команды, которое отображается в контекстном меню. При этом не нужно изменять команду для выполнения.
Вызов выполняется с полными правами админа с именем ключа RunAs. Если вы предпочитаете PowerShell то, вместо этого вы можете скопировать содержимое из …\shell\Powershell после …\shell\RunAs и настроить как описано выше. Но нереально получить сразу и для командной строки и PowerShell права администратора как бы мы не пытались.
Таким образом, ключ RunAs может быть только один раз нами использованным. Наш .reg-файл уже использован, следовательно, для PowerShell нужно идти иным путём: генерим новый ключ …\shell\Hella 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_MACHINE\Software\Classes, которые по сути и защищают наши интересы от Microsoft в реестре. Это текстовый файл, который вы сможете по необходимости легко настроить перед импортом.
Таким образом, оба заявленных в начале инструмента доступны нам значительно быстрее чем раньше и можно с удовольствием пользоваться. Вот так у нас теперь нет необходимости долго их вызывать щёлкая мышью.
В чём разница между cmd и PowerShell Windows?
C появлением Windows 7 к возможностям системы добавилась ещё одна программная оболочка для работы чистыми командами, не оформленная в графический интерфейс. С момента появления к ней всё чаще приковывают внимание сами разработчики, а в Windows 10 она вообще предлагается командной консолью по умолчанию. С каждой последующей версией Windows PSH (Пи-Эс-Эйч) обрастает всё большими возможностями. И на фоне развития Windows разница между cmd и PowerShell (Пауэр Шел) становится всё принципиальнее.
почти не отличимы; внешне их можно сделать идентичными
Разница между cmd и PowerShell: не только в цветах.
Более могущественная, и столь же усложнённая. В один ряд с терминалом Линукс по своей многозадачности её ставить нельзя: мелко плавает. Но по сравнению с cmd она может гораздо больше, и это на фоне того факта, что практически всё, что может cmd , прокатит и в PowerShell . Однако для работы с shell придётся использовать уже отдельный вид команд, которые, дабы на русском не звучало косноязычно, переводчики назвали “командлетами”. В отличие от cmd , в shell команды исполняются по нескольким каналам. Это значит, что выход одной команды (в смысле, командлета) может быть одновременно входом в другую. И всё потому, что командлеты PowerShell – это вполне себе определённые объекты, представители конкретной структуры данных. Даже те командлеты, которые встречают в ответе shell на запрос пользователя. Выражаясь языком программистов, PSH – объектно-ориентированный, а cmd обрабатывает только символы или последовательность символов. Проще говоря, PowerShell позволяет работать с некоторыми программами изнутри, в режиме реального времени, интерактивно. Cmd , в сущности, может только запускать утилиты, которые в Windows уже существуют (почти все они в папке C:\Windows).
Более того, PowerShell – это вполне себе законченная среда для написания и исполнения скрипта. Так что можно создавать очень сложные и объёмные скрипты для управления системой, чем те, на какие была способна консоль cmd .
Основная разница между PowerShell и cmd в том, что последняя – это обновлённая версия “отжившей” в своё время программной оболочки DOS, а в первую, как видно, Windows вдыхает новую жизнь. Очевидно демонстрируя, что от DOS команд разработчики отказываться вообще не собираются. Сравнение с DOS уже неверно, та очень ограничена в своих возможностях; cmd существовала в Windows как “наследие DOS для избранных” или ремонтный, прямой вариант самых необходимых команд. А ввод в работу PowerShell – это как своеобразное предложение, если не покопаться во внутренностях системы, то поучаствовать в изучении её возможностей и способ заняться её модификацией вполне официально: интеграция в среду .Net тому подтверждение.
Разница между cmd и PowerShell: а зачем нужен Shell обычному пользователю?
Точнее, зачем нужн А . Да, чтобы переформировывать дисковое пространство или пинговать смартфон достаточно возможностей cmd . И тот факт, что shell-язык потребует более основательного подхода при использовании командлет, это выводит работу с этой оболочкой на более высокий уровень. Но абстрактность разводить не будем, а я постараюсь впоследствии разбавить статью конкретными примерами в ссылках. Согласитесь, всё зависит от конкретных задач. И нужно признаться, овладеть shell можно только после близкого знакомства с конкретными командлетами.
Знакомство с PowerShell.
Итак, на компьютерном языке Shell – это пользовательский интерфейс, который позволяет получить доступ к службам самой ОС-и. Этот shell может иметь и вариант консоли (как мы его знаем), а может иметь и более дружелюбный интерфейс – оформленный в окна с кнопочками, по которым можно тыцкать мышкой ( PowerShell ISE ). Windows PowerShell работает именно с ОС от Microsoft последних версий, основан на среде .NET framework. Первая версия Windows PSH появилась почти сразу после выпуска Windows XP, в ноябре 2006 г. Его основное призвание – автоматизация ежедневных задач и процессов, запускаемых администратором системы.
Можно выделить несколько первых команд, с помощью которых можно познакомиться с оболочкой в общих чертах (а не просто смотреть на пустую консоль с синюшним фоном).
Справка как она есть. Русифицирована. Информацию о командах получаем отсюда.
Основные командлеты PSH. Сама по себе командлет вам не даст ничего, однако для начала можно было бы ознакомиться с её именем и исполнительным модулем. Например, если нужно увидеть командлеты, работающие с IP функциями или просто сетевые командлеты, мы можем попросить у get-command:
Остановлюсь. Командлетов сотни, а может и тысячи. Понимая это, Microsoft ввела в работу целый сервис, который позволяет в режиме онлайн компоновать атрибуты команд в командлеты и проверять их работоспособность. Знакомьтесь: Windows PowerShell Command Builder .