Шпаргалка по PowerShell — это версия языка командной строки Windows, которая помогает вам легко выполнять и автоматизировать критически важные задачи в ваших системах. Но как выполнять эти задачи и максимально использовать PowerShell в своей системе Windows?
Мы составили шпаргалку по 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. Эти команды возвращают один или несколько объектов в конвейер, в конце которого мы упоминаем некоторые свойства объектов в следующей таблице, чтобы увидеть их значения, отображаемые на экране.
Команда | Описание |
|
Эта команда позволяет получить поддержку с помощью PowerShell. |
|
Эта команда предлагает вам список доступных PSDrives, таких как c, env, hklm, hkcu, alias и т.д. |
|
В любом реестре дочерние ключи — это подключи текущего ключа. Чтобы получить необходимые сведения, можно воспользоваться следующей командой. |
|
Выполните эту команду, чтобы рекурсивно перечислить все дочерние элементы текущего PSdrive, папки или ключа реестра. |
|
Используйте эту команду для включения скрытых папок (каталогов). |
|
Выполните любую из этих команд, чтобы получить список имен файлов и каталогов в текущей папке. |
|
Используйте эту команду, чтобы получить количество записей в коллекции объектов, возвращенных командой Get-Children. |
PSdrives
PSdrives — это коллекция объектов, сгруппированных вместе, чтобы к ним можно было получить доступ как к диску файловой системы. PSprovider» выполняет эту группировку.
По умолчанию сеанс PS может обращаться к нескольким PSdrives, включая c:, env:, alias: и HKLM:, где c: означает обычный диск c Windows; env: — это пространство переменных среды Windows; alias: — это коллекция псевдонимов команд; а HKLM — это ветка в реестре.
При любом сеансе PS пользователь попадает в свою домашнюю папку. Если вы хотите перейти из сеанса PS на другой диск PSdrive и получить информацию с этого диска, воспользуйтесь следующими командами:
Команды | Описание |
|
Символ подсказки изменится на «ENV:\>». Установите env, выполнив следующую команду:
|
|
Эта команда предоставит вам все переменные окружения. |
|
Используйте эту команду, чтобы получить переменные окружения «userprofile». |
|
Выполните следующую команду, чтобы изменить символ подсказки на » Alias». |
|
Выполните эту команду, чтобы получить все дочерние элементы всех псевдонимов. |
|
Используйте эту команду, чтобы снова получить приглашение «C:/>», вернувшись к диску по умолчанию. |
|
Выполните эту команду, чтобы узнать, что означает псевдоним «ls». |
Конвейеры
Cmdlets использует конвейеры для передачи объектов, но не потоков символов, как Unix. Символ конвейера — | (ASCII 124), за которым следует команда, обрабатывающая вывод, проходящий через конвейер. Конвейер состоит из следующих трех этапов.
Get-ChildItem *.txt | Where-Object length -lt 1000 | Sort-Object length
В следующей таблице приведены некоторые из основных команд конвейеров:
Команда | Описание |
|
Легко устанавливает значение свойства ‘lastwritetime.year’ на текущую дату и время, не влияя на содержимое файла. |
|
Предоставляет пустой результат |
|
Изменяет старые имена файлов и расширения файлов на новые |
|
Тривиальная команда переименования, вызывающая автоматическую переменную |
|
Если у передаваемого объекта $_ нет свойства (name), вы получите ошибку, так как параметр $_.name является null |
|
Отображает список имен всех файлов, присутствующих в текущей папке, отсортированных в алфавитном порядке. |
|
Перемещает все файлы в подкаталог папки |
|
Выдает сообщение об ошибке, что Move-Item не имеет входа |
Alias (Алиас)
Cmdlets поддерживают несколько псевдонимов. В следующей таблице приведены некоторые псевдонимы и их описания:
Команда | Описание |
|
Добавляет значение к файлу |
|
Поиск содержимого файла в массиве |
|
Изменение папки, ключа или диска PS |
|
Очищает консоль |
|
Удаление файлов |
|
Списки папок, ключей или дочерних элементов PSDrive |
|
Отправляет массив в консоль, конвейер или перенаправляет его в файл |
|
Обход каждого объекта в конвейере |
|
Форматирует таблицу с выбранными свойствами для каждого объекта в каждом столбце |
|
Форматирует свойства процесса по имени |
|
Обеспечивает псевдоним командлета |
|
Предоставляет вам команды только из текущей сессии |
|
Извлечение всех членов объекта |
|
Предоставляет свойства указанного элемента |
|
Получает текущее значение для указанного свойства при использовании параметра name |
|
Находит имена переменных сеансов |
|
Создает новый файл, каталог, символическую ссылку, ключ реестра или запись реестра. |
|
Выдает полный список всех запущенных процессов |
|
Предоставляет местоположение текущего каталога или ключа реестра |
|
Переименовывает старое имя элемента в новое имя |
|
Удаляет указанный каталог, файлы или ключи реестра |
|
Удаляет указанную переменную |
|
Приостанавливает деятельность на определенный период времени |
Операторы
Арифметические операторы
Оператор | Описание | Пример |
+ | Складывает целые числа; объединяет | 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
Функция
Именование функции
Для именования функции используйте имя регистра Паскаля с утвержденным глаголом и существительным в единственном числе. Список утвержденных глаголов можно получить, выполнив Get-Verb:
Get-Verb | Sort-Object -Property Verb
Создание простой функции
Для создания простой функции используйте ключевое слово function, за которым следует имя функции. Затем используйте открытую и закрывающую фигурные скобки. Функция будет выполнять код, содержащийся в этих фигурных скобках.
Например:
function Get-Version { $PSVersionTable.PSVersion }
Работа с модулями
Модуль — это пакет, содержащий объекты PowerShell, такие как команды, провайдеры, функции, рабочие процессы, значения переменных и псевдонимы. Элементы пакета можно реализовать в сценарии PowerShell, скомпилированной библиотеке DLL или и в том, и в другом. PowerShell автоматически импортирует модули при первом запуске любой команды в установленном модуле. Вы можете использовать команды в модуле без настройки или конфигурации профиля.
Как использовать модуль
Чтобы использовать любой модуль, его необходимо сначала установить. Затем найдите команду, которая поставляется вместе с модулем, и используйте ее.
Установка модуля
Если вы получили модуль в виде папки, установите его перед использованием в командной строке PowerShell. Некоторые модули являются предустановленными. Вы можете использовать следующую команду для создания каталога Modules для текущего пользователя:
New-Item -Type Directory -Path $HOME\Documents\PowerShell\Modules
Скопируйте всю папку модуля в каталог Modules. Для копирования папки можно использовать любой метод, включая проводник Windows, Cmd.exe и PowerShell.
Поиск установленных модулей
Выполните следующие действия, чтобы найти модули, установленные в местоположении модулей по умолчанию (не импортированные).
Get-Module -ListAvailable
Поиск команд в модуле
Выполните следующую команду, чтобы найти команды модуля:
Get-Command -Module <module-name> Get-Command -Module Microsoft.PowerShell.Archive
Импортирование модуля
Выполните следующую команду с нужным именем модуля:
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
June 11th, 2015
Summary: Ed Wilson, Microsoft Scripting Guy, provides a table of basic Windows PowerShell commands.
Microsoft Scripting Guy, Ed Wilson, is here. Some questions are simply confusing, and other questions can be misleading, or even wrong. What do I mean? Well, I recently received a question from a person who wanted to know how to “use WMI to do xyz…”
Such a question betrays an assumption. For example, it may be that the best way to accomplish a specific task is to not use WMI, but to use “native Windows PowerShell” functionality. Certainly, for example, I would use Get-Process to retrieve process information on my local computer—unless there was something that WMI would do differently or provide an alternate capability.
At times, I will clarify a person’s question, intention, and goals. At other times, I will directly answer the question, and then suggest a better way to accomplish what I think the goal is. Other times, I will answer what I think their question is and be done with it.
When a person asks about Windows PowerShell commands, are they really talking about native Windows PowerShell commands (such as the language statements For, Foreach, or Switch)? Or are they talking about Windows PowerShell cmdlets? Or are they talking about a string of Windows PowerShell cmdlets that taken together become a unique Windows PowerShell command?
When I am writing my Windows PowerShell books (such as my book, Windows PowerShell Best Practices), I tend to call a collection of Windows PowerShell cmdlets that are strung together to accomplish a specific task in a Windows PowerShell command.
But at other times, I actually vary my answer according to what I perceive to be the level of expertise of the questioner. For example, often people will come to me after I have spoken at a conference (such as the IT Pro Camp in Jacksonville where Teresa and I will be speaking this Saturday). If they ask something like, “I know nothing about Windows PowerShell. Can you tell me the most basic Windows PowerShell commands?” I will not necessarily take the time to tell them that they are probably asking about cmdlets, not commands.
With this in mind, the following chart lists Windows PowerShell command aliases, the Windows PowerShell cmdlet name, and a description of what the command actually does.
Command alias |
Cmdlet name |
Description of command |
% |
ForEach-Object |
Performs an operation against each item in a collection of input objects. |
? |
Where-Object |
Selects objects from a collection based on their property values. |
ac |
Add-Content |
Appends content, such as words or data, to a file. |
asnp |
Add-PSSnapIn |
Adds one or more Windows PowerShell snap-ins to the current session. |
cat |
Get-Content |
Gets the contents of a file. |
cd |
Set-Location |
Sets the current working location to a specified location. |
chdir |
Set-Location |
Sets the current working location to a specified location. |
clc |
Clear-Content |
Deletes the contents of an item, but does not delete the item. |
clear |
Clear-Host |
Clears the display in the host program. |
clhy |
Clear-History |
Deletes entries from the command history. |
cli |
Clear-Item |
Deletes the contents of an item, but does not delete the item. |
clp |
Clear-ItemProperty |
Deletes the value of a property but does not delete the property. |
cls |
Clear-Host |
Clears the display in the host program. |
clv |
Clear-Variable |
Deletes the value of a variable. |
cnsn |
Connect-PSSession |
Reconnects to disconnected sessions |
compare |
Compare-Object |
Compares two sets of objects. |
copy |
Copy-Item |
Copies an item from one location to another. |
cp |
Copy-Item |
Copies an item from one location to another. |
cpi |
Copy-Item |
Copies an item from one location to another. |
cpp |
Copy-ItemProperty |
Copies a property and value from a specified location to another location. |
curl |
Invoke-WebRequest |
Gets content from a webpage on the Internet. |
cvpa |
Convert-Path |
Converts a path from a Windows PowerShell path to a Windows PowerShell provider path. |
dbp |
Disable-PSBreakpoint |
Disables the breakpoints in the current console. |
del |
Remove-Item |
Deletes files and folders. |
diff |
Compare-Object |
Compares two sets of objects. |
dir |
Get-ChildItem |
Gets the files and folders in a file system drive. |
dnsn |
Disconnect-PSSession |
Disconnects from a session. |
ebp |
Enable-PSBreakpoint |
Enables the breakpoints in the current console. |
echo |
Write-Output |
Sends the specified objects to the next command in the pipeline. If the command is the last command in the pipeline, the objects are displayed in the console. |
epal |
Export-Alias |
Exports information about currently defined aliases to a file. |
epcsv |
Export-Csv |
Converts objects into a series of comma-separated (CSV) strings and saves the strings in a CSV file. |
epsn |
Export-PSSession |
Imports commands from another session and saves them in a Windows PowerShell module. |
erase |
Remove-Item |
Deletes files and folders. |
etsn |
Enter-PSSession |
Starts an interactive session with a remote computer. |
exsn |
Exit-PSSession |
Ends an interactive session with a remote computer. |
fc |
Format-Custom |
Uses a customized view to format the output. |
fl |
Format-List |
Formats the output as a list of properties in which each property appears on a new line. |
foreach |
ForEach-Object |
Performs an operation against each item in a collection of input objects. |
ft |
Format-Table |
Formats the output as a table. |
fw |
Format-Wide |
Formats objects as a wide table that displays only one property of each object. |
gal |
Get-Alias |
Gets the aliases for the current session. |
gbp |
Get-PSBreakpoint |
Gets the breakpoints that are set in the current session. |
gc |
Get-Content |
Gets the contents of a file. |
gci |
Get-ChildItem |
Gets the files and folders in a file system drive. |
gcm |
Get-Command |
Gets all commands. |
gcs |
Get-PSCallStack |
Displays the current call stack. |
gdr |
Get-PSDrive |
Gets drives in the current session. |
ghy |
Get-History |
Gets a list of the commands entered during the current session. |
gi |
Get-Item |
Gets files and folders. |
gjb |
Get-Job |
Gets Windows PowerShell background jobs that are running in the current session. |
gl |
Get-Location |
Gets information about the current working location or a location stack. |
gm |
Get-Member |
Gets the properties and methods of objects. |
gmo |
Get-Module |
Gets the modules that have been imported or that can be imported into the current session. |
gp |
Get-ItemProperty |
Gets the properties of a specified item. |
gps |
Get-Process |
Gets the processes that are running on the local computer or a remote computer. |
group |
Group-Object |
Groups objects that contain the same value for specified properties. |
gsn |
Get-PSSession |
Gets the Windows PowerShell sessions on local and remote computers. |
gsnp |
Get-PSSnapIn |
Gets the Windows PowerShell snap-ins on the computer. |
gsv |
Get-Service |
Gets the services on a local or remote computer. |
gu |
Get-Unique |
Returns unique items from a sorted list. |
gv |
Get-Variable |
Gets the variables in the current console. |
gwmi |
Get-WmiObject |
Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes. |
h |
Get-History |
Gets a list of the commands entered during the current session. |
history |
Get-History |
Gets a list of the commands entered during the current session. |
icm |
Invoke-Command |
Runs commands on local and remote computers. |
iex |
Invoke-Expression |
Runs commands or expressions on the local computer. |
ihy |
Invoke-History |
Runs commands from the session history. |
ii |
Invoke-Item |
Performs the default action on the specified item. |
ipal |
Import-Alias |
Imports an alias list from a file. |
ipcsv |
Import-Csv |
Creates table-like custom objects from the items in a CSV file. |
ipmo |
Import-Module |
Adds modules to the current session. |
ipsn |
Import-PSSes |
Imports commands from another session into the current session. |
irm |
Invoke-RestMethod |
Sends an HTTP or HTTPS request to a RESTful web service. |
ise |
powershell_ise.exe |
Explains how to use the PowerShell_ISE.exe command-line tool. |
iwmi |
Invoke-WMIMethod |
Calls Windows Management Instrumentation (WMI) methods. |
iwr |
Invoke-WebRequest |
Gets content from a web page on the Internet. |
kill |
Stop-Process |
Stops one or more running processes. |
lp |
Out-Printer |
Sends output to a printer. |
ls |
Get-ChildItem |
Gets the files and folders in a file system drive. |
man |
help |
Displays information about Windows PowerShell commands and concepts. |
md |
mkdir |
Creates a new item. |
measure |
Measure-Object |
Calculates the numeric properties of objects, and the characters, words, and lines in string objects, such as files of text. |
mi |
Move-Item |
Moves an item from one location to another. |
mount |
New-PSDrive |
Creates temporary and persistent mapped network drives. |
move |
Move-Item |
Moves an item from one location to another. |
mp |
Move-ItemProperty |
Moves a property from one location to another. |
mv |
Move-Item |
Moves an item from one location to another. |
nal |
New-Alias |
Creates a new alias. |
ndr |
New-PSDrive |
Creates temporary and persistent mapped network drives. |
ni |
New-Item |
Creates a new item. |
nmo |
New-Module |
Creates a new dynamic module that exists only in memory. |
npssc |
New-PSSessionConfigurationFile |
Creates a file that defines a session configuration. |
nsn |
New-PSSession |
Creates a persistent connection to a local or remote computer. |
nv |
New-Variable |
Creates a new variable. |
ogv |
Out-GridView |
Sends output to an interactive table in a separate window. |
oh |
Out-Host |
Sends output to the command line. |
popd |
Pop-Location |
Changes the current location to the location most recently pushed to the stack. You can pop the location from the default stack or from a stack that you create by using the Push-Location cmdlet. |
ps |
Get-Process |
Gets the processes that are running on the local computer or a remote computer. |
pushd |
Push-Location |
Adds the current location to the top of a location stack. |
pwd |
Get-Location |
Gets information about the current working location or a location stack. |
r |
Invoke-History |
Runs commands from the session history. |
rbp |
Remove-PSBreakpoint |
Deletes breakpoints from the current console. |
rcjb |
Receive-Job |
Gets the results of the Windows PowerShell background jobs in the current session. |
rcsn |
Receive-PSSession |
Gets results of commands in disconnected sessions. |
rd |
Remove-Item |
Deletes files and folders. |
rdr |
Remove-PSDrive |
Deletes temporary Windows PowerShell drives and disconnects mapped network drives. |
ren |
Rename-Item |
Renames an item in a Windows PowerShell provider namespace. |
ri |
Remove-Item |
Deletes files and folders. |
rjb |
Remove-Job |
Deletes a Windows PowerShell background job. |
rm |
Remove-Item |
Deletes files and folders. |
rmdir |
Remove-Item |
Deletes files and folders. |
rmo |
Remove-Module |
Removes modules from the current session. |
rni |
Rename-Item |
Renames an item in a Windows PowerShell provider namespace. |
rnp |
Rename-ItemProperty |
Renames a property of an item. |
rp |
Remove-ItemProperty |
Deletes the property and its value from an item. |
rsn |
Remove-PSSession |
Closes one or more Windows PowerShell sessions (PSSessions). |
rsnp |
Remove-PSSnapin |
Removes Windows PowerShell snap-ins from the current session. |
rujb |
Resume-Job |
Restarts a suspended job |
rv |
Remove-Variable |
Deletes a variable and its value. |
rvpa |
Resolve-Path |
Resolves the wildcard characters in a path, and displays the path contents. |
rwmi |
Remove-WMIObject |
Deletes an instance of an existing Windows Management Instrumentation (WMI) class. |
sajb |
Start-Job |
Starts a Windows PowerShell background job. |
sal |
Set-Alias |
Creates or changes an alias (alternate name) for a cmdlet or other command element in the current Windows PowerShell session. |
saps |
Start-Process |
Starts one or more processes on the local computer. |
sasv |
Start-Service |
Starts one or more stopped services. |
sbp |
Set-PSBreakpoint |
Sets a breakpoint on a line, command, or variable. |
sc |
Set-Content |
Replaces the contents of a file with contents that you specify. |
select |
Select-Object |
Selects objects or object properties. |
set |
Set-Variable |
Sets the value of a variable. Creates the variable if one with the requested name does not exist. |
shcm |
Show-Command |
Creates Windows PowerShell commands in a graphical command window. |
si |
Set-Item |
Changes the value of an item to the valu |
PowerShell is a command-line interface for Windows 10 and 11. It provides a powerful scripting environment for automating system administration tasks. Built on the .NET Framework, it enables you to access and manipulate objects in Windows more easily and concisely than traditional shells, such as the Command Prompt. PowerShell commands, which are also called ‘cmdlets’, let you interact with your operating system like a pro and simplify complex tasks. Below is a list of all the essential commands for this powerful tool that will help you accomplish basic and advanced tasks.
The PowerShell interface consists of a console window and an integrated scripting environment (ISE). With its intuitive syntax and robust functionality, PowerShell enables users to perform a myriad of operations such as managing files and folders, manipulating registry entries, configuring network settings, executing remote management actions, or even accessing Active Directory resources. From basic administrative tasks like creating new user accounts or restarting services to more advanced functions like auditing security permissions or querying database information through SQL Server cmdlets – the possibilities are virtually limitless with PowerShell.
In this guide, we’ll introduce you to the basics of working with Windows PowerShell. We’ll start with an overview of the PowerShell console and its default settings. Then we’ll dive into working with cmdlets (command-lets) or commands which are the basic building blocks of any PowerShell script. There are commands for almost any system-level task. For example, you can use $PSVersionTable
to check the PowerShell version installed on your computer.
In most cases, people use the terms ‘command’ and ‘cmdlet’ synonymously. Both work like instructions for PowerShell telling it to perform specific tasks. However, there are a few differences between commands and cmdlets that you should keep in mind.
Below are some basic PowerShell terms and shortcut keys you should know, especially if you are a beginner. It is easy to launch this command-line tool but there are 17 ways to open PowerShell in Windows 10 and 11.
PowerShell commands and cmdlets form an extensive repertoire of tools that empower automation, streamline administrative tasks, and manipulate computer systems with precision. The following useful PowerShell commands are essential for any beginner or system admin seeking to optimize their efficiency in managing Windows environments.
Command name/Cmdlet | Alias | Description |
---|---|---|
Add-Content | ac | Adds content to the specified files. For instance, you can add words to a file. |
Add-PSSnapIn | asnp | Adds PowerShell snap-ins to the current session. |
Clear-Content | clc | Deletes the contents of a file while retaining the file. |
Clear-History | clhy | Deletes specific entries from the command history. |
Clear-Host | cls, clear | Removes all text (commands and output) from the current display. |
Clear-ItemProperty | clp | Clears the value of a property. |
Clear-Variable | clv | Clears the value of a variable. |
Compare-Object | compare, dif | Compares two sets of objects directly by generating reports on the differences between the objects. |
Connect-PSSession | cnsn | Reconnects to the disconnected sessions. |
Copy-Item | copy, cp, cpi | Copies files and folders from a source file path to the destination file path. |
Copy-ItemProperty | cpp | Copies the value of a property from a specified location to another location. |
Disable-PSBreakpoint | dbp | Disables the breakpoints in the current PowerShell console. |
Disconnect-PSSession | dnsn | Disconnects from a PowerShell session. |
Enable-PSBreakpoint | ebp | Enables the breakpoints in the current PowerShell console. |
Enter-PSSession | etsn | Starts a PowerShell session with a remote computer. |
Exit-PSSession | exsn | Ends a PowerShell session with a remote computer. |
Export-Alias | epal | Exports information about currently defined aliases to a file. |
Export-Csv | epcsv | Converts objects into a series of character-separated values and saves the strings in a CSV file. |
Export-PSSession | epsn | Exports cmdlets and functions from another session on a computer and saves them in a PowerShell module. |
ForEach-Object | %, foreach | Performs modification or formatting on every item in a specified group of input objects (or items). |
Format-Custom | fc | Uses a customized view to display objects while retaining their basic structure. |
Format-List | fl | Formats the output of a command as a list of properties, showing each property on a new line. |
Format-Table | ft | Formats the output into table form. |
Get-Alias | gal | Gets the alias names for the cmdlets, functions, and scripts for the current session in PowerShell. If you want to find out or check the alias for a specific cmdlet, you can use Get-Alias -Definition cmdlet-name or gal -d cmdlet-name . |
Get-ChildItem | gci, dir, ls | Gets the files and folders from one or more specified locations, such as a file system directory, registry hive, or certificate store. |
Get-Command | gcm | Displays the list of all PowerShell commands and functions. |
Get-Content | gc, type | Gets the contents from a file without opening it and returns each text file line as a string object. |
Get-Date | Gets the current date and time. | |
Get-Help | Helps you to get to know all the PowerShell commands, their parameters, functions, scripts, workflows, etc. | |
Get-History | h, ghy, history | Displays the list of the previous commands used in the current session. |
Get-HotFix | Gets hotfixes or updates that have been installed on either the local computer or remote computer. | |
Get-Item | gi | Gets files and folders at the specified location but doesn’t get the contents of the item unless you use a wildcard (*). |
Get-ItemProperty | gp | Gets the registry entries or values in the readable format in the console. |
Get-Job | gjb | Gets the list of jobs running in the background, and those that have completed in the current session. |
Get-Location | gl, pwd | Gets an object that represents the current directory within PowerShell. |
Get-Member | gm | Displays the properties, methods, and different members of an object. |
Get-Module | gmo | Displays the list of all the modules that are loaded behind the scene. You can use the cmdlet Get-Module -ListAvailable to view the list of all available modules. A module is a collection of cmdlets, variables, functions, and workflows. |
Get-PSBreakpoint | gbp | Retrieves all current breakpoints that are set in the current session. This cmdlet can help you debug PowerShell. |
Get-PSCallStack | gcs | Displays the call stack or all commands executed in the current session. With this cmdlet, you can see a history of all commands run as part of a single execution step. |
Get-PSDrive | gdr | Displays the variety of drives exposed by Windows PowerShell in the current session. |
Get-PSSession | gsn | Displays the sessions created in the current Windows PowerShell session on local and remote computers. |
Get-PSSnapIn | gsnp | Displays the Windows PowerShell snap-in. |
Get-Process | ps, gps | Retrieves the list of all running applications and processes on a local or remote computer. It shows the process owner, the process ID, or even where on disk the process is located. |
Get-Service | gsv | Displays the list of all installed services, their status (such as running or stopped), and startup type on a local or remote computer. You can use parameters to include or exclude services. |
Get-Unique | gu | Returns unique items from a sorted list. PowerShell cmdlet Select-Object -Unique does the same job but it’s a bit different because it does not require objects to be pre-sorted. |
Get-Variable | gv | Displays the names and the values of the PowerShell variables in the current console. |
Get-WmiObject | gwmi | Searches for different WMI (Windows Management Instrumentation) classes on a system. Using this cmdlet, you can get any information about a Windows computer and its components. |
Group-Object | group | Groups similar objects together based on common properties. |
Import-Alias | ipal | Imports an alias list from a specified file in PowerShell. |
Import-Csv | ipcsv | Fetch the information contained in a CSV file and create a table-like structure. |
Import-Module | ipmo | Imports modules to the current session. |
Import-PSSession | ipsn | Imports command from a remote computer into the current session. |
Invoke-Command | icm | Runs a command or a script and returns the results as an expression on a local or remote computer. |
Invoke-Expression | iex | Runs a specified string as a command on the local computer. |
Invoke-History | r, ihy | Runs commands from the command history in the current session. |
Invoke-Item | ii | Runs or opens the specified item (depending on the file type) in the program associated with the file type. |
Invoke-RestMethod | irm | Sends HTTP or HTTPS requests using various HTTP methods to REST API endpoints. It is an alternative to Invoke-WebRequest. |
Invoke-WMIMethod | iwmi | Launches a create process WMI(Windows Management Instrumentation) method of the WIN32_Process class. |
Invoke-WebRequest | curl, iwr, wget | Sends HTTP, HTTPS, FTP, and FILE requests to a web page or web service on the Internet. |
mkdir | md | Creates a new directory. |
Measure-Object | measure | Measures how large an object is by calculating the numeric properties of the object in terms of characters, words, and lines. |
Move-Item | mi, mv, move | Moves a file, folder, or registry along with its properties, contents, and child items from one location to another location. |
Move-ItemProperty | mp | Moves the property of an item from one place to another. |
New-Alias | nal | Creates a new alias. |
New-Item | ni | Creates a new item. |
New-Module | nmo | Creates a dynamic module from a script block. |
New-PSDrive | ndr, mount | Creates a new temporary or persistent drive with various Windows PowerShell provider types. To create a new PSDrive you’ll need to provide a drive name, the provider, and the location. |
New-PSSession | nsn | Creates a persistent connection to a local or remote computer. |
New-PSSessionConfigurationFile | npssc | Creates a persistent PowerShell connection to a local or remote host. |
New-Variable | nv | Creates a new variable by simply assigning it a value. |
Out-GridView | ogv | Displays data as an interactive table (the GUI format) that can be filtered or sorted based on different criteria. |
Out-Host | oh | Sends output to the Windows PowerShell host for display. |
Out-Printer | lp | Sends output to the connected printer. |
Pop-Location | popd | Changes the current location to the path at the top of the directory stack. |
Push-Location | pushd | Pushes or adds the current location to the top of a location stack called ‘Paths’ and sets the C:\Program Files\PowerShell\ directory as the current directory. |
Receive-Job | rcjb | Fetches the results of Windows PowerShell background jobs, such as those started by using the Start-Job cmdlet. |
Receive-PSSession | rcsn | Fetches the results of PowerShell sessions that were disconnected intentionally using the Disconnect-PSSession cmdlet. |
Remove-Item | del, erase, rd, ri, rm, rmdir | Deletes items from specific locations like files, folders, registry keys, variables, and functions. You can use parameters to include or exclude items. You can use this command to delete files with very long names using PowerShell. |
Remove-ItemProperty | rp | Deletes registry values and stored data of an item. |
Remove-Job | rjb | Deletes a Windows PowerShell background job. Deletes n stopped or completed background job in PowerShell, You need to mention the ‘-id n’ or ‘-name xxx’ to specify the job you want to remove. |
Remove-Module | rmo | Deletes module objects (cmdlets and functions) from the PowerShell session. |
Remove-PSBreakpoint | rbp | Disables the breakpoint from the current console so they are not hit when the script runs. |
Remove-PSDrive | rdr | Removes temporary PowerShell drives created with New-PSDrive. To remove multiple drives together, you should separate them using a comma (,). |
Remove-PSSession | rsn | Closes PowerShell sessions, stops any running commands in the current session, ends the PSSession, and also closes the connection between the local and remote computers. |
Remove-PSSnapin | rsnp | Unloads a snap-in from the current PowerShell session. |
Remove-Variable | rv | Removes the variable and its value defined in PowerShell. |
Remove-WMIObject | rwmi | Removes a WMI (Windows Management Instrumentation) class. |
Rename-Item | ren, rni | Renames items such as files and directories in a PowerShell provider namespace. |
Rename-ItemProperty | rnp | Renames an item’s property without changing its value. |
Resolve-Path | rvpa | Resolves the wildcard characters in a path and displays the items and containers at the location specified by the path. |
Resume-Job | rujb | Resumes a suspended job. |
Select-Object | select | Selects specific properties from an object or dataset. |
Select-String | sls | Searches for text and text patterns in input strings and files. |
Set-Alias | sal | Creates or changes an alias (alternate name) for a cmdlet or other command element in the current PowerShell session. |
Set-Content | sc | Writes or replaces the content in an item with new content. |
Set-Item | si | Changes the value of an item to the value specified in the command. |
Set-ItemProperty | sp | Sets the value of the property of the specified object. |
Set-Location | cd, chdir, sl | Changes the current directory or location to a location you specify. |
Set-PSBreakpoint | sbp | Sets the line breakpoint in the script. |
Set-Variable | set, sv | Assigns a value to a variable or changes the current value. If the specified variable doesn’t exist, the cmdlet will create it. |
Show-Command | shcm | Lets you find the parameters and syntax of other PowerShell cmdlets graphically. |
Sort-Object | sort | Sorts objects in ascending or descending order based on the values of properties. |
Start-Job | sajb | Starts a Windows PowerShell background job without interacting with the current session. |
Start-Process | saps, start | Starts single or multiple processes on the local computer. |
Start-Service | sasv | Start one or more stopped services on the system. |
Start-Sleep | sleep | Suspends the activity in a script or session for a certain period of time. |
Stop-Job | spjb | Stops all or stop selected jobs based on their name, ID, instance ID, or state. |
Stop-Process | kill | Forcibly kills or stops the running processes. |
Suspend-Job | sujb | Suspends workflow jobs by temporarily interrupting or pausing them. |
Wait-Job | wjb | Suspends the command prompt until the PowerShell background tasks running in the session are complete. |
Where-Object | ?, where | Filters objects based on their property values. |
Write-Output | echo, write | Sends any object or data type, such as strings, integers, arrays, and complex objects to the next command in the pipeline. |
When delving into the realm of systems administration, it is imperative to acquaint oneself with an extensive range of PowerShell commands and cmdlets. If you think I have missed any essential command in this list, please drop a comment.
PowerShell is a useful Windows command-line language version that helps you seamlessly perform and automate critical tasks on your systems. But how can you perform these tasks and make the most of PowerShell on your Windows system?
Don’t worry — we’ve compiled a PowerShell cheat sheet documenting PowerShell syntax and all the PowerShell commands to help you optimize PowerShell and even prepare for job interviews.
Download Our PowerShell Cheat Sheet PDF Here.
PowerShell Cheat Sheet
Let’s start with a quick introduction to Windows 10 PowerShell commands.
PowerShell Basics
PowerShell is a cross-platform and a commonly used task automation solution combining the power of the command-line shell, a scripting language, and a configuration management framework. You can run PowerShell on Windows, Linux, and macOS operating systems. Unlike other available shells that only accept and return data, PowerShell accepts and returns .NET objects.
This shell comes with the following features.
- Robust command-line history
- Extensive features, like tab completion and command prediction
- Command and parameter aliases
- Pipeline for changing commands
- In-console help system, like Unix man pages
Considering the features of any scripting language, you can use PowerShell to automate the system management process and task. It lets you build, test, and deploy solutions in CI/CD environments.
PowerShell is built on the .NET Common Language Runtime (CLR), which means all the inputs and outputs are .NET objects. You do not have to parse text output to retrieve information from it.
The PowerShell scripting language comes with the following features.
- Functions, classes, objects, and modules
- Easy formatting system for providing clear output for enhanced readability
- Built-in support for different data formats, such as CSV, JSON, and XML
- Type system for creating dynamic types
Now, let’s get into some useful PowerShell commands.
Introduction to Windows PowerShell 5.1
PowerShell Commands Cheat Sheet
cmdlets
Cmdlets are PowerShell’s internal commands. These cmdlets will return one or more objects to the pipeline where at the end of that pipeline, we mention some properties of the objects in the following table to see their values displayed on the screen.
Command |
Description |
|
This command allows you to get support with PowerShell. |
|
This command offers you a list of available PSDrives, such as c, env, hklm, hkcu, alias, etc. |
|
In any registry, children are the subkeys of the current key. To get the required details, you can use the following command. |
|
Run this command to list all the children recursively of the current PSdrive, folder, or registry key. |
|
Use this command To include the hidden folders (directories). |
|
Run any of these commands to get the list file and directory names in the current folder. |
|
Use this command to get the number of entries in the collection of objects returned by the Get-Children. |
PSdrives
PSdrives are the collection of entities grouped together so they can be accessed as a filesystem drive. The “PSprovider” does this grouping.
By default, a PS session can access several PSdrives including c:, env:, alias:, and HKLM:, where c: refers to the usual Windows c-drive; env: is the space of Windows environmental variables; alias: is the collection of cmdlet aliases; and HKLM is a hive in the registry.
Any PS session will enter the user’s home folder. If you want to switch from a PS session to another PSdrive and retrieve the information from that drive, consider the following commands:
Commands |
Description |
|
The prompt character will change to the “ENV:\>”. Set-Location env by running the following command:
|
|
This command will get you all the environment variables. |
|
Use this command to get the environment variables of “userprofile.” |
|
Run the following command to change the prompt character to “Alias.” |
|
Run this command to get all the children of all aliases. |
|
Use this command to get the “C:/>” prompt again, back to the default drive. |
|
Run this command to find what alias “ls” stands for. |
Pipelines
Cmdlets uses the pipelines to pass the objects but not the character streams like Unix. The pipeline character is | (ASCII 124), followed by a command that handles the output passed through the pipeline. The pipeline consists of the following three stages.
Get-ChildItem *.txt | Where-Object length -lt 1000 | Sort-Object length
The following table highlights some of the basic pipeline commands:
Command |
Description |
|
Easily sets the value of the ‘lastwritetime.year’ property to the present date and time without affecting the file’s content. |
|
Provides an empty result |
|
Changes the old file names and file extensions to the new ones |
|
A trivial renaming command that invokes an automatic variable |
|
If the piped object $_ doesn’t have the member property (name), you will receive an error, as parameter $_.name is null |
|
Displays the list of the names of all the files that are present in the current folder sorted in alphabetical order. |
|
Moves all the files to the folder subdirectory |
|
Gives the error message that Move-Item lacks input |
Alias
Cmdlets come with several aliases. The following table highlights a few of aliases, along with their descriptions:
Command |
Description |
|
Appends value to a file |
|
Finds file content in an array |
|
Changes folder, key, or PS drive |
|
Clears console |
|
Delete files |
|
Lists Folder, Key, or PSDrive Children |
|
Sends the array to the console, pipeline, or redirect it to the file |
|
Traverses each object in a pipeline |
|
Formats the table with selected properties for each object in each column |
|
Formats the process properties by name |
|
Provides Cmdlet Alias |
|
Provides you with commands from the current session only |
|
Retrieves all the object members |
|
Provides the specified item’s properties |
|
Gives the current value for a specified property while using the name parameter |
|
Finds session variable names and sessions |
|
Creates a new file, directory, symbolic link, registry key, or registry entry |
|
Gives the entire list of all the running processes |
|
Provides the current directory’s or registry key’s location |
|
Renames the old item name with the new name |
|
Removes the specified directory, files, or registry keys |
|
Removes the specified variable |
|
Suspends an activity for a specified period of time |
Operators
-
Arithmetic Operators
Operator |
Description |
Example |
+ |
Adds integers; concatenates |
6 + 2 |
strings, arrays, and hash tables. |
«file» + «name» @(1, «one») + @(2.0, «two») @{«one» = 1} + @{«two» = 2} |
|
+ |
Makes a number out of an object |
123 |
— |
Subtracts one value from another |
6 — 2 |
— |
Calculates the opposite number |
— -6 |
(Get-Date).AddDays(-1) |
||
* |
Multiply numbers or copy strings and arrays for a specified number of times |
6 * 2 |
@(«!») * 4 |
||
«!» * 3 |
||
/ |
Divides two values |
6 / 2 |
% |
Modulus — returns the remainder of a division operation |
7 % 2 |
-band |
Bitwise AND |
5 -band 3 |
-bnot |
Bitwise NOT |
-bnot 5 |
-bor |
Bitwise OR |
5 -bor 0x03 |
-bxor |
Bitwise XOR |
5 -bxor 3 |
-shl |
Shifts bits to the left |
102 -shl 2 |
-shr |
Shifts bits to the right |
102 -shr 2 |
- Operator Precedence
Precedence |
Operator |
Description |
1 |
() |
Parentheses |
2 |
— |
For a negative number or unary operator |
3 |
*, /, % |
For multiplication and division |
4 |
+,- |
For addition and subtraction |
5 |
-band, -bnot, -bor, -bxor, -shr, and -shl |
For bitwise operations |
- Assignment Operators
Operator |
Description |
= |
Sets a variable’s value to the specified value |
+= |
Increases a variable’s value by the specified value or appends the specified value to the existing value |
-= |
Decreases a variable’s value by a specified value |
*= |
Multiplies a variable’s value by a specified value, or appends the specified value to the existing value |
/= |
Divides a variable’s value by a specified value |
%= |
Divides the variable’s value by a specified value and then assigns the remainder (modulus) to the variable. |
#ERROR! |
Increases a variable’s value, assignable property, or array element by 1. |
— |
Decreases the variable’s value, assignable property, or array element by 1. |
- Comparison Operators
Type |
Operator |
Comparison test |
Equality |
-eq |
equals |
-ne |
not equals |
|
-gt |
greater than |
|
-ge |
greater than or equal |
|
-lt |
less than |
|
-le |
less than or equal |
|
Matching |
-like |
string matches wildcard pattern |
-notlike |
string doesn’t match wildcard pattern |
|
-match |
string matches regex pattern |
|
-notmatch |
string doesn’t match regex pattern |
|
Replacement |
-replace |
replaces strings matching a regex pattern |
Containment |
-contains |
collection contains a value |
-notcontains |
collection doesn’t contain a value |
|
-in |
value is in a collection |
|
-notin |
value is not in a collection |
|
Type |
-is |
both objects are the same type |
-isnot |
objects are not the same type |
- Logical Operators
Operator |
Description |
Example |
-and |
Logical AND. TRUE when both statements are true. |
(1 -eq 1) -and (1 -eq 2) FALSE |
-or |
Logical OR. TRUE when either of the statements is TRUE. |
(1 -eq 1) -or (1 -eq 2) TRUE |
-xor |
Logical EXCLUSIVE OR. TRUE when only one statement is TRUE. |
(1 -eq 1) -xor (2 -eq 2) FALSE |
-not |
Logical not. Negates the statement that follows. |
-not (1 -eq 1) FLASE |
! |
Same as -not |
!(1 -eq 1) FALSE |
- Redirection Operator
Operator |
Description |
Syntax |
> |
Send specified stream to a file |
n> |
>> |
Append specified stream to a file |
n>> |
>&1 |
Redirects the specified stream to the Success stream |
n>&1 |
- Type Operators
Operator |
Description |
Example |
-isNot |
Returns TRUE when the input not an instance of the specified.NET type. |
(get-date) -isNot [DateTime] FALSE |
-as |
Converts the input to the specified .NET type. |
«5/7/07» -as [DateTime] Monday, May 7, 2007 00:00:00 |
Some Other Operators
Operator |
Description |
() Grouping Operator |
Allows you to override operator precedence in expressions |
&() Subexpression Operator |
Gives you the result of one or more statements |
@( ) Array Subexpression Operator |
Returns the results of one or more statements in the form of arrays. |
& Background Operator |
The pipeline before & is executed by this command in a Powershell job. |
[] Cast Operator |
Converts objects to the specific type. |
Regular Expressions
A regular expression is a pattern that is used to match text that includes literal characters, operators, and other constructs. PowerShell regular expressions are case-insensitive by default.
Method |
Case Sensitivity |
Select-String |
use -CaseSensitive switch |
switch statement |
use the -casesensitive option |
operators |
prefix with ‘c’ (-cmatch, -csplit, or -creplace) |
- Character Literals
A regular expression can be a literal character or a string.
- Character Groups
These allow you to match any number of characters one time, while [^character group] only matches characters NOT in the group.
- Character Range
A pattern can also be a range of characters. The characters can be alphabetic [A-Z], numeric [0-9], or even ASCII-based [ -~] (all printable characters).
-
Numbers
The \d character class will match any decimal digit. Conversely, \D will match any non-decimal digit.
-
Word Character
The \w character class will match any word character [a-zA-Z_0-9]. To match any non-word character, use \W.
-
Wildcard
The period (.) is a wildcard character in regular expressions. It will match any character except a newline (\n).
-
Whitespace
Whitespace is matched using the \s character class. Any non-whitespace character is matched using \S. Literal space characters ‘ ‘ can also be used.
-
Escaping Characters
The backslash (\) is used to escape characters so the regular expression engine doesn’t parse them.
The following characters are reserved: []().\^$|?*+{}.
-
Substitution in Regular Expression.
The regular expressions with the -replace operator allows you to dynamically replace text using captured text.
<input> -replace <original>, <substitute>
Flow Control
-
ForEach-Object
ForEach-Object is a cmdlet that allows you to iterate through items in a pipeline, such as with PowerShell one-liners. ForEach-Object will stream the objects through the pipeline.
Although the Module parameter of Get-Command accepts multiple values that are strings, it will only accept them via pipeline input using the property name, or parameter input.
If you want to pipe two strings by value to Get-Command for use with the Module parameter, use the ForEach-Objectcmdlet:
$ComputerName = 'DC01', 'WEB01'
foreach ($Computer in $ComputerName) {
Get-ADComputer -Identity $Computer
}
- For
A “for” loop iterates while a specified condition is true.
For example:
for ($i = 1; $i -lt 5; $i++) {
Write-Output "Sleeping for $i seconds"
Start-Sleep -Seconds $i
}
- Do
There are two different “do” loops in PowerShell. Do Until runs while the specified condition is false.
Example 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)
Example 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
Similar to the Do While loop, a While loop runs as long as the specified condition is true. The difference however, is that a While loop evaluates the condition at the top of the loop before any code is run. So, it doesn’t run if the condition evaluates to false.
For example:
$date = Get-Date -Date 'November 22'
while ($date.DayOfWeek -ne 'Thursday') {
$date = $date.AddDays(1)
}
Write-Output $date
Variables
PowerShell allows you to store all types of values. For example, it can store command results and command expression elements like names, paths, and settings. Here are some of PowerShell’s different variables.
- User-created variables: These are created and maintained by the user. The variables you create at the PowerShell command line will only exist until the PowerShell window is open. When you close the PowerShell window, these variables are deleted. If you want to save a variable, you need to add it to your PowerShell profile. You can create variables and declare them with three different scopes: global, script, or local.
- Automatic variables: These variables store the state of PowerShell and are created by PowerShell. Only PowerShell can change their values as required to maintain accuracy. Users can’t change these variables’ value. For example, the $PSHOME variable will store the path to the PowerShell installation directory.
- Preference variables: These variables store user preferences for PowerShell and are created by PowerShell. These variables are populated with default values and can be changed by the users. For example, the $MaximumHistoryCount variable specifies the maximum number of entries in the session history.
To create a new variable, you need to use an assignment statement and assign a value to the variable. There is no need to declare the variable before using it. The default value of all variables is $null.
For example:
$MyVariable = 1, 2, 3
$MyVariable
Function
-
Naming Your Function
Use a Pascal case name with an approved verb and a singular noun to name a function. You can get a list of approved verbs by running Get-Verb:
Get-Verb | Sort-Object -Property Verb
- Creating a Simple Function
Use a function keyword followed by the function name to create a simple function. Then, use an open and closing curly brace. The function will execute code contained within those curly braces.
For example:
function Get-Version {
$PSVersionTable.PSVersion
}
Working with Modules
A module is a package containing PowerShell members, such as cmdlets, providers, functions, workflows, variables, and aliases. You can implement package members in a PowerShell script, a compiled DLL, or both. PowerShell automatically imports the modules the first time you run any command in an installed module. You can use the commands in a module without setting up or profile configuration.
-
How to Use a Module
To use any module, you need to first install them. Then, find the command that comes with the module and use them.
-
Installing a Module
If you get a module as a folder, install it before you use it on the PowerShell command line. Some modules are preinstalled. You can use the following command to create a Modules directory for the current user:
New-Item -Type Directory -Path $HOME\Documents\PowerShell\Modules
Copy the entire module folder into the Modules directory. You can use any method to copy the folder, including Windows Explorer, Cmd.exe, and PowerShell.
- Finding the Installed Modules
Run the following to find the modules installed in a default module location (not imported).
Get-Module -ListAvailable
- Finding Commands in a Module
Run the following command to find a module’s commands:
Get-Command -Module <module-name>
Get-Command -Module Microsoft.PowerShell.Archive
- Importing a Module
Run the following command with the proper module name:
Import-Module <module-name>
- Removing a Module Name
You can run the following command with the proper module name:
Remove-Module <module-name>
- View Default Module Locations
Use the following command to view default module locations:
$Env:PSModulePath
- Add a Default Module Location
You can use the following command format:
$Env:PSModulePath = $Env:PSModulePath + ";<path>"
- Add a Default Module Location on Linux or MacOS
Use the following to execute the same command as above, only with Linux or macOS:
$Env:PSModulePath += ":<path>"
Hash Tables
A hash table is a complex data structure to store data in the form of key-value pairs. We also refer to a hash table as a dictionary or associative array. To understand a hash table, consider a series of IP addresses and the respective computer names. A hash stores this data in the form of key-value pairs, where IP addresses refer to keys and computer names to their corresponding values.
The hash table syntax is as follows:
@{ <name> = <value>; [<name> = <value> ] ...}
An ordered dictionary’s syntax is as follows:
[ordered]@{ <name> = <value>; [<name> = <value> ] ...}
-
Creating Hash Tables
If you want to create a hash table, follow these steps:
- Start the hash table with an at sign (@) and enclose it in curly braces ({}).
- A hash table should contain at least one key-value pair, and hence, enter the data after creating a hash table.
- Separate key from its value using an equal sign (=).
- Separate the key/value pairs in a hash table with a semicolon (;).
- Enclose the space between the keys in quotation marks. Values must be valid PowerShell expressions. Also, enclose strings in quotation marks, even if there are no spaces between them.
- Save a hash table as a variable to manage it efficiently.
- When assigning an ordered hash table to a variable, place the [ordered] attribute before the @ symbol. If you place it before the variable name, the command fails.
For example:
$hash = @{}
$hash = @{ Number = 1; Shape = "Square"; Color = "Blue"}
[hashtable]$hash = [ordered]@{
Number = 1; Shape = "Square"; Color = "Blue"}
$hash
- Adding and Removing Keys and Values
To add keys and values to a hash table, use the following command format:
$hash[«<key>»] = «<value>»
For example, you can add a «Time» key with a value of «Now» to the hash table with the following statement format:
$hash["Time"] = "Now"
Or
$hash.Add("Time", "Now")
Or, you can remove the key with this statement format:
$hash.Remove("Time")
Asynchronous Event Handling
These cmdlets allow you to register and unregister event subscriptions and list the existing subscriptions. You can also list pending events and handle or remove them as desired.
PowerShell eventing cmdlets
Eventing Cmdlet name |
Description |
Register-ObjectEvent |
This cmdlet registers an event subscription for events generated by .NET objects |
Register-WmiEvent |
Registers an event subscription for events generated by WMI objects |
Register-EngineEvent |
Registers an event subscription for events generated by PowerShell itself |
Get-EventSubscriber |
Gets a list of the registered event subscriptions in the session |
Unregister-Event |
Removes one or more of the registered event subscriptions |
Wait-Event |
Waits for an event to occur. This cmdlet can wait for a specific event or any event. It also allows a timeout to be specified, limiting how long it will wait for the event. The default is to wait forever. |
Get-Event |
Gets pending unhandled events from the event queue |
Remove-Event |
Removes a pending event from the event queue |
New-Event |
This cmdlet is called in a script to allow the script to add its own events to the event queue |
Conclusion
Bottom line? A PowerShell cheat sheet is your one-stop-shop for everything related to PowerShell syntax and commands. In this Windows PowerShell commands cheat sheet, we’ve discussed all the basics to help even beginners navigate PowerShell.
Like any other programming language, you can use variables, and operators, create aliases and functions and even maintain flow control.
If you’re preparing for your upcoming interviews, keep this PowerShell 5.0 cheat sheet handy for quick reference with easy examples.
Interested in expanding your knowledge with Windows Command Line?
Check Out Our Windows Command Line Cheat Sheet
Frequently Asked Questions
1. How Do I Get a List of PowerShell Commands?
You can use the get-command.
2. How Many PowerShell Commands Are There?
There are over 200 commands in PowerShell.
3. How Do I Learn PowerShell for Beginners?
You might consider using Microsoft’s introductory guide to PowerShell. It includes easy language and simple examples to enhance your understanding.
4. Is Windows PowerShell the Same as Command Prompt?
The following table highlights the major differences between PowerShell and command prompt:
PowerShell |
Command Prompt |
Introduced in 2006 |
Introduced in 1981 |
Works with both batch commands and PowerShell cmdlets |
Works only with Batch commands |
Allows you to create aliases for cmdlets or scripts |
Doesn’t support creating command aliases |
Allows you to pass the output from a cmdlet to other cmdlets |
doesn’t allow you to pass the output from a command to other commands |
Output is in the form of an object |
Output is just text |
Can execute a sequence of cmdlets within a script |
Requires one command to finish before another |
Has programming libraries, as it’s built on .net framework. |
No programming libraries |
Seamless integration with WMI |
Requires external plugin for WMI interaction |
Supports Linux systems |
Doesn’t support Linux systems |
Runs all program types |
Only runs console type programs |
5. How Can I Make Command Prompt Default Instead of PowerShell?
Open Settings > Personalization > Taskbar. Now, turn the “Replace Command Prompt with Windows PowerShell» in the menu when I right-click the Start button, or press Windows key+X” option to “Off”.
People are also reading:
- Best Python Courses
- Best Python Certifications
- Best Python Books
- Top Python Projects
- Top Python Interview Questions
- Best Python Interpreters
- Best way to learn python
- How to Run a Python Script?
- Difference between C# vs C++
- Difference between Java vs C#
- Python or Java
- Ruby vs Python
Performs an operation against each item in a collection of input objects.
Selects objects from a collection based on their property values.
Appends content, such as words or data, to a file.
Adds one or more Windows PowerShell snap-ins to the current session.
Gets the contents of a file.
Sets the current working location to a specified location.
Sets the current working location to a specified location.
Deletes the contents of an item, but does not delete the item.
Clears the display in the host program.
Deletes entries from the command history.
Deletes the contents of an item, but does not delete the item.
Deletes the value of a property but does not delete the property.
Clears the display in the host program.
Deletes the value of a variable.
Reconnects to disconnected sessions
Compares two sets of objects.
Copies an item from one location to another.
Copies an item from one location to another.
Copies an item from one location to another.
Copies a property and value from a specified location to another location.
Gets content from a webpage on the Internet.
Converts a path from a Windows PowerShell path to a Windows PowerShell provider path.
Disables the breakpoints in the current console.
Deletes files and folders.
Compares two sets of objects.
Gets the files and folders in a file system drive.
Disconnects from a session.
Enables the breakpoints in the current console.
Sends the specified objects to the next command in the pipeline. If the command is the last command in the pipeline, the objects are displayed in the console.
Exports information about currently defined aliases to a file.
Converts objects into a series of comma-separated (CSV) strings and saves the strings in a CSV file.
Imports commands from another session and saves them in a Windows PowerShell module.
Deletes files and folders.
Starts an interactive session with a remote computer.
Ends an interactive session with a remote computer.
Uses a customized view to format the output.
Formats the output as a list of properties in which each property appears on a new line.
Performs an operation against each item in a collection of input objects.
Formats the output as a table.
Formats objects as a wide table that displays only one property of each object.
Gets the aliases for the current session.
Gets the breakpoints that are set in the current session.
Gets the contents of a file.
Gets the files and folders in a file system drive.
Displays the current call stack.
Gets drives in the current session.
Gets a list of the commands entered during the current session.
Gets Windows PowerShell background jobs that are running in the current session.
Gets information about the current working location or a location stack.
Gets the properties and methods of objects.
Gets the modules that have been imported or that can be imported into the current session.
Gets the properties of a specified item.
Gets the processes that are running on the local computer or a remote computer.
Groups objects that contain the same value for specified properties.
Gets the Windows PowerShell sessions on local and remote computers.
Gets the Windows PowerShell snap-ins on the computer.
Gets the services on a local or remote computer.
Returns unique items from a sorted list.
Gets the variables in the current console.
Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes.
Gets a list of the commands entered during the current session.
Gets a list of the commands entered during the current session.
Runs commands on local and remote computers.
Runs commands or expressions on the local computer.
Runs commands from the session history.
Performs the default action on the specified item.
Imports an alias list from a file.
Creates table-like custom objects from the items in a CSV file.
Adds modules to the current session.
Imports commands from another session into the current session.
Sends an HTTP or HTTPS request to a RESTful web service.
Explains how to use the PowerShell_ISE.exe command-line tool.
Calls Windows Management Instrumentation (WMI) methods.
Gets content from a web page on the Internet.
Stops one or more running processes.
Sends output to a printer.
Gets the files and folders in a file system drive.
Displays information about Windows PowerShell commands and concepts.
Calculates the numeric properties of objects, and the characters, words, and lines in string objects, such as files of text.
Moves an item from one location to another.
Creates temporary and persistent mapped network drives.
Moves an item from one location to another.
Moves a property from one location to another.
Moves an item from one location to another.
Creates temporary and persistent mapped network drives.
Creates a new dynamic module that exists only in memory.
New-PSSessionConfigurationFile
Creates a file that defines a session configuration.
Creates a persistent connection to a local or remote computer.
Sends output to an interactive table in a separate window.
Sends output to the command line.
Changes the current location to the location most recently pushed to the stack. You can pop the location from the default stack or from a stack that you create by using the Push-Location cmdlet.
Gets the processes that are running on the local computer or a remote computer.
Adds the current location to the top of a location stack.
Gets information about the current working location or a location stack.
Runs commands from the session history.
Deletes breakpoints from the current console.
Gets the results of the Windows PowerShell background jobs in the current session.
Gets results of commands in disconnected sessions.
Deletes files and folders.
Deletes temporary Windows PowerShell drives and disconnects mapped network drives.
Renames an item in a Windows PowerShell provider namespace.
Deletes files and folders.
Deletes a Windows PowerShell background job.
Deletes files and folders.
Deletes files and folders.
Removes modules from the current session.
Renames an item in a Windows PowerShell provider namespace.
Renames a property of an item.
Deletes the property and its value from an item.
Closes one or more Windows PowerShell sessions (PSSessions).
Removes Windows PowerShell snap-ins from the current session.
Deletes a variable and its value.
Resolves the wildcard characters in a path, and displays the path contents.
Deletes an instance of an existing Windows Management Instrumentation (WMI) class.
Starts a Windows PowerShell background job.
Creates or changes an alias (alternate name) for a cmdlet or other command element in the current Windows PowerShell session.
Starts one or more processes on the local computer.
Starts one or more stopped services.
Sets a breakpoint on a line, command, or variable.
Replaces the contents of a file with contents that you specify.
Selects objects or object properties.
Sets the value of a variable. Creates the variable if one with the requested name does not exist.
Creates Windows PowerShell commands in a graphical command window.
Changes the value of an item to the valu