Шпаргалка по PowerShell: Команды, операторы и многое другое

10475
Шпаргалка по PowerShell Команды операторы и многое другое
Шпаргалка по PowerShell Команды операторы и многое другое

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

Системный администратор

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

Шпаргалка по PowerShell

Начнем с краткого введения в команды Windows 10 PowerShell.

Основы PowerShell

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

Эта оболочка имеет следующие возможности.

  • Удобная история командной строки
  • Широкие возможности, такие как завершение табуляции и предсказание команд
  • Псевдонимы команд и параметров
  • Система изменения команд
  • Встроенная справочная система, подобная Unix man pages

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

PowerShell построен на базе .NET Common Language Runtime (CLR), что означает, что все входные и выходные данные являются объектами .NET. Вам не придется разбирать текстовый вывод, чтобы получить из него информацию.

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

  • Функции, классы, объекты и модули
  • Простая система форматирования для обеспечения четкого вывода данных для повышения удобочитаемости
  • Встроенная поддержка различных форматов данных, таких как CSV, JSON и XML
  • Система типов для создания динамических типов

Теперь перейдем к некоторым полезным командам PowerShell.

Шпаргалка PowerShell по командам

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

Команда Описание
Get-Help
Эта команда позволяет получить поддержку с помощью PowerShell.
Get-PSdrive
Эта команда предлагает вам список доступных PSDrives, таких как c, env, hklm, hkcu, alias и т.д.
Get-ChildItem
В любом реестре дочерние ключи — это подключи текущего ключа. Чтобы получить необходимые сведения, можно воспользоваться следующей командой.
Get-ChildItem -recurse
Выполните эту команду, чтобы рекурсивно перечислить все дочерние элементы текущего PSdrive, папки или ключа реестра.
Get-ChildItem -rec -force
Используйте эту команду для включения скрытых папок (каталогов).
(Get-ChildItem).name or Get-ChildItem -name
Выполните любую из этих команд, чтобы получить список имен файлов и каталогов в текущей папке.
(Get-ChildItem).count 
Используйте эту команду, чтобы получить количество записей в коллекции объектов, возвращенных командой Get-Children.

 

PSdrives

PSdrives — это коллекция объектов, сгруппированных вместе, чтобы к ним можно было получить доступ как к диску файловой системы. PSprovider» выполняет эту группировку.

По умолчанию сеанс PS может обращаться к нескольким PSdrives, включая c:, env:, alias: и HKLM:, где c: означает обычный диск c Windows; env: — это пространство переменных среды Windows; alias: — это коллекция псевдонимов команд; а HKLM — это ветка в реестре.

При любом сеансе PS пользователь попадает в свою домашнюю папку. Если вы хотите перейти из сеанса PS на другой диск PSdrive и получить информацию с этого диска, воспользуйтесь следующими командами:

Команды Описание
Switching to env-
Символ подсказки изменится на «ENV:\>». Установите env, выполнив следующую команду:

 

Set-Location env-
Env:\> Get-Childitem
Эта команда предоставит вам все переменные окружения.
Env:\> Get-Childitem userprofile
Используйте эту команду, чтобы получить переменные окружения «userprofile».
Env:\> Set-Location alias:
Выполните следующую команду, чтобы изменить символ подсказки на » Alias».
Alias:\> Get-Childitem
Выполните эту команду, чтобы получить все дочерние элементы всех псевдонимов.
Alias:\> Set-Location C:\
Используйте эту команду, чтобы снова получить приглашение «C:/>», вернувшись к диску по умолчанию.
C:\Users\user_name>$alias:ls
Выполните эту команду, чтобы узнать, что означает псевдоним «ls».

 

Конвейеры

Cmdlets использует конвейеры для передачи объектов, но не потоков символов, как Unix. Символ конвейера — | (ASCII 124), за которым следует команда, обрабатывающая вывод, проходящий через конвейер. Конвейер состоит из следующих трех этапов.

Get-ChildItem *.txt | Where-Object length -lt 1000 | Sort-Object length

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

Команда Описание
(Get-Item /Users/praashibansal/Desktop).lastwritetime.year
Легко устанавливает значение свойства ‘lastwritetime.year’ на текущую дату и время, не влияя на содержимое файла.
(Get-ChildItem data.txt.rtf -name).name # -> null
Предоставляет пустой результат
"data.txt.rtf" | Rename-Item -NewName "data_new.txt.rtf"
Изменяет старые имена файлов и расширения файлов на новые
Get-ChildItem data.txt | Rename-Item -new {$_.name}
Тривиальная команда переименования, вызывающая автоматическую переменную
Get-ChildItem data.txt.rtf -name | Rename-Item -new {$_.name}
Если у передаваемого объекта $_ нет свойства (name), вы получите ошибку, так как параметр $_.name является null
Get-ChildItem | Select-Object basename | Sort-Object *
Отображает список имен всех файлов, присутствующих в текущей папке, отсортированных в алфавитном порядке.
Move-Item *.txt subdirectory
Перемещает все файлы в подкаталог папки
Get-ChildItem *.txt | Move-Item ..\
Выдает сообщение об ошибке, что Move-Item не имеет входа

 

Alias (Алиас)

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

Команда Описание
Add-Content
Добавляет значение к файлу
Get-Content
Поиск содержимого файла в массиве
Set-Location
Изменение папки, ключа или диска PS
Clear-Host
Очищает консоль
Remove-Item
Удаление файлов
Get-ChildItem -Path .\
Списки папок, ключей или дочерних элементов PSDrive
Write-Output
Отправляет массив в консоль, конвейер или перенаправляет его в файл
Foreach-Object
Обход каждого объекта в конвейере
Format-Table
Форматирует таблицу с выбранными свойствами для каждого объекта в каждом столбце
Format-List
Форматирует свойства процесса по имени
Get-Alias
Обеспечивает псевдоним командлета
Get-Command
Предоставляет вам команды только из текущей сессии
Get-Member
Извлечение всех членов объекта
Get-ItemProperty .\data.txt | Format-List
Предоставляет свойства указанного элемента
Get-ItemPropertyValue -Path '.\data.txt'
 -Name LastWriteTime
Получает текущее значение для указанного свойства при использовании параметра name
Get-Variable m*
Находит имена переменных сеансов
New-Item -Path .\ -Name "testfile1.txt" -ItemType
 "file" -Value "This is a text string."
Создает новый файл, каталог, символическую ссылку, ключ реестра или запись реестра.
Get-Process
Выдает полный список всех запущенных процессов
Get-Location
Предоставляет местоположение текущего каталога или ключа реестра
Rename-Item -Path “old_name” -NewName “new_name”
Переименовывает старое имя элемента в новое имя
Remove-Item .\testfile1.txt
Удаляет указанный каталог, файлы или ключи реестра
Remove-Variable 
Удаляет указанную переменную
Start-Sleep
Приостанавливает деятельность на определенный период времени

 

Операторы

Арифметические операторы

Оператор Описание Пример
+ Складывает целые числа; объединяет 6 + 2
строки, массивы и хэш-таблицы. «file» + «name»

@(1, «one») + @(2.0, «two»)

@{«one» = 1} + @{«two» = 2}

+ Делает число из объекта 123
Вычитание одного значения из другого 6 — 2
Вычисляет противоположное число — -6
(Get-Date).AddDays(-1)
* Умножение чисел или копирование строк и массивов заданное количество раз 6 * 2
@(«!») * 4
«!» * 3
/ Делит два значения 6 / 2
% Modulus — возвращает остаток от операции деления 7 % 2
-band Побитовое И 5 -band 3
-bnot Побитовое НЕ -bnot 5
-bor Побитовое ИЛИ 5 -bor 0x03
-bxor Побитовое XOR 5 -bxor 3
-shl Сдвигает биты влево 102 -shl 2
-shr Сдвигает биты вправо 102 -shr 2

 

Приоритет оператора

Приоритет Оператор Описание
1 () Круглые скобки
2 Для отрицательного числа или унарного оператора
3 *, /, % Для умножения и деления
4 +,- Для сложения и вычитания
5 -band, -bnot, -bor, -bxor, -shr, and -shl Для побитовых операций

 

Операторы присваивания

Оператор Описание
= Устанавливает значение переменной на указанное значение
+= Увеличивает значение переменной на указанное значение или добавляет указанное значение к существующему значению
-= Уменьшает значение переменной на заданную величину
*= Умножает значение переменной на указанное значение или добавляет указанное значение к существующему значению
/= Делит значение переменной на заданное значение
%= Делит значение переменной на заданное значение, а затем присваивает переменной остаток (модуль).
++ Увеличивает значение переменной, присваиваемого свойства или элемента массива на 1.
Уменьшает значение переменной, присваиваемого свойства или элемента массива на 1.

 

Операторы сравнения

Тип Оператор Сравнительный тест
Равенство -eq равно
-ne не равно
-gt больше, чем
-ge больше или равно
-lt меньше чем
-le меньше чем или равно
Соответствие -like строка соответствует шаблону подстановки
-notlike строка не соответствует шаблону
-match строка соответствует regex-шаблону
-notmatch строка не соответствует regex-шаблону
Замена -replace заменяет строки, соответствующие шаблону regex
Сдерживание -contains коллекция содержит значение
-notcontains коллекция не содержит значения
-in значение находится в коллекции
-notin значение отсутствует в коллекции
Тип -is оба объекта имеют одинаковый тип
-isnot объекты разного типа

 

Логические операторы

Оператор Описание Пример
-and Логическое И. TRUE, когда оба утверждения истинны. (1 -eq 1) -and (1 -eq 2)

 

FALSE

-or Логическое ИЛИ. TRUE, когда любое из утверждений TRUE. (1 -eq 1) -or (1 -eq 2)

TRUE

-xor Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ. ИСТИНА, когда только одно утверждение является ИСТИНОЙ. (1 -eq 1) -xor (2 -eq 2)

FALSE

-not Логическое не. Отрицает утверждение, которое следует за ним. -not (1 -eq 1)

FLASE

! То же, что и -нет !(1 -eq 1)

FALSE

 

Оператор перенаправления

Оператор Описание Синтаксис
> Отправить указанный поток в файл n>
>> Добавить указанный поток в файл n>>
>&1 Перенаправляет указанный поток на поток Success n>&1

 

Операторы типа

Оператор Описание Пример
-isNot Возвращает TRUE, если входные данные не являются экземпляром указанного.NET типа. (get-date) -isNot [DateTime]

FALSE

-as Преобразует входные данные в указанный тип .NET. «5/7/07» -as [DateTime]

Monday, May 7, 2007 00:00:00

Другие операторы

Оператор Описание
() Оператор группировки Позволяет переопределить старшинство операторов в выражениях
&() Оператор подвыражения Выдает результат одного или нескольких утверждений
@( ) Оператор подвыражения массива Возвращает результаты одного или нескольких операторов в виде массивов.
& Фоновый оператор Конвейер перед & выполняется этой командой в задании Powershell.
[] Cast оператор Преобразует объекты к определенному типу.

 

Регулярные выражения

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

Метод Чувствительность к случаю
Select-String use -CaseSensitive switch
switch statement use the -casesensitive option
operators prefix with ‘c’ (-cmatch, -csplit, or -creplace)

 

Литералы символов

Регулярное выражение может быть литеральным символом или строкой.

Группы символов

Они позволяют сопоставить любое количество символов за один раз, в то время как [^character group] сопоставляет только символы, не входящие в группу.

Диапазон символов

Шаблон также может быть диапазоном символов. Символы могут быть алфавитными [A-Z], цифровыми [0-9] или даже [ -~] (все печатаемые символы) в формате ASCII.

Числа

Класс символов \d будет соответствовать любой десятичной цифре. И наоборот, \D будет соответствовать любой недесятичной цифре.

Словесный символ

Класс символов \w будет соответствовать любому символу слова [a-zA-Z_0-9]. Чтобы подобрать любой несловосочетаемый символ, используйте \W.

Подстановочный знак

Точка (.) является символом подстановки в регулярных выражениях. Он будет соответствовать любому символу, кроме новой строки (\n).

Пробел

Пробельные символы сопоставляются с помощью класса символов \s. Любой не пробельный символ сопоставляется с помощью \S. Буквальные символы пробела ‘ ‘ также могут быть использованы.

Экранирование символов

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

Следующие символы зарезервированы: []().\^$|?*+{}.

Подстановка в регулярном выражении.

Регулярные выражения с оператором -replace позволяют динамически заменять текст с помощью захваченного текста.

<input> -replace <original>, <substitute>

Управление потоком

ForEach-Object
ForEach-Object — это командлет, который позволяет выполнять итерации по элементам в конвейере, например, с помощью однострочных команд PowerShell. ForEach-Object будет передавать объекты по конвейеру.

Хотя параметр Module команды Get-Command принимает несколько значений, которые являются строками, он будет принимать их только через конвейерный ввод с помощью имени свойства или ввода параметра.

Если вы хотите передать две строки по значению в Get-Command для использования с параметром Module, используйте команду ForEach-Object:

$ComputerName = 'DC01', 'WEB01'

foreach ($Computer in $ComputerName) {

Get-ADComputer -Identity $Computer

}

 

For

Цикл «for» выполняет итерации, пока заданное условие истинно.

Например:

for ($i = 1; $i -lt 5; $i++) {

Write-Output "Sleeping for $i seconds"

Start-Sleep -Seconds $i

}

Do

В PowerShell существует два различных цикла «do». Do Until выполняется, пока заданное условие ложно.

Пример 1:

$number = Get-Random -Minimum 1 -Maximum 10

do {

$guess = Read-Host -Prompt "What's your guess?"

if ($guess -lt $number) {

Write-Output 'Too low!'

}

elseif ($guess -gt $number) {

Write-Output 'Too high!'

}

}

until ($guess -eq $number)

Пример 2:

$number = Get-Random -Minimum 1 -Maximum 10

do {

$guess = Read-Host -Prompt "What's your guess?"

if ($guess -lt $number) {

Write-Output 'Too low!'

} elseif ($guess -gt $number) {

Write-Output 'Too high!'

}

}

while ($guess -ne $number)

While

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

Например:

$date = Get-Date -Date 'November 22'

while ($date.DayOfWeek -ne 'Thursday') {

$date = $date.AddDays(1)

}

Write-Output $date

Переменные

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

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

Автоматические переменные: Эти переменные хранят состояние PowerShell и создаются PowerShell. Только PowerShell может изменять их значения по мере необходимости для поддержания точности. Пользователи не могут изменять значение этих переменных. Например, переменная $PSHOME будет хранить путь к директории установки PowerShell.

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

Чтобы создать новую переменную, необходимо использовать оператор присваивания и присвоить переменной значение. Объявлять переменную перед ее использованием не нужно. Значение по умолчанию для всех переменных — $null.

Например:

$MyVariable = 1, 2, 3

$MyVariable

Шпаргалка по PowerShell

Функция

Именование функции
Для именования функции используйте имя регистра Паскаля с утвержденным глаголом и существительным в единственном числе. Список утвержденных глаголов можно получить, выполнив Get-Verb:

Get-Verb | Sort-Object -Property Verb

Шпаргалка по PowerShell

Создание простой функции

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

Например:

function Get-Version {

$PSVersionTable.PSVersion

}

Шпаргалка по PowerShell

Работа с модулями

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

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

Установка модуля
Если вы получили модуль в виде папки, установите его перед использованием в командной строке PowerShell. Некоторые модули являются предустановленными. Вы можете использовать следующую команду для создания каталога Modules для текущего пользователя:

New-Item -Type Directory -Path $HOME\Documents\PowerShell\Modules

Шпаргалка по PowerShell

Скопируйте всю папку модуля в каталог Modules. Для копирования папки можно использовать любой метод, включая проводник Windows, Cmd.exe и PowerShell.

Поиск установленных модулей
Выполните следующие действия, чтобы найти модули, установленные в местоположении модулей по умолчанию (не импортированные).

Get-Module -ListAvailable

Шпаргалка по PowerShell

Поиск команд в модуле

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

Get-Command -Module <module-name>

Get-Command -Module Microsoft.PowerShell.Archive

Шпаргалка по PowerShell

Импортирование модуля

Выполните следующую команду с нужным именем модуля:

Import-Module <module-name>

Удаление имени модуля

Вы можете выполнить следующую команду с нужным именем модуля:

Remove-Module <module-name>

Просмотр расположения модулей по умолчанию

Используйте следующую команду для просмотра расположения модулей по умолчанию:

$Env:PSModulePath

Добавление местоположения модуля по умолчанию

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

$Env:PSModulePath = $Env:PSModulePath + ";<path>"

Добавление местоположения модуля по умолчанию в Linux или macOS

Используйте следующее, чтобы выполнить ту же команду, что и выше, только в Linux или macOS:

$Env:PSModulePath += ":<path>"

Хеш-таблицы

Хеш-таблица — это сложная структура данных для хранения данных в виде пар ключ-значение. Мы также называем хэш-таблицу словарем или ассоциативным массивом. Чтобы понять, что такое хэш-таблица, рассмотрим серию IP-адресов и соответствующие имена компьютеров. В хэш-таблице эти данные хранятся в виде пар ключ-значение, где IP-адреса обозначают ключи, а имена компьютеров — соответствующие им значения.

Синтаксис хэш-таблицы выглядит следующим образом:

@{ <name> = <value>; [<name> = <value> ] ...}

Синтаксис упорядоченного словаря выглядит следующим образом:

[ordered]@{ <name> = <value>; [<name> = <value> ] ...}

Создание хэш-таблиц

Если вы хотите создать хэш-таблицу, выполните следующие действия:

  • Начните хэш-таблицу со знака at (@) и заключите ее в фигурные скобки ({}).
  • Хэш-таблица должна содержать хотя бы одну пару ключ-значение, поэтому вводите данные после создания хэш-таблицы.
  • Отделите ключ от его значения с помощью знака равенства (=).
  • Разделяйте пары ключ/значение в хэш-таблице точкой с запятой (;).
  • Заключите пробел между ключами в кавычки. Значения должны быть допустимыми выражениями PowerShell. Также заключайте строки в кавычки, даже если между ними нет пробелов.
  • Сохраните хэш-таблицу как переменную, чтобы эффективно управлять ею.
  • При назначении упорядоченной хэш-таблицы переменной поместите атрибут [ordered] перед символом @. Если поместить его перед именем переменной, команда не выполнится.

Например:

$hash = @{}

$hash = @{ Number = 1; Shape = "Square"; Color = "Blue"}

[hashtable]$hash = [ordered]@{

Number = 1; Shape = "Square"; Color = "Blue"}

$hash

Добавление и удаление ключей и значений

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

$hash[«<key>»] = «<value>»

Например, вы можете добавить ключ «Time» со значением «Now» в хэш-таблицу с помощью следующего формата оператора:

$hash["Time"] = "Now"

или

$hash.Add("Time", "Now")

Или вы можете удалить ключ с помощью этого выражения:

$hash.Remove("Time")

Асинхронная обработка событий

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

Команды PowerShell для обработки событий

Имя командлета обработки событий Описание
Register-ObjectEvent Этот командлет регистрирует подписку на события для событий, генерируемых объектами .NET
Register-WmiEvent Регистрирует подписку на события для событий, генерируемых объектами WMI
Register-EngineEvent Регистрирует подписку на события для событий, генерируемых самим PowerShell
Get-EventSubscriber Получает список зарегистрированных подписок на события в сессии
Unregister-Event Удаляет одну или несколько зарегистрированных подписок на события
Wait-Event Ожидает наступления события. Эта команда может ждать определенного события или любого события. Она также позволяет указать тайм-аут, ограничивающий время ожидания события. По умолчанию ожидание длится вечно.
Get-Event Получает ожидающие необработанные события из очереди событий
Remove-Event Удаляет ожидающее событие из очереди событий
New-Event Эта команда вызывается в сценарии, чтобы позволить сценарию добавлять свои собственные события в очередь событий

 

Шпаргалка по PowerShell: заключение

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

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

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

Хотите расширить свои знания о командной строке Windows?

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

1. Как получить список команд PowerShell?
Вы можете использовать команду get-command.

2. Сколько существует команд PowerShell?
В PowerShell существует более 200 команд.

3. Как изучить PowerShell для начинающих?
Вы можете воспользоваться вводным руководством Microsoft по PowerShell. Оно содержит простой язык и простые примеры для лучшего понимания.

4. Является ли Windows PowerShell тем же самым, что и командная строка?
В следующей таблице приведены основные различия между PowerShell и командной строкой:

PowerShell Командная строка
Введен в 2006 году Введен в 1981 году
Работает как с пакетными командами, так и с командами PowerShell Работает только с пакетными командами
Позволяет создавать псевдонимы для команд или сценариев Не поддерживает создание псевдонимов команд
Позволяет передавать вывод команды другим командам. не позволяет передавать вывод команды другим командам.
Вывод осуществляется в виде объекта Вывод — просто текст
Можно выполнять последовательность команд в рамках сценария Требуется, чтобы одна команда завершилась раньше другой
Имеет библиотеки для программирования, так как построен на .net framework. Отсутствие библиотек программирования
Бесшовная интеграция с WMI Требуется внешний плагин для взаимодействия с WMI
Поддерживает системы Linux Не поддерживает системы Linux
Выполняет все типы программ Запускает только программы консольного типа

 

5. Как сделать командную строку по умолчанию вместо PowerShell?

Откройте Настройки > Персонализация > Панель задач. Теперь установите опцию «Заменить Command Prompt на Windows PowerShell» в меню, когда я нажимаю правой кнопкой мыши на кнопку «Пуск» или нажимаю клавиши Windows + X» в положение «Выкл».

Возможно вам так же будет интересно:

Скрипты Windows PowerShell для работы с Active Directory