Команды для powershell в windows 10 список команд

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

Шпаргалка по 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. Эти команды возвращают один или несколько объектов в конвейер, в конце которого мы упоминаем некоторые свойства объектов в следующей таблице, чтобы увидеть их значения, отображаемые на экране.

Команда Описание
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:Usersuser_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 $HOMEDocumentsPowerShellModules

Шпаргалка по 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

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

Справочник командлетов Windows PowerShell

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

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

  
  Get-Command -CommandType cmdlet

Если Вы, выполнив вышеуказанную команду у себя на компьютере, не нашли командлет из представленного ниже списка (или тот который Вам нужен), то скорей всего у Вас не установлен необходимый модуль. Модули PowerShell для соответствующих ролей и компонентов сервера устанавливаются автоматически одновременно с ними. В случае если Вы хотите воспользоваться данными модулями на системе без установленных ролей и компонентов, то Вы всегда можете установить соответствующие «Средства удаленного администрирования сервера», которые добавляют не только оснастки управления, но и необходимые командлеты. Например, для того чтобы администрировать Active Directory с помощью Windows PowerShell на компьютере, который не является контроллером домена, необходимо установить модуль Active Directory для Windows PowerShell (RSAT-AD-PowerShell).

Примечание! Данный справочник составлен на основе командлетов версии PowerShell 5.0 в операционной системе Windows Server 2016.

Содержание

  1. Полезные командлеты Windows PowerShell
  2. Работа с переменными
  3. Форматирование в Windows PowerShell
  4. Импорт и экспорт
  5. Работа с сетью в Windows PowerShell
  6. Работа с элементами
  7. Командлеты для работы с Active Directory (AD)
  8. Работа с Hyper-V
  9. Работа с фоновыми заданиями
  10. Работа с объектами
  11. Командлеты PowerShell для удаленного управления
  12. Работа со службами и процессами
  13. Работа с компьютером
  14. Работа с контентом
  15. Другие командлеты Windows PowerShell

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

  • Get-Help – показывает справку по командлету, функции и общую справку по Windows PowerShell. Справка бывает нескольких типов: краткая, детальная, полная и вывод только примеров;
  • Update-Help — загружает и устанавливает новые файлы справки, т.е. обновление справки;
  • Get-Command – командлет поиска нужной команды, можно искать как по глаголу, так и по существительному, также возможно использование маски, если Вы не знаете точное наименование глагола или существительного;
  • Get-Alias – показывает псевдонимы, все или конкретной команды;
  • Get-PSDrive – показывает подключенные диски;
  • Get-Member – выводит свойства и методы, которые есть у объекта;
  • Get-WindowsFeature – выводит сведения о доступных ролях и компонентах сервера;
  • Install-WindowsFeature (эквивалентен Add-WindowsFeature) — устанавливает роли или компоненты на указанный сервер;
  • Uninstall-WindowsFeature (эквивалентен Remove-WindowsFeature) – удаляет роли или компонента сервера;
  • Get-History — возвращает список команд, введенных в ходе текущей сессии.

Работа с переменными

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

  • Get-Variable – выводит список переменных и их значения (или одну указанную переменную);
  • New-Variable – создает новую переменную;
  • Set-Variable – задает значение переменной. Если переменная с указанным именем не существует, то она будет создана;
  • Clear-Variable — удаляет значение переменной;
  • Remove-Variable — удаляет переменную и ее значение.

Заметка! Программирование на языке PowerShell.

Форматирование в Windows PowerShell

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

  • Format-List – вывод результата команды в формате списка свойств, где на каждой новой строке отдельное свойство;
  • Format-Table — вывод результата команды в виде таблицы;
  • Format-Wide — вывод результата команды в виде широкой таблицы, в которой отображается только одно свойство каждого объекта;
  • Format-Custom – в данном случае форматирование вывода происходит с использованием пользовательского представления.

Импорт и экспорт

PowerShell позволяет импортировать и экспортировать данные в разных распространенных форматах, например, CSV или XML, а также перенаправлять вывод результата работы команды во внешний файл или на принтер.

  • Export-Csv – экспорт данных в формат CSV;
  • Import-Csv – импортирует данные из CSV файла;
  • Export-Clixml — экспорт данных в формат XML;
  • Import-Clixml — импортирует файл CLIXML и создает соответствующие объекты в оболочке Windows PowerShell;
  • Out-File — посылает вывод результата работы командлета во внешний файл (например, в TXT);
  • Out-Printer — вывод результата работы команды на принтер;
  • Import-Module — добавляет модули в текущей сессии.

Работа с сетью в Windows PowerShell

Для администрирования сети в Windows PowerShell существуют такие командлеты как:

  • Disable-NetAdapter – командлет отключает сетевой адаптер;
  • Enable-NetAdapter – данный командлет включает сетевой адаптер;
  • Rename-NetAdapter — переименовывает сетевой адаптер;
  • Restart-NetAdapter — перезапускает сетевой адаптер;
  • Get-NetIPAddress – выводит информацию о конфигурации IP-адреса;
  • Set-NetIPAddress — изменяет конфигурацию IP-адреса;
  • New-NetIPAddress — создает и настраивает IP-адрес;
  • Remove-NetIPAddress — удаляет IP-адрес и его конфигурацию;
  • Get-NetRoute — выводит таблицу маршрутизации IP;
  • Set-NetRoute — изменяет таблицу маршрутизации IP;
  • New-NetRoute — создает запись в таблице маршрутизации IP;
  • Remove-NetRoute — удаляет одну или несколько записей (IP маршрутов) из таблицы маршрутизации IP;
  • Get-NetIPv4Protocol — выводит информацию о конфигурации протокола IPv4;
  • Get-NetIPv6Protocol — выводит информацию о конфигурации протокола IPv6;
  • Get-NetIPInterface — выводит информацию о свойствах интерфейса IP;
  • Get-NetTCPSetting — показывает информацию о настройках и конфигурации TCP;
  • Test-Connection – командлет посылает ICMP пакеты к одному или нескольким компьютерам, т.е. «пингует» компьютеры.

Заметка! Описание и назначение ролей сервера в Windows Server 2016.

Работа с элементами

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

  • Clear-Item — очищает содержимое элемента, но не удаляет сам элемент;
  • Copy-Item – копирует элемент;
  • Get-Item — получает элемент в указанном месте;
  • Invoke-Item — выполняет действие по умолчанию над указанным элементом;
  • Move-Item – перемещает элемент;
  • New-Item – создает новый элемент;
  • Remove-Item – удаляет указанные элементы;
  • Rename-Item — переименовывает элемент в пространстве имен поставщика Windows PowerShell;
  • Set-Item — изменяет элемент;
  • Get-ChildItem — возвращает элементы и дочерние элементы в одном или нескольких определенных местах;
  • Get-Location – выводит информацию о текущем местонахождении.

Командлеты для работы с Active Directory (AD)

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

Курс по SQL для начинающих

  • New-ADUser – создание нового пользователя в Active Directory;
  • Get-ADUser – выводит информацию о пользователях Active Directory;
  • Set-ADUser — изменяет пользователя Active Directory;
  • Remove-ADUser — удаляет пользователя Active Directory;
  • New-ADGroup – командлет создает группу в Active Directory;
  • Get-ADGroup – выводит информацию о группе или выполняет поиск, чтобы получить несколько групп из Active Directory;
  • Set-ADGroup – командлет изменяет группу в Active Directory;
  • Remove-ADGroup — удаление группы в Active Directory;
  • Add-ADGroupMember — командлет добавляет учетные записи пользователей, компьютеров или групп в качестве новых членов группы Active Directory;
  • Get-ADGroupMember — выводит информацию о членах группы Active Directory;
  • Remove-ADGroupMember — удаление элементов из группы Active Directory;
  • Set-ADAccountPassword — сброс пароля учетной записи Active Directory;
  • Disable-ADAccount — отключает учетную запись Active Directory.
  • Enable-ADAccount — включает учетную запись Active Directory;
  • Unlock-ADAccoun — разблокирует учетную запись Active Directory;
  • New-ADComputer — создание новой учетной записи компьютера в Active Directory;
  • Get-ADComputer — выводит информацию об одном или нескольких компьютерах в Active Directory;
  • Set-ADComputer — изменение учетной записи компьютера в Active Directory;
  • Remove-ADComputer — удаление компьютера из Active Directory.

Работа с Hyper-V

Для работы с Hyper-V в Windows PowerShell существует много командлетов, вот небольшой перечень:

  • New-VM — создание новой виртуальной машины;
  • Set-VM — настройка виртуальной машины;
  • Start-VM — запуск виртуальной машины;
  • Stop-VM — закрытие, выключение или сохранение виртуальной машины;
  • Import-VM — импорт виртуальной машины из файла;
  • Move-VM — перемещение виртуальной машины на новый Hyper-V хост;
  • Remove-VM — удаление виртуальной машины;
  • Rename-VM — переименование виртуальной машины;
  • New-VHD — создание одного или нескольких новых виртуальных жестких дисков;
  • Set-VHD – настройка виртуального жесткого диска;
  • Test-VHD — тестирование виртуального жесткого диска на предмет обнаружения проблем, которые сделали бы его непригодным для использования;
  • Add-VMDvdDrive — добавляет DVD диск к виртуальной машине;
  • Remove-VMDvdDrive — удаляет DVD-диск из виртуальной машины;
  • Add-VMHardDiskDrive — добавляет жесткий диск к виртуальной машине;
  • Remove-VMHardDiskDrive — удаляет один или несколько виртуальных жестких дисков (VHD) из виртуальной машины;
  • Add-VMNetworkAdapter — добавляет виртуальный сетевой адаптер на виртуальной машине;
  • Remove-VMNetworkAdapter — удаляет один или несколько виртуальных сетевых адаптеров из виртуальной машины;
  • Copy-VMFile — копирование файлов на виртуальную машину;
  • Get-VMVideo – выводит информацию о настройках видео для виртуальных машин;
  • Move-VMStorage — перемещение хранилища виртуальной машины.

Заметка! Описание компонентов сервера в Windows Server 2016.

Работа с фоновыми заданиями

В Windows PowerShell есть возможность запускать задачи в фоновом режиме, для того чтобы, не дожидаясь окончания работы команды (для случаев, когда задача выполняется долго), продолжать работать в текущей сессии. Для работы с фоновыми заданиями в PowerShell есть следующие командлеты:

  • Start-Job – запустить фоновую задачу;
  • Stop-Job – остановить фоновую задачу
  • Get-Job – посмотреть список фоновых задач;
  • Receive-Job – посмотреть результат выполнения фоновой задачи;
  • Remove-Job – удалить фоновую задачу;
  • Wait-Job – перевести фоновую задачу на передний план, для того чтобы дожидаться ее окончания.

Работа с объектами

Так как PowerShell работает с объектами, он позволяет выполнять некие действия над этими объектами, например:

  • Measure-Object – командлет позволяет рассчитывать на основе свойств объектов такие числовые агрегирующие параметры как: минимальное, максимальное, среднее значение, сумму и количество. Например, Вы хотите узнать максимальный или средний размер файла в определенном каталоге, или просто узнать количество файлов (запущенных процессов, служб и так далее);
  • Select-Object – с помощью данного командлета можно выбрать определенные объекты или свойства этих объектов, например Вы хотите выводить только название файла и его размер;
  • Sort-Object — сортирует объекты по значениям свойств;
  • Where-Object – командлет для того чтобы ставить условие для выборки объектов на основе значений их свойств;
  • Group-Object – группирует объекты, которые содержат одинаковое значение для заданных свойств;
  • ForEach-Object – перебор объектов с целью выполнения определенной операции над каждым из этих объектов.

Командлеты PowerShell для удаленного управления

С помощью Windows PowerShell можно выполнять команды не только на локальном компьютере, но и на одном или даже на нескольких удаленных компьютерах.

  • Enter-PSSession — запускает интерактивный сеанс с удаленным компьютером;
  • Exit-PSSession — завершает интерактивный сеанс с удаленным компьютером;
  • New-PSSession — создает постоянное подключение к локальному или удаленному компьютеру;
  • Remove-PSSession — закрывает один или несколько сеансов Windows PowerShell;
  • Disconnect-PSSession — отсоединяется от сеанса;
  • Connect-PSSession — подключается к отключенным сеансам;
  • Get-PSSession — получает сеансы Windows PowerShell на локальных и удаленных компьютерах;
  • Invoke-Command — выполняет команды на локальном и удаленных компьютерах.

Работа со службами и процессами

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

  • Get-Process – выводит информацию о запущенных процессах на компьютере;
  • Start-Process – запускает один или несколько процессов на компьютере;
  • Stop-Process — останавливает один или несколько запущенных процессов;
  • Get-Service – выводит информацию о службах;
  • Restart-Service – перезапускает службу;
  • Start-Service – запускает службу;
  • Stop-Service — останавливает службу;
  • Suspend-Service – приостанавливает работу службы;
  • Set-Service – с помощью данного командлета можно изменить свойства службы, например, описание, отображаемое имя и режим запуска. Также его можно использовать для запуска, остановки или приостановки службы.

Заметка! Установка файлового сервера (File Server) на Windows Server 2016.

Работа с компьютером

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

  • Restart-Computer – командлет перезапускает операционную систему (перезагружает компьютер);
  • Stop-Computer – выключает компьютер;
  • Rename-Computer – переименовывает компьютер;
  • Checkpoint-Computer — создает точку восстановления системы на локальном компьютере;
  • Restore-Computer — запускает восстановление системы на локальном компьютере;
  • Disable-ComputerRestore — отключает функцию восстановления системы на указанном диске файловой системы;
  • Enable-ComputerRestore — включает функцию восстановления системы на указанном диске файловой системы;
  • Remove-Computer — удаляет локальный компьютер из домена;
  • Get-EventLog – выводит информацию о событиях в журнале событий, или список журналов событий на локальном или удаленном компьютере;
  • Clear-EventLog — удаляет записи из указанных журналов событий.

Работа с контентом

Для управления контентом, например, текстом в файле в Windows PowerShell существуют специальные командлеты, такие как:

  • Get-Content – получает содержимое элемента (например, считывает файл);
  • Add-Content – добавляет содержимое в заданные элементы, например, текст в файл;
  • Clear-Content — удаляет содержимое элемента, но не удаляет сам элемент;
  • Set-Content — записывает или заменяет содержимое в элемент с новым содержанием.

Другие командлеты Windows PowerShell

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

  • Get-ExecutionPolicy – с помощью данного командлета можно узнать действующую политику выполнения Windows PowerShell для текущего сеанса;
  • Set-ExecutionPolicy – командлет изменяет политику выполнения Windows PowerShell;
  • Write-Host – выводит информацию на экран (пишет текст);
  • Read-Host – считывает строку ввода из консоли;
  • Write-Warning – выводит предупреждающее сообщение;
  • Write-Error – командлет объявляет ошибку и выводит ее в поток ошибок;
  • Get-Date – возвращает текущую дату и время;
  • Set-Date – командлет изменяет системную дату и время на компьютере.

Заметка! Курсы по SQL для начинающих на примере Microsoft SQL Server.

Вот мы с Вами и рассмотрели полезные и часто используемые командлеты Windows PowerShell, надеюсь, этот справочник будет Вам полезен, удачи!

Шпаргалка Powershell

Когда дело доходит до запуска команд в Windows, PowerShell стал чем-то вроде туза в дыре. В течение многих лет энтузиасты ограничивались рамками командной строки Windows, но в 2006 году PowerShell стала мощной альтернативой..

Contents

  • 1 Что такое PowerShell?
  • 2 Команды PowerShell
  • 3 Шпаргалка PowerShell (PDF)
  • 4 Как использовать PowerShell
  • 5 PowerShell против командной строки
  • 6 Загрузка PowerShell
  • 7 Как запустить командлеты
  • 8 Как запускать скрипты
  • 9 Перекрываются с помощью команд Windows
  • 10 Резервное копирование базы данных SQL
  • 11 Основные команды PowerShell
    • 11.1 Получить помощь
    • 11.2 Get-Service
    • 11.3 ConvertTo-HTML
    • 11.4 Экспорт-CSV (и Get-Сервис)
    • 11.5 Get-Process
    • 11.6 Get-EventLog
    • 11.7  Stop-Process
  • 12 PowerShell: мощный интерфейс командной строки

PowerShell — это интерактивный Интерфейс командной строки (CLI) и механизм автоматизации, разработанный Microsoft для разработки конфигураций системы и автоматизации административных задач. Этот инструмент имеет собственную командную строку с уникальным языком программирования, похожим на Perl. Изначально PowerShell был разработан для управления объектами на компьютерах пользователей..

Сегодня PowerShell предлагает пользователям обширную среду, в которой они могут выполнять и автоматизировать задачи управления системой. Пользователь может получить доступ к ресурсам из Active Directory на Exchange Server через одну программу. По своей сути PowerShell позволяет пользователю получить доступ к:

  • Командная строка
  • Команды PowerShell
  • .NET Framework API
  • Инструментарий управления Windows
  • Компонентная объектная модель Windows

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

Команды PowerShell

Вот 25 основных команд PowerShell:

Имя команды AliasDescription

Set-Location cd, chdir, sl Устанавливает текущее рабочее место в указанное место.
Get-Content кот, gc, тип Получает содержимое элемента в указанном месте.
Добавить контент переменный ток Добавляет содержимое к указанным элементам, например, добавляет слова в файл.
Set-Content Южная Каролина Записывает или заменяет содержимое элемента новым содержимым.
Copy-Item копировать, cp, cpi Копирует элемент из одного места в другое.
Удалить объект del, erase, rd, ri, rm, rmdir Удаляет указанные элементы.
Move-Item ми, двигаться, мв Перемещает элемент из одного места в другое.
Set-Item си Изменяет значение элемента на значение, указанное в команде.
New-Item п Создает новый предмет.
Start-Job sajb Запускает фоновое задание Windows PowerShell.
Compare-Object сравнить, диф Сравнивает два набора объектов.
Group-Object группа Группирует объекты, содержащие одинаковое значение для указанных свойств.
Invoke-WebRequest завиток, IWR, Wget Получает контент с веб-страницы в Интернете.
Мера-объект мера Вычисляет числовые свойства объектов, а также символы, слова и строки в строковых объектах, таких как файлы…
Resolve-Path rvpa Разрешает символы подстановки в пути и отображает содержимое пути.
Резюме-Job rujb Возобновляет приостановленную работу
Set-Variable установить, св Устанавливает значение переменной. Создает переменную, если переменная с запрошенным именем не существует.
Show-Command shcm Создает команды Windows PowerShell в графическом окне команд.
Сортировка-объект Сортировать Сортирует объекты по значениям свойств.
Start-Service sasv Запускает одну или несколько остановленных служб.
Запуск процесса Соки, начало Запускает один или несколько процессов на локальном компьютере.
Приостановить-Job sujb Временно останавливает задания рабочего процесса.
Wait-Job WJB Подавляет командную строку, пока одно или все фоновые задания Windows PowerShell, запущенные в сеансе, не будут…
Where-Object ?, где Выбирает объекты из коллекции на основе значений их свойств.
Write-Output эхо, пиши Посылает указанные объекты следующей команде в конвейер. Если команда является последней командой в конвейере,…

Вот наша PDF-версия Шпаргалки PowerShell. Нажмите на изображение ниже, чтобы открыть PDF в отдельной вкладке браузера, которую вы можете сохранить и использовать в качестве краткого справочника..

Шпаргалка PowerShell (PDF)

Comparitech-Powershell-шпаргалка

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

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

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

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

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

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

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

Загрузка PowerShell

Прежде чем мы углубимся в основы использования PowerShell, вам сначала необходимо получить доступ к основному интерфейсу. Если вы являетесь пользователем Windows 10, то у вас уже будет доступ к PowerShell 5. Пользователи Windows 8-8.1 имеют доступ к PowerShell 4, но если вы работаете в Windows 7, вам нужно будет установить его в .NET фреймворк. Во всех операционных системах PowerShell предлагает два различных интерфейса.

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

Чтобы запустить PowerShell в Windows 10, вам необходимо быть администратором. Войдите в систему как администратор, нажмите Начало, и прокрутите свои приложения, пока не найдете Windows PowerShell. Щелкните правой кнопкой мыши и выберите Запустить от имени администратора. В Windows 8.1 просто найдите PowerShell в своем система папки. Аналогично, в Windows 7 каталог по умолчанию для PowerShell — это аксессуары папка после того, как вы установили программу.

Как запустить командлеты

как запустить командлеты PowerShell

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

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

  • Get-Location — Получить текущий каталог
  • Set-Location — Получить текущий каталог
  • Move-пункт — Переместить файл в новое место
  • Прописи пункт — Скопируйте файл в новое место
  • Rename — пункт Переименовать существующий файл
  • New-пункт — создать новый файл

Для получения полного списка доступных вам команд используйте командлет Get-Command. В командной строке вы должны ввести следующее:

PS C: > Get-Command

Важно отметить, что Microsoft запрещает пользователям использовать собственные командлеты PowerShell в своих настройках по умолчанию. Чтобы использовать командлеты PowerShell, необходимо изменить ExecutionPolicy из Ограниченный в RemoteSigned. Удаленная подпись позволит вам запускать свои собственные сценарии, но остановит неподписанные сценарии от других пользователей.

Чтобы изменить политику выполнения, введите следующую команду PowerShell:

PS C: >   Set-ExecutionPolicy

Поменять на RemoteSigned, введите следующую команду:

PS C: > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

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

Как запускать скрипты

как запускать скрипты powershell

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

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

PS c: powershell mynewscript.ps1

Как только вы это сделаете, выбранный вами скрипт будет запущен.

Хотите создать свои собственные скрипты PowerShell? Почти 5 тысяч студентов прошли этот курс удемского языка по расширенным сценариям с помощью PowerShell.

Перекрываются с помощью команд Windows

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

Как и в командной строке, в PowerShell команда cd по-прежнему меняет каталоги, а dir по-прежнему предоставляет список файлов в выбранной папке. Поэтому важно помнить, что вы не обязательно начинаете с нуля. Принятие этого на вооружение поможет уменьшить кривую обучения, с которой вы сталкиваетесь при использовании PowerShell, и уменьшит количество новых команд, которые вы должны выучить.

При этом важно отметить, что они не считаются полными командами PowerShell, а являются псевдонимами (имя Powershell для команд командной строки Windows). Поэтому, хотя вы можете попробовать некоторые из команд командной строки в PowerShell, вы должны узнать как можно больше о новых. Тем не менее, опыт командной строки, безусловно, может помочь новым пользователям осваивать PowerShell и приступить к работе..

Резервное копирование базы данных SQL

PowerShell SQL

Многие люди используют PowerShell для резервного копирования баз данных SQL. Интерфейс командной строки может выполнять полное резервное копирование базы данных, резервное копирование файлов и журналов транзакций. Существует много способов резервного копирования базы данных в PowerShell, но одним из самых простых является использование команды Backup-SqlDatabase. Например:

PS C: > Backup-SqlDatabase -ServerINstance «Компьютер Экземпляр» -Database «Databasecentral»

Это создаст резервную копию базы данных с именем «Databasecentral» (или именем выбранной вами базы данных)..

Для резервного копирования журнала транзакций вы должны ввести:

PS C: > Backup-SqlDatabase -ServerInstance «Компьютер Экземпляр» -Database «Databasecentral» -BackupAction Log

Это создаст журнал транзакций выбранной базы данных.

Основные команды PowerShell

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

Получить помощь

Эта команда должна быть в самом верху списка любого нового пользователя, когда дело доходит до PowerShell. Команду Get-Help можно использовать для буквального получения справки по любой другой команде PowerShell. Например, если вы знаете имя команды, но не знаете, что она делает или как ее использовать, команда Get-Help предоставляет полный синтаксис команды.

Например, если вы хотите посмотреть, как работает Get-Process, введите:

PS C: > Get-Help -Name Get-ProcessPS C: > Set-ExecutionPolicy

Как уже упоминалось ранее в этом руководстве, у Microsoft есть ограниченная политика выполнения, которая запрещает выполнение сценариев в PowerShell, если вы не измените ее. При настройке политики выполнения у вас есть четыре варианта на выбор:

  • Ограниченный — Политика выполнения по умолчанию, которая останавливает выполнение скриптов.
  • Все подписано — Запустит сценарии, если они подписаны доверенным издателем
  • Удаленная подпись — Позволяет запускать скрипты, которые были созданы локально
  • неограниченный — Политика без ограничений на запуск скриптов

PS C: > Get-ExecutionPolicy

Если вы используете PowerShell, вы не всегда можете работать на сервере, с которым вы знакомы. Выполнение команды Политика Get-Execution позволит вам увидеть, какая политика активна на сервере, прежде чем запускать новый скрипт. Если затем вы увидите, что рассматриваемый сервер работает с ограниченной политикой, вы можете реализовать Set-ExecutionPolicy команда изменить его.

Get-Service

Одной из наиболее важных команд является Get-Service, которая предоставляет пользователю список всех служб, установленных в системе, как работающих, так и остановленных. Этот командлет может быть направлен с использованием определенных имен служб или объектов.

Например, если вы набрали PS C: > Get-Service, вам будет показан список всех служб на вашем компьютере, их статусы и отображаемые имена.

Чтобы использовать эту команду для получения определенных служб, введите: PS C: Get-Service «WMI *», чтобы получить все службы, начинающиеся с WMI..

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

PS C: Get-Service | Where-Object {$ _. Status -eq «Выполняется»}

ConvertTo-HTML

При использовании PowerShell вы можете создать отчет о просмотренной вами информации. Один из лучших способов сделать это, используя ConvertTo-HTML команда. Этот командлет позволяет создавать отчеты с таблицами и цветом, что может помочь визуализировать сложные данные. Просто выберите объект и добавьте его в команду. Например, вы можете ввести:

Get-PSDrive | ConvertTo-Html

Это возвращает массу информации, поэтому рекомендуется ограничить ее файлом с помощью команды Out-File. Лучшая альтернативная команда:

Get-PSD Drive | ConvertTo-Html | Out-File -FilePath PSDrives.html

Затем будет сгенерирован HTML-файл в виде таблицы. Например:

html-таблица powershell

Затем вы можете добавить свои собственные цвета и границы, чтобы уточнить его представление.

Экспорт-CSV (и Get-Сервис)

Не менее важной для увеличения видимости является команда Export-CSV. Это позволяет экспортировать данные PowerShell в файл CSV. По сути, эта команда создает файл CSV, компилирующий все объекты, выбранные вами в PowerShell. Каждый объект имеет свою собственную строку или строку в файле CSV. Эта команда в основном используется для создания электронных таблиц и обмена данными с внешними программами.

Чтобы использовать эту команду, вы должны набрать:

PS C: > Get-Service | Export-CSV c: service.csv

Важно помнить, что не нужно форматировать объекты перед запуском команды Export-CSV. Это связано с тем, что форматирование объектов приводит к тому, что в файл CSV помещаются только отформатированные свойства, а не сами исходные объекты. В случае, если вы хотите отправить определенные свойства объекта в файл CSV, вы должны использовать Select-Object командлет.

Чтобы использовать Select-Object командлет, тип:

PS C: > Get-Service | Выбор-Имя объекта, Статус | Export-CSV c: Service.csv

Get-Process

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

PS C: Get-Process

Обратите внимание, что если вы не укажете какие-либо параметры, вы получите разбивку всех активных процессов на вашем компьютере. Чтобы выбрать конкретный процесс, сузьте результаты по имени процесса или идентификатору процесса и объедините его с Format-List Командлет, который отображает все доступные свойства. Например:

PS C: Get-Process Windowrd, проводник | Формат-Список *

Это дает вам полный контроль над всеми активными процессами.

Get-EventLog

получить командлет безопасности eventlog

Если вы когда-нибудь захотите получить доступ к журналам событий вашего компьютера (или журналам на удаленных компьютерах) при использовании PowerShell, то вам понадобится Get-EventLog команда. Этот командлет работает только с классическими журналами событий, поэтому вам понадобится Get-WinEvent команда для журналов позже, чем Windows Vista.

Чтобы запустить команду журнала событий, введите:

PS C: > Get-EventLog -List

Это покажет все журналы событий на вашем компьютере.

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

PS C: > Get-EventLog -LogName System -EntryType Ошибка

Если вы хотите получать журналы событий с нескольких компьютеров, укажите, какие устройства вы хотите просмотреть (перечислены ниже как «Сервер1» и «Сервер2»). Например:

PS C: > Get-EventLog — LogName «Windows PowerShell» -ComputerName «локальный компьютер», «Server1», «Server2».

Параметры, которые вы можете использовать для поиска в журналах событий:

  • После — Пользователь указывает дату и время, а командлет будет определять события, которые произошли после
  • AsBaseObject — Предоставляет System.Diagnostics.EventLogEntry для каждого события
  • AsString — возвращает вывод в виде строк
  • Перед — Пользователь указывает дату и время, а командлет будет находить события, которые произошли до
  • Имя компьютера — Используется для обозначения удаленного компьютера
  • EntryType — Указывает тип записи событий (Ошибка, Аудит отказов, Аудит успеха, Информация, Предупреждение)
  • Показатель — Указывает значения индекса, из которого командлет находит события
  • Список — Предоставляет список журналов событий
  • UserName — Определяет имена пользователей, связанные с данным событием

 Stop-Process

Стоп-процесс PowerShell

При использовании PowerShell нередки случаи зависания процесса. Всякий раз, когда это происходит, вы можете использовать Get-Process получить имя процесса, испытывающего трудности, а затем остановить его с помощью Stop-Process команда. Как правило, вы завершаете процесс по его имени. Например:

PS C: > Stop-Process -Название «Блокнот»

В этом примере пользователь завершил работу Блокнота с помощью команды Stop-Process.

PowerShell: мощный интерфейс командной строки

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

Будучи новым пользователем, легко напасть на 200 с лишним командлетов PowerShell. Убедитесь, что вы начинаете с интерфейса командной строки, прежде чем перейти к полноценному графическому интерфейсу. Независимо от того, являетесь ли вы новичком в PowerShell или интерфейсах командной строки, в Интернете доступно более чем достаточно информации, чтобы помочь вам максимально эффективно использовать этот мощный инструмент.

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

Команды PowerShell, которые помогут пользователю сделать больше

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

Мы рассмотрим командлеты , которые могут выполнять следующие действия:

  1. Запустите приложение UWP.
  2. Получить справку о любом командлете.
  3. Получите похожие команды.
  4. Найти определенный файл.
  5. Прочитайте содержимое файла.
  6. Найти информацию обо всех услугах на компьютере.
  7. Найти информацию обо всех процессах на компьютере.
  8. Установка политики выполнения.
  9. Скопируйте файл или каталог.
  10. Удалить файл или каталог.

1] Запустите приложение UWP

PowerShell – отличный инструмент, который можно использовать для запуска приложений UWP за считанные секунды. Но главное заключается в правильном выполнении команды. Ты можешь использовать

 Start-Process "ms-settings:" 

Команда просто для запуска приложения Windows Настройки UWP. Вы можете узнать больше о других URI для других приложений UWP здесь на microsoft.com.

2] Получите справку о любом командлете

Если вы когда-либо не понимаете, какую команду вы должны использовать для выполнения определенной задачи. Или то, что делает конкретный командлет, вам не нужно беспокоиться. Вы можете просто использовать командлет Get-Help, чтобы сделать это. Вы можете использовать его следующими способами:

 Get-Help
Получить помощь
Get-Help -Full
Get-Help -Example
Get-Help * 

Здесь первая запись расскажет вам, как использовать этот командлет. Вторая запись даст вам простое резюме конкретного командлета. Третья запись даст подробную информацию о соответствующем командлете. Четвертая запись будет содержать все, что показывает третий командлет, но добавит пример того, как использовать этот командлет. И, наконец, пятый командлет перечислит каждую команду, которая доступна для вашего использования.

3] Получить похожие команды

Чтобы найти команды аналогичного типа или содержащие в себе определенную фразу, вы можете использовать командлет Get-Command . Однако в нем не перечислен каждый командлет в PowerShell, поэтому вы используете некоторые конкретные фильтры. Вы можете использовать следующие команды:

 Get-Command -Name
Get-Command -CommandType 

Первый командлет поможет вам найти командлет с определенной фразой, а второй – отфильтровать командлеты, выполняющие определенную функцию.

4] Поиск определенного файла

Если вам нужно найти определенный файл или каталог в определенном месте, вы можете использовать командлет Get-Item . Вы можете использовать его как

 Get-Item 

перечислить содержимое конкретного пути.

5] Прочитайте содержимое файла

Если вам нужно прочитать содержимое файла, вы можете использовать команду Get-Content как

 Get-Content 

6] Прочтите информацию обо всех службах на компьютере .

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

 Start-Service
Стоп-Service
Suspend-Service
Resume-Service
Рестарт-Сервис 

7] Читайте информацию обо всех процессах на компьютере

Подобно командлету Get-Service, вы можете использовать командлет Get-Process , чтобы вывести список всех процессов, запущенных на вашем компьютере.В качестве альтернативы вы можете использовать следующие связанные командлеты для выполнения соответствующих функций:

 Запуск процесса
Stop-Process
Служба ожидания 

8] Настройка политики выполнения

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

 Set-ExecutionPolicy Неограниченный
Set-ExecutionPolicy Все подписано
Set-ExecutionPolicy Удаленная подпись
Set-ExecutionPolicy Restricted 

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

9] Скопируйте файл или каталог

Пользователь может использовать командлет Copy-Item для копирования одного файла или каталога в другое место назначения. Синтаксис этого командлета

 Copy-Item "E:  TWCTest.txt" -Destination "D: " 

10] Удалить файл или каталог

Подобно командлету Copy-Item, пользователь может использовать командлет Copy-Item для копирования одного файла или каталога в другое место назначения. Синтаксис этого командлета

 Remove-Item "E:  TWCTest.txt" 

У вас есть другие полезные командлеты, которыми вы можете поделиться со всеми нами? Не стесняйтесь записывать их в поле для комментариев ниже.

Исторически утилиты командной строки в Unix-системах развиты лучше чем в Windows, однако с появлением нового решения ситуация изменилась.

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

Основные возможности 

Разумеется Windows PowerShell — это в первую очередь командная оболочка с языком сценариев, изначально созданная на основе платформы .NET Framework, а позднее — на .NET Core. В отличие от принимающих и возвращающих текстовые данные оболочек, Windows PowerShell работает с классами .NET, у которых есть свойства и методы. PowerShell позволяет выполнять обычные команды, а также дает доступ к объектам COM, WMI и ADSI. В ней используются различные хранилища, вроде файловой системы или реестра Windows, для доступа к которым созданы т.н. поставщики (providers). Стоит отметить возможность встраивания исполняемых компонентов PowerShell в другие приложения для реализации различных операций, в т.ч. через графический интерфейс. Верно и обратное: многие приложения для Windows предоставляют доступ к своим интерфейсам управления через PowerShell. 

Windows PowerShell позволяет:

  • Менять настройки операционной системы;
  • Управлять службами и процессами;
  • Настраивать роли и компоненты сервера;
  • Устанавливать программное обеспечение;
  • Управлять установленным ПО через специальные интерфейсы;
  • Встраивать исполняемые компоненты в сторонние программы;
  • Создавать сценарии для автоматизации задач администрирования;
  • Работать с файловой системой, реестром Windows, хранилищем сертификатов и т.д.

Оболочка и среда разработки

Существует Windows PowerShell в двух ипостасях: помимо эмулятора консоли с командной оболочкой есть интегрированная среда сценариев (Integrated Scripting Environment — ISE). Чтобы получить доступ к интерфейсу командной строки достаточно выбрать соответствующий ярлык в меню Windows или запустить powershell.exe из меню «Выполнить». На экране появится синее окошко, заметно отличающееся по возможностям от допотопного cmd.exe. Там есть автодополнение и другие фишки, привычные пользователям командных оболочек для Unix-систем.

Для работы с оболочкой нужно запомнить некоторые сочетания клавиш:

  • Стрелки вверх и вниз прокручивают историю для повтора ранее набранных команд;
  • Стрелка вправо в конце строки перенабирает предыдущую команду посимвольно;
  • Ctrl+Home удаляет набранный текст от позиции курсора до начала строки;
  • Ctrl+End удаляет текст от курсора до конца строки.

F7 показывает окно с набранными командами и позволяет выбрать одну из них. В консоли также работает выделение текста мышью, копипаст, позиционирование курсора, удаление, backspace — все как мы любим.

Windows PowerShell ISE является полноценной средой разработки с поддерживающим вкладки и подсветку синтаксиса редактором кода, конструктором команд, встроенным отладчиком и другими программистскими радостями. Если в редакторе среды разработки после имени команды написать знак дефис, вы получите в выпадающем списке все доступные параметры с указанием типа. Запустить PowerShell ISE можно либо через ярлык из системного меню, либо с помощью исполняемого файла powershell_ise.exe.

Командлеты 

В Windows PowerShell появились т.н. командлеты (cmdlets). Это специализированные классы .NET, в которые заложена разнообразная функциональность. Именуются они по принципу «Действие-Объект» (или «Глагол-Существительное, если вам так больше нравится), а разделенная дефисом связка напоминает сказуемое и подлежащее в предложениях естественных языков. Например, Get-Help буквально означает «Получить-Помощь» или в контексте PowerShell: «Показать-Справку». По сути это аналог команды man в Unix-системах и мануалы в PowerShell нужно запрашивать именно так, а не вызывая командлеты с ключом —help или /?.. Не стоит забывать и об онлайн-документации по PowerShell: у Microsoft она достаточно подробная.

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

Add — добавить;
Clear — очистить;
Enable — включить;
Disable — выключить;
New — создать;
Remove — удалить;
Set — задать;
Start — запустить;
Stop — остановить;
Export — экспортировать;
Import — импортировать.

Есть системные, пользовательские и опциональные командлеты: в результате выполнения все они возвращают объект или массив объектов. К регистру они не чувствительны, т.е. с точки зрения интерпретатора команд нет разницы между Get-Help и get-help. Для разделения используется символ ‘;’, но ставить его обязательно только если в одной строке выполняется несколько командлетов. 

Командлеты Windows PowerShell группируются в модули (NetTCPIP, Hyper-V и т.д.), а для поиска по объекту и действию существует командлет Get-Command. Показать справку по нему можно так:

Get-Help Get-Command

По умолчанию команда отображает краткую справку, но в командлеты при необходимости передаются параметры (аргументы). С их помощью можно, например, получить детальную (параметр -Detailed) или полную (параметр -Full) справку, а также вывести на экран примеры (параметр -Examples):

Get-Help Get-Command -Examples

Справка в Windows PowerShell обновляется командлетом Update-Help. Если строка команд получается слишком длинной, аргументы командлета можно перенести на следующую, написав служебный символ ‘`’ и нажав Enter — просто закончить писать команду на одной строке и продолжить на другой не получится.

Ниже приведем несколько примеров распространенных командлетов: 

Get-Process — показать запущенные в системе процессы;
Get-Service — показать службы и их статус;
Get-Content — вывести содержимое файла.

Для часто используемых командлетов и внешних утилит в Windows PowerShell есть короткие синонимы — алиасы (от англ. Alias). Например, dir — алиас Get-ChildItem. Есть в списке синонимов и аналоги команд из Unix-систем (ls, ps и т.д.), а командлет Get-Help вызывается командой help. Полный список синонимов можно посмотреть с помощью командлета Get-Alias:

Сценарии, функции, модули и язык PowerShell

Скрипты Windows PowerShell хранятся в виде обычных текстовых файлов с расширением .ps1. Запустить их двойным кликом нельзя: нужно правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Запустить в PowerShell». Из консоли придется либо указать полный путь к скрипту, либо перейти в соответствующий каталог и написать имя файла. Запуск сценариев также ограничен системной политикой, а для проверки текущих настроек можно использовать командлет Get-ExecutionPolicy, который выдаст одно из следующих значений:

Restricted — запуск сценариев запрещен (по умолчанию);
AllSigned — разрешен только запуск подписанных доверенным разработчиком сценариев;
RemoteSigned — разрешен запуск подписанных и собственных сценариев;
Unrestricted — разрешен запуск любых сценариев.

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

Set-ExecutionPolicy RemoteSigned

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

Пишутся скрипты на объектно-ориентированном языке программирования, команды которого именуются по тому же принципу, что и рассмотренные ранее командлеты: «Действие-Объект» («Глагол-Существительное»). Основное его предназначение — автоматизация задач администрирования, но это полноценный интерпретируемый язык, в котором есть все необходимые конструкции: условный переход, циклы, переменные, массивы, объекты, обработка ошибок и т.д. Для написания сценариев годится любой текстовый редактор, но удобнее всего запустить Windows PowerShell ISE.

В скрипт можно передавать параметры, делать их обязательными, а также задавать значения по умолчанию. Кроме того Windows PowerShell позволяет создать функции и вызывать их точно так же, как и командлеты: для этого используется конструкция Function и фигурные скобки. Сценарий с функциями называется модулем и имеет расширение .psm1. Модули должны храниться в каталогах, определенных в переменных окружения PowerShell. Посмотреть их можно при помощи следующей команды:

Get-ChildItem Env:PSModulePath | Format-Table -AutoSize

Конвейеры

В последнем примере мы применили знакомую пользователям оболочек для Unix-систем конструкцию. В Windows PowerShell вертикальная черта также позволяет передать выход одной команды на вход другой, но в реализации конвейера есть и существенная разница: речь здесь идет уже не о наборе символов или каком-то тексте. Встроенные командлеты или пользовательские функции возвращают объекты или массивы объектов, а также могут получать их на входе. Как в Bourne shell и его многочисленных последователях, в PowerShell с помощью конвейера упрощается выполнение сложных задач.

Простейший пример конвейера выглядит так:

Get-Service | Sort-Object -property Status

Сначала выполняется командлет Get-Service, а потом все полученные им службы передаются на сортировку по свойству Status командлету Sort-Object. В какой именно аргумент передается результат работы предыдущего участка конвейера, зависит от его типа — обычно это InputObject. Подробнее этот вопрос будет рассматриваться в посвященной языку программирования PowerShell статье. 

При желании цепочку можно продолжить и передать результат работы Sort-Object еще одному командлету (выполняться они будут слева направо). Кстати, пользователям Windows доступна и привычная всем юниксоидам конструкция для постраничного вывода: 

Get-Service | Sort-Object -property Status | more

Запуск задач в фоновом режиме 

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

Start-Job — запуск фоновой задачи;
Stop-Job — остановка фоновой задачи;
Get-Job — просмотр списка фоновых задач;
Receive-Job — просмотр результата выполнения фоновой задачи;
Remove-Job — удаление фоновой задачи;
Wait-Job — перевод фоновой задачи обратно в консоль.

Для запуска фоновой задачи мы используем командлет Start-Job и в фигурных скобках указываем команду или набор команд:

Start-Job {Get-Service}

Фоновыми задачами в Windows PowerShell можно манипулировать, зная их имена. Для начала научимся их отображать:

Get-Job

Теперь покажем результат работы задания Job1:

Receive-Job Job1 | more

Всё довольно просто.

Удаленное выполнение команд

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

  • У многих командлетов есть параметр -ComputerName, но таким способом не получится, например, создать конвейер;
  • Командлет Enter-PSSession позволяет создать на удаленной машине интерактивный сеанс; 
  • С помощью командлета Invoke-Command можно выполнять команды или сценарии на одном или нескольких удаленных компьютерах.

Версии PowerShell

С момента первого релиза в 2006 году PowerShell серьезно изменился. Инструмент доступен для множества систем, работающих на разных аппаратных платформах (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux и OS X. Последний релиз 6.2 выпущен 10 января 2018 года. Написанные для более ранних версий скрипты с высокой вероятностью будут работать в более поздних, а вот с обратным переносом могут возникнуть проблемы, поскольку за годы развития в PowerShell появилось большое количество новых командлетов. Узнать версию установленной на компьютере командной оболочки можно с помощью свойства PSVersion встроенной переменной $PSVersionTable:

$PSVersionTable.PSVersion

Также можно воспользоваться командлетом:

Get-Variable -Name PSVersionTable –ValueOnly

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

Итоги 

Корпорации Microsoft удалось создать действительно мощную командную оболочку с удобной интегрированной средой для разработки скриптов. От привычных нам по миру Unix средств ее отличает глубокая интеграция с операционными системами семейства Windows, а также с программным обеспечением для них и платформой .NET Core. PowerShell можно назвать объектно ориентированной оболочкой, потому что командлеты и пользовательские функции возвращают объекты или массивы объектов и могут получать их на входе. Думаем, этим инструментом должны владеть все администраторы серверов на Windows: прошло время, когда они могли обойтись без командной строки. Продвинутая консольная оболочка особенно необходима на наших недорогих VPS, работающих под управлением Windows Server Core, но это уже совсем другая история.

Часть 2: введение в язык программирования Windows PowerShell
Часть 3: передача параметров в скрипты и функции, создание командлетов
Часть 4: Работа с объектами, собственные классы

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Какие темы стоит в первую очередь затронуть в следующих статьях цикла?


53.52%
Программирование в PowerShell
152


40.49%
Функции и модули PowerShell
115


21.83%
Как подписывать собственные скрипты?
62


10.21%
Работа с хранилищами через поставщиков (providers)
29


54.58%
Автоматизация администрирования компьютеров с помощью PowerShell
155


30.63%
Управление программным обеспечением и встраивание исполняемых компонентов PowerShell в сторонние продукты
87

Проголосовали 284 пользователя.

Воздержались 53 пользователя.

Доброго времени суток дорогие читатели. В данной статье мы познакомимся с основами Powershell. Данный язык программирования используется во всех ОС Microsoft начиная с Windows XP SP3. Писать Powershell скрипты должен уметь каждый уважающий себя системный администратор windows.

Все команды в Powershell как правило используются в форме командлетов. Все командлеты это специализированные классы .NET Framework и .NET Core (используется в PowerShell Core 6 и выше).

Powershell класса .NET Framework это версии с 1 по 5.1 а Powershell .NET Core это версия 6 и выше (на данный момент 7.0). По заявлению Microsoft новых функций в Powershell 5.1 (.NET Framework) вносить уже не будут. Однако 7 версия еще не полностью поддерживает все модули предыдущих версий. Но судя по всему Microsoft стремится к этому и скоро версия Core будет единственной. В общем cmd отходит в прошлое и теперь без Powershell никуда. Давайте приступим к практике. Так всегда лучше запоминается материал.

Запуск Powershell

На примере Windows 10 Powershell можно запустить просто нажав правой кнопкой мыши на меню пуск.

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

Еще можно воспользоваться поиском в WIndows 10 и ввести название powershell

Как видно на картинке выше нашелся не только Powershell но и Powershell ISE. Консоль powershell удобна если требуется запустить последовательно не больше одной команды. Либо несколько команд в конвейере. Однако в случае написания полноценных скриптов лучше использовать Powershell ISE. Это бесплатная среда разработки сценариев на языке Powershell поставляется вместе с ОС Windows.

Окно Powershell
Окно Powershell ISE

Сразу после запуска консоли рекомендую запустить командлет Get-Help — встроенная справка по всем командлетам, аналог man в Linux.

Get-Help

Видим что консоль предлагает обновить встроенную помощь. Нажимаем Y и соглашаемся.

Командлеты

Командлеты — это название команд в Powershell. Каждый командлет реализует заложенную в него функциональность. Как правило наименование командлета состоит из пары: глагол-существительное. Например: Get-Help — получить помощь. Обычно Get используется чтобы получить информация, Set — внести изменение, New — создать новый объект, политику и т.п. и Remove -удалить объект, политику и т.п.

Командлеты не чувствительны к регистру. Написать Get или get не важно, powershell воспримет эти команды одинаково.

Чтобы получить список всех доступных командлетов необходимо использовать Get-Command

Get-Command

Для получения справки по любому командлету напишите Get-Help имя-комндлета. Например

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

Get-Command *Process*

И вот мы видим список командлетов позволяющих управлять процессами: Get-Process — список всех запущенных процессов, Start-Process — запустить указанный процесс, Stop-Process— остановить указанный процесс, Wait-Process — ожидать указанный процесс. Как видно из названий командлетов можно легко понять для чего каждый служит.

Используя командлет Get-Help можно получить справку по любому командлету.

PS C:WINDOWSsystem32> Get-Help Get-Process

ИМЯ
    Get-Process

ОПИСАНИЕ
    Gets the processes that are running on the local computer or a remote computer.


СИНТАКСИС
    Get-Process [[-Name] <System.String[]>] [-ComputerName <System.String[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]

    Get-Process [-ComputerName <System.String[]>] [-FileVersionInfo] -Id <System.Int32[]> [-Module] [<CommonParameters>]

    Get-Process [-ComputerName <System.String[]>] [-FileVersionInfo] -InputObject <System.Diagnostics.Process[]> [-Module] [<Com
    monParameters>]

    Get-Process -Id <System.Int32[]> -IncludeUserName [<CommonParameters>]

    Get-Process [[-Name] <System.String[]>] -IncludeUserName [<CommonParameters>]

    Get-Process -IncludeUserName -InputObject <System.Diagnostics.Process[]> [<CommonParameters>]


ОПИСАНИЕ
    The `Get-Process` cmdlet gets the processes on a local or remote computer.

    Without parameters, this cmdlet gets all of the processes on the local computer. You can also specify a particular process b
    y process name or process ID (PID) or pass a process object through the pipeline to this cmdlet.

    By default, this cmdlet returns a process object that has detailed information about the process and supports methods that l
    et you start and stop the process. You can also use the parameters of the `Get-Process` cmdlet to get file version informati
    on for the program that runs in the process and to get the modules that the process loaded.


ССЫЛКИ ПО ТЕМЕ
    Online Version: https://docs.microsoft.com/powershell/module/microsoft.powershell.management/get-process?view=powershell-5.1
    &WT.mc_id=ps-gethelp
    Debug-Process
    Get-Process
    Start-Process
    Stop-Process
    Wait-Process

ЗАМЕЧАНИЯ
    Для просмотра примеров введите: "get-help Get-Process -examples".
    Для получения дополнительных сведений введите: "get-help Get-Process -detailed".
    Для получения технических сведений введите: "get-help Get-Process -full".
    Для получения справки в Интернете введите: "get-help Get-Process -online"

При использовании командлета есть возможность указать несколько параметров при запуске. Первый параметр можно не называть. Выше я писал Get-Command *Process* где указал поиск командлетов со словом Process. Однако я не написал параметр -Name, хотя именно его и указал. Если полностью то поиск по имени выглядит так: Get-Command -Name *Process* . В случае отсутствия непосредственного указания -Name Powershell принимает в качестве имени введенное слово *Process*.

Давайте выведем список процессов с именем WhatsApp

Get-Process -Name WhatsApp -IncludeUserName
Get-Process

Мы вывели все процессы с именем WhatsApp и добавили в вывод дополнительный параметр -IncludeUserName, что позволило нам увидеть кем запущен процесс.

Алиасы

Алиасы в Powershell это по сути более короткие названия командлетов. Т.е. любому командлету можно присвоить свое короткое имя (alias). Например алиасом для командлета Get-Process является gps. Согласитесь куда проще и быстрее написать gps чем Get-Process.

Список всех alias можно получить используя командлет Get-Alias

PS C:WINDOWSsystem32> get-alias

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           % -> ForEach-Object
Alias           ? -> Where-Object
Alias           ac -> Add-Content
Alias           asnp -> Add-PSSnapin
Alias           cat -> Get-Content
Alias           cd -> Set-Location
Alias           CFS -> ConvertFrom-String                          3.1.0.0    Microsoft.PowerShell.Utility
Alias           chdir -> Set-Location
Alias           clc -> Clear-Content
Alias           clear -> Clear-Host
Alias           clhy -> Clear-History
Alias           cli -> Clear-Item
Alias           clp -> Clear-ItemProperty
Alias           cls -> Clear-Host
Alias           clv -> Clear-Variable
Alias           cnsn -> Connect-PSSession
Alias           compare -> Compare-Object
Alias           copy -> Copy-Item
Alias           cp -> Copy-Item
Alias           cpi -> Copy-Item
Alias           cpp -> Copy-ItemProperty
Alias           curl -> Invoke-WebRequest
Alias           cvpa -> Convert-Path
Alias           dbp -> Disable-PSBreakpoint
Alias           del -> Remove-Item
Alias           diff -> Compare-Object
Alias           dir -> Get-ChildItem
Alias           dnsn -> Disconnect-PSSession
Alias           ebp -> Enable-PSBreakpoint
Alias           echo -> Write-Output
Alias           epal -> Export-Alias
Alias           epcsv -> Export-Csv
Alias           epsn -> Export-PSSession
Alias           erase -> Remove-Item
Alias           etsn -> Enter-PSSession
Alias           exsn -> Exit-PSSession
Alias           fc -> Format-Custom
Alias           fhx -> Format-Hex                                  3.1.0.0    Microsoft.PowerShell.Utility
Alias           fl -> Format-List
Alias           foreach -> ForEach-Object
Alias           ft -> Format-Table
Alias           fw -> Format-Wide
Alias           gal -> Get-Alias
Alias           gbp -> Get-PSBreakpoint
Alias           gc -> Get-Content
Alias           gcb -> Get-Clipboard                               3.1.0.0    Microsoft.PowerShell.Management
Alias           gci -> Get-ChildItem
Alias           gcm -> Get-Command
Alias           gcs -> Get-PSCallStack
Alias           gdr -> Get-PSDrive
Alias           ghy -> Get-History
Alias           gi -> Get-Item
Alias           gin -> Get-ComputerInfo                            3.1.0.0    Microsoft.PowerShell.Management
Alias           gjb -> Get-Job
Alias           gl -> Get-Location
Alias           gm -> Get-Member
Alias           gmo -> Get-Module
Alias           gp -> Get-ItemProperty
Alias           gps -> Get-Process
Alias           gpv -> Get-ItemPropertyValue
Alias           group -> Group-Object
Alias           gsn -> Get-PSSession
Alias           gsnp -> Get-PSSnapin
Alias           gsv -> Get-Service
Alias           gtz -> Get-TimeZone                                3.1.0.0    Microsoft.PowerShell.Management
Alias           gu -> Get-Unique
Alias           gv -> Get-Variable
Alias           gwmi -> Get-WmiObject
Alias           h -> Get-History
Alias           history -> Get-History
Alias           icm -> Invoke-Command
Alias           iex -> Invoke-Expression
Alias           ihy -> Invoke-History
Alias           ii -> Invoke-Item
Alias           ipal -> Import-Alias
Alias           ipcsv -> Import-Csv
Alias           ipmo -> Import-Module
Alias           ipsn -> Import-PSSession
Alias           irm -> Invoke-RestMethod
Alias           ise -> powershell_ise.exe
Alias           iwmi -> Invoke-WmiMethod
Alias           iwr -> Invoke-WebRequest
Alias           kill -> Stop-Process
Alias           lp -> Out-Printer
Alias           ls -> Get-ChildItem
Alias           man -> help
Alias           md -> mkdir
Alias           measure -> Measure-Object
Alias           mi -> Move-Item
Alias           mount -> New-PSDrive
Alias           move -> Move-Item
Alias           mp -> Move-ItemProperty
Alias           mv -> Move-Item
Alias           nal -> New-Alias
Alias           ndr -> New-PSDrive
Alias           ni -> New-Item
Alias           nmo -> New-Module
Alias           npssc -> New-PSSessionConfigurationFile
Alias           nsn -> New-PSSession
Alias           nv -> New-Variable
Alias           ogv -> Out-GridView
Alias           oh -> Out-Host
Alias           popd -> Pop-Location
Alias           ps -> Get-Process
Alias           pushd -> Push-Location
Alias           pwd -> Get-Location
Alias           r -> Invoke-History
Alias           rbp -> Remove-PSBreakpoint
Alias           rcjb -> Receive-Job
Alias           rcsn -> Receive-PSSession
Alias           rd -> Remove-Item
Alias           rdr -> Remove-PSDrive
Alias           ren -> Rename-Item
Alias           ri -> Remove-Item
Alias           rjb -> Remove-Job
Alias           rm -> Remove-Item
Alias           rmdir -> Remove-Item
Alias           rmo -> Remove-Module
Alias           rni -> Rename-Item
Alias           rnp -> Rename-ItemProperty
Alias           rp -> Remove-ItemProperty
Alias           rsn -> Remove-PSSession
Alias           rsnp -> Remove-PSSnapin
Alias           rujb -> Resume-Job
Alias           rv -> Remove-Variable
Alias           rvpa -> Resolve-Path
Alias           rwmi -> Remove-WmiObject
Alias           sajb -> Start-Job
Alias           sal -> Set-Alias
Alias           saps -> Start-Process
Alias           sasv -> Start-Service
Alias           sbp -> Set-PSBreakpoint
Alias           sc -> Set-Content
Alias           scb -> Set-Clipboard                               3.1.0.0    Microsoft.PowerShell.Management
Alias           select -> Select-Object
Alias           set -> Set-Variable
Alias           shcm -> Show-Command
Alias           si -> Set-Item
Alias           sl -> Set-Location
Alias           sleep -> Start-Sleep
Alias           sls -> Select-String
Alias           sort -> Sort-Object
Alias           sp -> Set-ItemProperty
Alias           spjb -> Stop-Job
Alias           spps -> Stop-Process
Alias           spsv -> Stop-Service
Alias           start -> Start-Process
Alias           stz -> Set-TimeZone                                3.1.0.0    Microsoft.PowerShell.Management
Alias           sujb -> Suspend-Job
Alias           sv -> Set-Variable
Alias           swmi -> Set-WmiInstance
Alias           tee -> Tee-Object
Alias           trcm -> Trace-Command
Alias           type -> Get-Content
Alias           wget -> Invoke-WebRequest
Alias           where -> Where-Object
Alias           wjb -> Wait-Job
Alias           write -> Write-Output

Как видно из списка для alias использованы аналогичные по значению команды из Linux: ls, man, mount, md, kill и т.п. Видимо чтобы линуксоиду было по привычнее 🙂 Можно создать свой alias используя командлет New-Alias

Конвейер

Конвейер используется для передачи выходных данных командлета идущего вначале во входные данные командлета следующего за ним. Ничего непонятно? 🙂 Давайте на примерах, так всегда яснее.

Возьмем уже известный нам командлет Get-Process, посмотрим на его вывод

Get-Process

Как по мне многовато лишних столбцов. Мне эта информация не нужна, поэтому я выберу только нужные данные. Для таких целей служит командлет Select-Object. Давайте используем его в конвейере.

Get-Process|Select-Object ID,CPU,ProcessName
Get-Process|Sort-Object

Как вы уже наверно догадались конвейер обозначается знаком | и идет сразу следом за командлетом. И так данные по конвейеру можно передавать и дальше другим командлетам. Итак я передал выходные данные (список запущенных процессов) на вход командлета Select-Object. Который в свою очередь выбрал данные по 3 столбцам ID, CPU, ProcessName. Теперь можно передать эти данные дальше. Например выгрузить в текстовый файл

Get-Process|Select-Object ID,CPU,ProcessName|Out-File C:TMPout.txt

Просто не правда ли? У нас конвейер из трех командлетов, на выходе которого получаем текстовый файл со списком запущенных процессов и необходимой информацией по ним.

Структура объектов

В Powershell объекты играют самую важную роль. От типа объекта зависит что именно с ним можно сделать. Узнать тип объекта и вывести список всех его элементов позволяет команда Get-Member

Get-Process|get-Member

Вот далеко не полный список элементов командлета Get-Process. В данному случае тип данных это System.Diagnostics.Process

Давайте посмотрим тип данных у новой переменной

$new="Test"
$new|Get-Member
Get-Member String

В данном случае тип данных System.String т.е. строка. Что вполне логично. А теперь посмотрите что можно сделать с этой строкой с учетом указанных выше параметров.

Get-Member methods

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

  • ToUpper — перевод всех букв в строке в верхний регистр
  • ToLower — перевод всех букв в строке в нижний регистр
  • Length — подсчитать количество символов в строке

Это всего лишь небольшой пример что можно сделать с параметрами объекта. Чаще используйте Get-Member и вы откроете для себя безграничные возможности манипуляции над объектами.

Скрипты Powershell

В самом начале статьи указал на встроенный инструмент Powershell ISE. Давайте запустим его и создадим свой первый скрипт. Кстати скрипты сохраняются в файлах с расширением ps1

Скрипт будет запускать блокнот, далее выполняется проверка если блокнот запущен выводится сообщение об этом и после блокнот закрывается. Если блокнот не запущен то выводится соответствующее сообщение об этом. На самом деле блокнот будет всегда запущен, т.к. мы вначале скрипта написали Start-Process notepad

Start-Process notepad
$a=Get-Process notepad
if ($a.ProcessName -like "Notepad")
{
Write-Host "Блокнот запущен, давайте его закроем"
Stop-Process -name notepad
}
else 
{
Write-Host "Блокнот не запущен, что поделать"
}
Powershell скрипты

В этом скрипте я использовал цикл if else. О циклах будет подробнее в следующей статье. Итак давайте сохраним скрипт и выполним его.

В ответ мы получим такую ошибку:

Невозможно загрузить файл, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см.
 about_Execution_Policies по адресу https:/go.microsoft.com/fwlink/?LinkID=1351
70.
    + CategoryInfo          : Ошибка безопасности: (:) [], ParentContainsError 
   RecordException
    + FullyQualifiedErrorId : UnauthorizedAccess

Все верно, изначально в WIndows запрещено выполнять скрипты Powershell. Это сделано для повышения безопасности системы. Для включения возможности запуска скриптов Powershell необходимо запустить Powershell от Администратора и ввести командлет Set-ExecutionPolicy с одним из параметров:

  • Restricted — политика по умолчанию. Выполнение всех скриптов запрещено
  • RemoteSigned — разрешено запускать собственные скрипты и подписанные доверенным разработчиком
  • AllSigned — разрешено запускать скрипты, подписанные доверенным разработчиком. Каждый раз перед запуском такого скрипта PowerShell будет запрашивать подтверждение
  • Unrestricted — в системе разрешается запускать любые скрипты

Если вы полностью уверены в запускаемых скриптах можете поставить Unrestricted. Давайте так и сделаем

Set-ExecutionPolicy -Unrestricted
Set-ExecutionPolicy

Будет предупреждение по безопасности, соглашаемся нажав Y

Можем посмотреть текущую настройку политики безопасности при помощи командлета Get-ExecutionPolicy

Get-ExecutionPolicy

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

Рекомендую к прочтению:
  • Переменные
  • Операторы сравнения
  • Операторы условий
  • Циклы
Хотите отблагодарить автора статьи? Это даст ему дополнительный стимул к написанию новых статей.

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

Команды PowerShell

Содержание

  • Что такое PowerShell и для чего он нужен?
    • Преимущества использования в качестве администратора
    • Как открыть в Windows
  • Основные и важные команды
    • Помогите использовать любую команду
    • Найти и открыть файлы
    • Найти команду
    • Создать новый каталог
    • Копировать и удалять файлы или каталоги
    • Список всех файлов в папке
    • Создание файлов и папок
    • Знать все содержимое файла
    • Изменить политику выполнения
    • Просмотр, запуск, остановка, приостановка или перезапуск службы или процесса
    • Запуск приложений UWP в Windows

Это инструмент командной строки это позволит нам выполнять различные типы комбинаций команд, называемых сценариями, которые позволят нам создавать, настраивать и автоматизировать несколько типов системных задач без необходимости использовать для этого рабочий стол или граф интерфейса. Не исключено, что многим продвинутым пользователям хотя бы внешне напоминает мифическую MS-DOS, ведь по функционалу она куда более полная и продвинутая, чем эта.

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

Преимущества использования в качестве администратора

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

  • Изменения в политике исполнения.
  • Модификация системных файлов.
  • Изменения реестра.

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

Как открыть в Windows

Как только мы узнаем немного больше о PowerShell, важно узнать, как мы можем его открыть. Будь то в Windows 10 или Windows 11, есть разные способы сделать это, но наиболее распространенным является ввод «Windows PowerShell» в поле поиска меню «Пуск».

Ejecutar PowerShell для администратора

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

Основные и важные команды

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

Помогите использовать любую команду

Вполне возможно, что при использовании команд PowerShell мы обнаружим, что не знаем, как их использовать. Для этого мы можем использовать команду Get-Help, с помощью которой мы будем получать различные типы помощи. Будь то общая справка, конкретная команда или знание того, как работает любая команда:

Get-Help Get-Help <comando> Get-Help <comando> -Full Get-Help <comando> -Example Get-Help *

Справка по PowerShell

Иногда также может быть полезно использовать команду Update-Help, которая поможет нам загрузить библиотеки справки.

Найти и открыть файлы

В случае, если нам нужно найти конкретный каталог с этой консоли, команда Get-Item, которая будет отвечать за отображение соответствующего содержимого. Для этого напишем:

Get-Item <ruta>

Если мы хотим открыть файл из этой консоли, мы должны использовать команду, аналогичную предыдущей, например:

Get-Content <ruta al archivo con su extensión>

Эта команда наиболее полезна для непосредственного получения списков информации в Windows PowerShell.

Найти команду

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

Чтобы найти команды похожего типа или содержащие определенную фразу, можно использовать командлет Get-Command. Однако в нем перечислены не все командлеты PowerShell, поэтому он позаботится об использовании некоторых фильтров. Можно использовать команды:

Get-Comand – Name <nombre> Get-Commad – CommandType <tipo>

PowerShell Get-команда

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

Создать новый каталог

С PowerShell мы также можем создать новый каталог с помощью команды mkdir. Важно, чтобы при указании имени мы избегали использования пробелов.

Например, мы можем создать каталог DocumentITIGIC

mkdir DocumentoITIGIC

Мы также можем избежать использования пробелов, вставив дефис или подчеркивание, например:

mkdir DocumentoITIGIC

Копировать и удалять файлы или каталоги

Еще одна функция консоли Windows — это возможность копирования и удаления файлов или каталогов, для чего мы можем использовать команды Copy-Item или Remove-Item в зависимости от того, что нам нужно.

Чтобы скопировать файл или каталог, мы используем:

Copy-Item "ruta al archivo de origen con extensión" -Destination "ruta de destino"

Если мы хотим удалить его, мы должны выбрать:

Remove-Item "ruta al archivo con extensión"

Список всех файлов в папке

Если мы хотим увидеть все элементы, которые находятся внутри папки, мы можем сделать это с помощью команды:

Get-ChildItem

Мы можем добавить параметр Force, чтобы также показывать скрытые элементы системы, например, диск C:.

Get-ChildItem -Path C: -Force

Создание файлов и папок

С PowerShell у нас также есть возможность создавать новые элементы в зависимости от типа элемента. Если у вас есть более одного типа элемента, необходимо будет указать тип элемента.

Эта команда создает новую папку:

New-Item -Path 'C:tempNueva carpeta' -ItemType Directory

Эта команда создает новый пустой файл:

New-Item -Path 'C:tempNueva carpetafile.txt' -ItemType File

Знать все содержимое файла

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

Например, мы можем увидеть содержимое файла softzone.htm.

Get-Content "C:/softzone.txt"

Мы также можем увидеть 10 строк текста, включенных в эту статью.htm

Get-Content "C:/softzone.txt" – TotalCount 20

Изменить политику выполнения

Хотя PowerShell поддерживает создание и запуск скриптов, он также имеет ограничения для каждого из них в рамках мер безопасности. Уровень безопасности можно изменить на любой из четырех уровней ограничений. Для этого можно использовать команду Set-ExecutionPolicy, за которой следует любой из уровней безопасности, которые мы увидим ниже:

Set-ExecutionPolicy Unrestricted Set-ExecutionPolicy All Signed Set-ExecutionPolicy Remote Signed Set-ExecutionPolicy Restricted

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

Просмотр, запуск, остановка, приостановка или перезапуск службы или процесса

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

Список запущенных сервисов

Если мы хотим увидеть в PowerShell полный список запущенных служб, мы должны использовать Get-Сервис команда. С помощью других команд мы можем выполнять определенные действия, такие как:

Start-Service <nombre del servicio> Stop-Service <nombre del servicio> Suspend-Service <nombre del servicio> Resume-Service <nombre del servicio> Restart-Service <nombre del servicio>

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

Служба получения PowerShell

Список открытых процессов

Аналогичным образом мы можем работать с процессами Windows. Чтобы увидеть список со всеми открытыми процессами, мы можем использовать команду Get-Process. С его помощью мы можем выполнять определенные действия, такие как:

Start-Process <nombre del proceso> Stop-Process <nombre del proceso> Wait-Service <nombre del proceso>

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

Запуск приложений UWP в Windows

Одной из целей PowerShell является возможность быстрого запуска приложений UWP, поэтому мы можем использовать его для открытия определенных приложений или создания собственных сценариев. Для этого используем команду Star-Process.

Например, если мы хотим открыть настройки Windows, мы используем:

Start-Process "ms-settings:"

Если мы хотим использовать приложение UWP, например Spotify, команда для записи будет

Start-Process "spotify:"

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

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

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

На ПК с Windows это можно сделать только двумя способами: с помощью CMD или PowerShell. Хотя CMD немного более популярен, чем PowerShell, он также менее мощный, поскольку его аналог позволяет выполнять гораздо больше операций, включая те, которые вы можете запускать через CMD. Можно сказать, что PowerShell сочетает в себе мощь старого CMD со сценариями и возможностями командлетов, предоставляя вам множество возможностей в отношении операций, которые вы можете выполнять с его помощью.

Однако огромное количество возможных операций, которые вы могли бы выполнить с помощью PowerShell, может напугать даже опытных пользователей, не говоря уже о тех, кто никогда раньше не слышал о CMD (не говоря уже о PowerShell). Но не волнуйтесь, мы постараемся научить вас нескольким простым трюкам, которые вы сможете реализовать с помощью PowerShell и, возможно, даже запомнить в долгосрочной перспективе. Хотя этот наш «ускоренный курс» не будет служить исчерпывающим руководством по PowerShell, мы надеемся, что он поможет вам сориентироваться в PowerShell, дав вам несколько указателей и объяснив ряд команд. Если готовы, приступим.

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

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

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

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

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

  • Комплексная система форматирования, обеспечивающая чистый и простой вывод.
  • Создавайте динамические типы с помощью обширной системы типов.
  • Вы можете расширить возможности PowerShell с помощью классов, функций, модулей и скриптов.
  • Встроенная поддержка различных форматов данных, включая XML, JSON и CSV.

Если вас больше интересует управление и настройка корпоративной инфраструктуры с помощью кода, вы будете рады узнать, что PowerShell также предлагает вам эту возможность через свою структуру управления Desired State Configuration (DSC). Среди операций, которые можно легко выполнить с помощью DSC PowerShell, мы напоминаем вам:

  • Развертывайте различные схемы конфигурации, используя модели push или pull.
  • Создавайте собственные сценарии и декларативные конфигурации, которые можно использовать для повторяемых развертываний в своей среде.
  • Применяйте различные схемы конфигурации.
  • Отчет о дрейфе конфигурации

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

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

  • Инструментарий управления Windows
  • API.NET Framework
  • Командная строка
  • Модель компонентных объектов Windows
  • Команды PowerShell

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

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

Стоит отметить, что PowerShell является кроссплатформенным и имеет открытый исходный код, а это означает, что вы также можете использовать его в других системах, таких как Mac или Linux, без использования уловок и инструментов повышения совместимости, таких как Wine или Boot Camp.

Список основных команд PowerShell

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

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

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

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

Название команды Псевдоним Описание
Добавить контент ac Позволяет добавлять содержимое (например, слова или данные) в файл
Добавить PSSnapIn asnp Помогает добавить несколько оснасток Windows PowerShell в
текущий сеанс
Clear-Content clc Очищает содержимое элемента без удаления самого элемента
Очистить историю clhy Удаляет все записи из истории команд
Очистить хост очистить Очищает отображение основной программы
Очистить хост cls Выполняет то же самое, что и clear
Очистить элемент cli Удаляет содержимое элемента, не удаляя сам элемент
Clear-ItemProperty clp Удаляет значение свойства без фактического удаления самого свойства
Clear-Variable clv Удаляет значение переменной
Сравнить объект сравнить Позволяет сравнить два набора объектов
Сравнить объект diff Выполняет те же действия, что и compare
Connect-PSSession cnsn Позволяет повторно подключиться к сеансам, от которых вы отключились
Convert-Path cvpa Позволяет преобразовать путь Windows PowerShell в путь поставщика Windows
PowerShell
Копировать элемент копия Помогает скопировать элемент из одного места в другое
Копировать элемент cp Выполняет то же самое, что и copy
Копировать элемент cpi Выполняет те же действия, что и copy и cp
Copy-ItemProperty cpp Позволяет скопировать значение и свойство из одного места в другое место
Disable-PSBreakpoint dbp Помогает отключить точки останова в текущей консоли
Disconnect-PSSession dnsn Отключает вас от текущего сеанса
Enable-PSBreakpoint ebp Позволяет включать точки останова в текущей консоли
Enter-PSSession etsn Помогает запустить интерактивный сеанс с удаленным устройством
Exit-PSSession exsn Завершает интерактивный сеанс с удаленным устройством
Экспорт-псевдоним эпал Позволяет экспортировать информацию о псевдонимах, которые в настоящее время определены
в выходной файл
Export-CSV epcsv Позволяет преобразовывать объекты в несколько строк, разделенных запятыми (CSV),
и экспортировать строки в документ CSV
Export-PSSession epsn Импортирует команды из другого сеанса и экспортирует их в модуль Windows PowerShell
ForEach-Object % Выполняет определенную операцию с каждым из элементов,
содержащихся в коллекции входных объектов
ForEach-Object foreach Выполняет то же самое, что и %
Пользовательский формат fc Помогает использовать настраиваемое представление для форматирования вывода
Список форматов fl Позволяет форматировать вывод как список свойств, где каждое свойство
помещается в новую строку
Формат-таблица футов Позволяет форматировать вывод в виде таблицы
Широкий формат fw Помогает форматировать объекты в виде широких таблиц, в которых отображается только одно свойство каждого объекта
Get-Alias ​​ гал Выбирает псевдонимы для текущего сеанса
Get-ChildItem директория Получает список всех файлов и папок на диске с файловой системой
Get-ChildItem gci Выполняет то же самое, что и dir
Get-ChildItem ls Выполняет те же функции, что и dir и gci
Get-Command gcm Получает список всех команд, которые вы можете использовать
Get-Content кот Отображает содержимое файла
Get-Content gc Выполняет то же самое, что и cat
Get-History ghy Получает список всех команд, введенных вами во время текущего сеанса
Get-History h Выполняет то же самое, что и ghy
Get-History история Выполняет те же действия, что и ghy и h
Get-Item gi Позволяет получать файлы и папки
Get-ItemProperty gp Получает свойства указанного вами элемента
Get-Job gjb Получает список всех фоновых заданий Windows PowerShell, которые
в данный момент выполняются в вашем сеансе
Get-Location gl Получает информацию о вашем текущем стеке местоположений или рабочем местоположении
Get-Location pwd Выполняет то же самое, что и gl
Get-Member gm Получает все свойства и методы указанных объектов
Get-Module gmo Получает список импортированных модулей или модулей, которые могут быть импортированы в текущий

сеанс

Get-Process GPS Получает список всех процессов, запущенных локально или на удаленном
компьютере
Get-Process ps Выполняет то же самое, что и gps
Get-PSBreakpoint gbp Получает все точки останова, установленные в текущем сеансе
Get-PSCallStack gcs Отображает текущий стек вызовов
Get-PSDrive гдр Извлекает диски в текущем сеансе
Get-PSSession gsn Получает список локальных и удаленных сеансов Windows PowerShell
Get-PSSnapIn gsnp Получает список всех оснасток Windows PowerShell на компьютере
Get-Service gsv Список всех служб на локальном или удаленном компьютере
Get-Unique гу Извлекает уникальные элементы из отсортированного списка
Get-Variable gv Отображает список всех переменных в текущей консоли
Get-WmiObject gwmi Получает экземпляры классов инструментария управления Windows (WMI) или информацию о доступных классах
Групповой объект группа Позволяет группировать объекты, содержащие одно и то же значение для указанных вами свойств
справка человек Отображает дополнительные сведения о командах Windows PowerShell и концепциях
Импорт псевдонима ipal Позволяет импортировать список псевдонимов из файла
Import-CSV ipcsv Создавайте настраиваемые объекты в виде таблиц, используя все элементы, содержащиеся
в файле CSV
Модуль импорта ipmo Импортировать модули в текущий сеанс
Import-PSSes sion ipsn Импортирует команды из другого сеанса в текущий сеанс
Команда вызова icm Позволяет выполнять команды на локальных и удаленных компьютерах
Вызов-выражение iex Позволяет выполнять команды или выражения на локальном компьютере
История вызовов ihy Выполняет команды из вашей истории сеанса
История вызовов г Выполняет то же самое, что и ihy
Invoke-Item ii Выполняет действие по умолчанию для указанного элемента
Invoke-RestMethod irm Отправляет запрос HTTP или HTTPS в веб-службу RESTful
Invoke-WebRequest завиток Получает контент с веб-страницы в Интернете
Invoke-WebRequest iwr Выполняет то же самое, что и curl
Invoke-WMIMethod iwmi Позволяет вызывать методы
инструментария управления Windows (WMI)
Объект измерения мера Определяет числовые свойства объектов, а также слова,
строки и символы в строковых объектах
mkdir мкр Создает новый элемент (каталог)
Переместить элемент миль Позволяет переместить элемент из одного места в другое
Переместить элемент переместить Выполняет то же самое, что и mi
Переместить элемент мв Выполняет те же действия, что и mi и move
Move-ItemProperty mp Позволяет переместить свойство из одного места в другое
Новый псевдоним последний Позволяет создать новый псевдоним
Новый элемент нет Позволяет создать новый элемент
Новый модуль nmo Создает новый динамический модуль, который существует только в памяти
New-PSDrive монтировать Позволяет создавать временные и постоянные подключенные сетевые диски
New-PSDrive ndr Выполняет то же самое, что и mount
New-PSSession nsn Устанавливает постоянное соединение с локальным или удаленным компьютером
New-PSSessionConfigurationFile npssc Создает файл конфигурации сеанса
Новая переменная nv Позволяет создать новую переменную
Out-GridView ogv Позволяет отправлять вывод в интерактивную таблицу в отдельном окне
Out-Host о Отправляет вывод в командную строку (CMD)
Out-Printer lp Позволяет отправлять вывод на принтер
Pop-Location popd Изменяет ваше текущее местоположение на местоположение, которое было помещено в стек в последний раз. Вы можете использовать командлет Push-Location ( pushd ), чтобы
извлекать местоположение либо из его стека по умолчанию, либо из стека, который вы создали.
powershell_ise.exe ise Отображает объяснение того, как можно использовать PowerShell_ISE.exe
инструмент командной строки
Push-Location pushd Добавляет текущее местоположение в начало стека местоположений
Получение задания rcjb Получает результаты текущего сеанса фоновых заданий Windows PowerShell
Receive-PSSession rcsn Получает результаты команд из отключенных сеансов
Remove-Item дель Удаляет файлы и папки
Remove-Item стереть Выполняет то же самое, что и del
Remove-Item рд Выполняет те же действия, что и del и erase
Remove-Item ри Выполняет то же самое, что и del , erase и rd
Remove-Item рм Выполняет те же действия, что и del , erase , rd и ri
Remove-Item rmdir Удаляет папки
Remove-ItemProperty рп Позволяет удалить свойство и его значение из данного элемента
Remove-Job rjb Позволяет удалить фоновое задание Windows PowerShell
Remove-Module рмо Помогает удалить модули из текущего сеанса
Remove-PSBreakpoint rbp Позволяет удалять точки останова с текущей консоли
Remove-PSDrive рдр Удаляет временные диски Windows PowerShell, а также отключает
подключенные сетевые диски
Remove-PSSession RSN Позволяет закрыть один или несколько сеансов Windows PowerShell (PSSessions)
Remove-PSSnapin RSNP Позволяет удалить оснастки Windows PowerShell из текущего сеанса
Remove-Variable rv Очищает переменную и ее значение
Remove-WMIObject rwmi Позволяет удалить экземпляр существующего класса Windows Management
Instrumentation (WMI)
Переименовать элемент аренда Помогает переименовать элемент в пространстве имен поставщика Windows PowerShell
Переименовать элемент рни Выполняет то же самое, что и ren
Rename-ItemProperty РНП Позволяет переименовать свойство элемента
Resolve-Path rvpa Разрешает символы подстановки в пути, а также отображает содержимое
пути
Resume-Job rujb Помогает перезапустить задание, которое было приостановлено
Выбрать объект выбрать Позволяет выбирать объекты, а также их свойства
Установить псевдоним сал Позволяет создавать или изменять псевдоним
командлета или элемента команды (альтернативное имя) в текущем сеансе Windows PowerShell
Set-Content sc Позволяет заменить содержимое файла указанным вами содержимым.
Set-Item си Изменяет значение элемента на значение, указанное в команде
Установить местоположение компакт-диск Позволяет установить ваше текущее рабочее место на определенное место (изменяет активное местоположение)
Установить местоположение chdir Выполняет то же самое, что и cd
Set-PSBreakpoint sbp Позволяет установить точку останова для команды, переменной или строки
Установить переменную установить Позволяет установить значение переменной или создает переменную, если она с
запрошенным именем не существует
Show-Command shcm Отображает список команд Windows PowerShell в графическом
командном окне
Начало работы sajb Starts a background job in Windows PowerShell
Start-Process saps Launches one or more local processes
Start-Service sasv Lets you start one or more stopped services
Stop-Process kill Helps you stop one or more running processes
Where-Object ? Enables you to select certain objects from a collection based on their
property values
Write-Output echo Allows you to send an object to the next command in the pipeline. If it
reaches the last command in the pipeline, the command will display
the objects in the console

Don’t let the sheer amount of basic PowerShell commands intimidate you. Although we called them basic, there’s absolutely no need for you to start memorizing them. In fact, that’s the exact reason why we created the table above so that you can go on about your work without worrying about having to remember each and every command we mentioned above.

You can use it as a quick refresher or even use your browser’s search feature to locate a specific command, its alias, and what it does if you’re confused. Although we already included this piece of information in the table above, if you’re ever confused while working in PowerShell, using the help command will display a few helpful details on how you can use this program and its commands more efficiently.

You can also pair the help command with another command or alias if you want more details about that specific command. For instance, this is what PowerShell displays when you type help Add-Computer:

PowerShell help

However, you can use help with any other of the commands or their aliases in our table above. Make sure you understand that the same command can have multiple aliases, which means that you can achieve the same result by using various aliases. Although this may sound confusing, it actually gives you plenty of flexibility in case you can’t remember one command alias, but you remember another one that can help you achieve the same goal.

Using PowerShell

Naturally, the first thing you’d want to do is locate PowerShell and launch it. One sure way to launch PowerShell from just about anywhere you are on your PC is to hold down the Shift button on your keyboard, right-click any empty spot on your screen (not a menu, icon, button, or similar object), and select Open PowerShell window here from the context menu.

In addition to giving you quick access to the PowerShell console anywhere on your PC, doing so will automatically switch the default working directory for PowerShell to the one you’re currently located at. If you’re on a Windows 10 PC, you can also launch PowerShell by pressing the Win key on your keyboard, typing PowerShell in the Start menu, and selecting PowerShell when it becomes visible in the list of results.

On older versions of Windows, you’ll need to manually locate the PowerShell executable, which you can either find in the Accessories or System folders in your Start menu. Furthermore, seeing how older systems (such as Windows 7) don’t provide you with PowerShell by default, you’ll also have to install it on your computer, along with all of its dependencies.

Notice how launching PowerShell from the Start menu will set your active working directory to C:Users[your username here]. By comparison, using the Shift + Right-click method we’ve presented above will set PowerShell’s active directory to the one you’re currently at when you spawn the console. For instance, if you use Shift + right-click and open PowerShell from your desktop, you’ll notice that the active directory will be C:Users[your username here]Desktop. For obvious reasons, the [your username here] part will be different depending on your username.

Although you can keep PowerShell for home usage just fine, it’s better if you could make use of all that it has to offer. Incidentally, these features make PowerShell awesome for corporate usage, where you need to perform a large number of operations in a short time, and most likely on a huge number of devices.

Thus, instead of running each command manually on every single machine, you could simply create an automation script in PowerShell and receive the information you need automatically, without having to physically interact with the devices in case or even be near them. Just as CMD, PowerShell can be used through command lines. However, unlike its more rudimentary counterpart (i.e. the CMD), PowerShell also lets you summon scripts and cmdlets, which makes it more powerful, but also more complicated to use.

How to use cmdlets

We’ve used the term cmdlets quite a few times in our guide, so you’re probably left wondering whatever they mean. Well, to start at the beginning, it’s worth reminding you that CMD works with commands. A cmdlet, which is pronounced command-let, is also a command, but unlike traditional CMD commands, cmdlets are specific to PowerShell and let you perform single specific operations, such as copying files, moving items from one place to another, changing the active directory, or see the contents of an item.

Simply put, cmdlets are single function commands that you can type directly in PowerShell’s command line. If you have any prior experience with the CMD, you’ll find PowerShell somewhat intuitive to work with. One interesting thing about PowerShell is that it shares plenty of commands with CMD. Therefore, using CD with PowerShell will still change your active directory, DIR will still display the contents of the current folder, and CP will still let you copy an item from one place to another.

It’s quite worth mentioning that PowerShell is not case sensitive, unlike many other shells, which return errors if you miss using the correct case when typing your commands in them. Thus, copy-item will work just as well as Copy-Item, and if you remember neither one of them you can also use Copy, CP, and CPI (but also copy, COPY, cp, or cpi).

Most PowerShell cmdlets are written in C# and are specially built to perform operations that will return a.NET object as their result. At the time being, you could find more than a couple of hundred cmdlets you can use in PowerShell, which, let’s be fair, gives you more than just a little elbow room as far as performing operations goes.

Although it will be difficult to remember all the cmdlets you may have to work with (remember that you can use the table above), there are a few that you’ll use more frequently, which will make them incredibly easy to remember. Not to mention the fact that some of them are intuitive enough that their name actually gives away their purpose (e.g. copy is used to copy items, move can be used to move files, compare helps you compare sets of objects, etc).

However, if you’re not exactly in the mood to bookmark this article to use it later, you could also type in the Get-Command cmdlet in PowerShell, or gcm, if you want to keep things short. Doing so will display a full list of commands that are available to you, and you can use that list to plan ahead on whatever it is you’re trying to do.

Unlocking custom cmdlets

On the downside, Microsoft doesn’t just give you full access to the whole array of cmdlets that you can use in PowerShell by default, so you’ll have to jump through a bunch of extra hoops to unlock this feature and use it at your leisure. The good news is that the unlocking process doesn’t take long, and then there’s the fact that it can also be done through the PowerShell, which will make great practice for you. Without any further ado, let’s see how you can unlock custom cmdlets privileges in PowerShell.

  1. Log in to an Administrator account (it won’t work without Admin rights)
  2. Launch PowerShell with Administrator rights (Run as administrator)
  3. Type the following command in PowerShell and press Enter:
    • Set-ExecutionPolicy
  4. If done right, PowerShell will prompt you with a dialog, asking you for the new ExecutionPolicy value
  5. Type RemoteSigned in the PowerShell command prompt and press Enter
  6. PowerShell will give you a heads up on the risks of modifying the value of the ExecutionPolicy
  7. Type Y and press the Enter keyHow to unlock custom cmdlets in PowerShell
  8. If you need to turn custom cmdlets off, just follow steps 1-4, and when PowerShell asks you to type the value, type Restricted and confirm your choice as you did at step 7

If you want to streamline the whole process and not waste time typing everything down in PowerShell’s command prompt, you’ll be glad to learn that there’s an even simpler way to achieve the same result. Launch PowerShell with Administrator rights as you did at step one, and instead of typing each command and waiting for the prompt, you’re gonna pipeline everything up until the confirmation by typing this:

  • Set-ExecutionPolicy-ExecutionPolicy RemoteSigned

Naturally, you will still need to confirm your choice by typing Y and hitting Enter on your keyboard, but you just skipped a step and performed a series of operations at the same time. This is exactly why advanced PowerShell users create automation scripts to perform various management operations automatically: to save time and hassle. If you want, you can use the same command above to disable custom cmdlets on your system, but you’ll have to replace RemoteSigned with Restricted and also confirm your choice at the end.

You can also use AllSigned and Unrestricted to grant yourself even more privileges when it comes to running potentially unsafe scripts on your Windows PowerShell. The AllSigned option will let you run all scripts that were created by trusted publishers, whereas the Unrestricted option will enable PowerShell to run any script, regardless of its provenience and trustworthiness. Naturally, the Unrestricted option is also the most dangerous, so try to avoid it as best as you can, if possible, especially if you are a PC novice.

See? PowerShell is already starting to look a lot more accessible than it did just a few minutes back.

How to create and use scripts in PowerShell

As we’ve mentioned before and we’re positively sure you remember, you can use PowerShell to run automation scripts. However, you can’t just yell at PowerShell “Hey you, create this script for me!” and expect it to magically work, so you’ll have to put in some elbow grease and get it done yourself. However inconvenient this may sound right now, trust us, you’ll be thankful in the long run, considering all the work you won’t need to do anymore.

Although most of us rely on specialized software such as IDEs to create scripts or programs in a specific programming language, truth be told you can use any text editor as long as it can save files to the right extension. And even if it can’t, you can just navigate to the file you created and modify its extension manually by renaming it, but let’s get back to our sheep.

If you’re interested in creating a script that can work in PowerShell, you’ll be thrilled to learn that this script you’ve probably heard a lot of, is merely a text document with an extension that makes it compatible with PowerShell, PS1. Therefore, it’s easy to see why creating these scripts can be actually handled from within virtually any text editor, as long as you save it with the right (PS1) extension.

Write-host"Please enter your name:"

$Name=read-host

"Hello $Name! Visit AddictiveTips.com for more awesome tutorials and guides!"

Now for the actual creation part:

  1. Launch Notepad (or any other text editor for that matter)
  2. Copy the code above (the script you’ll be creating and running)
  3. Paste it into your new Notepad document
  4. Use CTRL + S to save the document
  5. Type script.ps1 as the file name
  6. Save the file somewhere accessible
  7. Open a PowerShell instance with administrator rights (very important)
  8. Make sure you’ve enabled custom scripts on your system (check sections above)
  9. Navigate to the location where you saved the script
  10. Type the full path of the script to run it
    • For instance, if your script is in a Scripts folder on your C drive, your command will be C:Scriptsscript.ps1
    • Alternatively, you could simply navigate to the location of your script and use this command to run it: .script.ps1

If you can’t run the script and PowerShell returns an error, make sure you’ve enabled PowerShell to run custom scripts on your system, and that you’re running PowerShell as an administrator. Not doing any or both things that we’ve specified in our instructions will most likely result in an error and you won’t be able to run your script.

Remember that this is merely a basic script that is somewhat similar to the classic “Hello, world!” один. It puts a spin on it by interacting with you (i.e. asking what your name is) and letting you interact with it (i.e. typing your name which will be used to print a message for you). However, PowerShell is capable of running far more complex scripts, ranging from collecting data from an array of machines to intricate data management, advanced system configuration operations, and even creating backups of SQL databases in a blink of an eye.

How can I backup SQL databases with PowerShell?

We’re glad you asked. As we’ve mentioned countless times in our guide, there are almost endless possibilities when it comes to operations that PowerShell can help you perform. One of the most popular ones is backing up an SQL database without having to go great lengths or possess extraordinary database management capabilities. All you have to do is fire up an elevated instance of PowerShell (with Administrator privileges) and use the Backup-SqlDatabase command. However, things are a bit more complicated than that, but we’ll get to that in a few.

Backing up an SQL database isn’t as easy as simply copying files from your PC to a safe location and hope they stay safe for whenever you may need them to perform data restoration operations, but on the bright side, using PowerShell can make it look like a walk in the park. Although there are several ways to achieve this, using the command we’ve mentioned above is the fastest, simplest way to backup an SQL database.

Among the capabilities of the Backup-SqlDatabase command, it’s possible to find full database backups, database file backups, as well as transaction log backups, so you got the full package within a single command-line tool. By default, using this command will perform a full database backup, so you will need to specify if you want it to follow a certain set of rules by using the BackupFile parameter.

Note that some versions of PowerShell won’t feature this command by default, so you’ll either have to import it or install it. The good news is that installing the SQL module isn’t exactly rocket science and can be accomplished even by novices. Here’s what you’ll have to do if you can’t use the Backup-SqlDatabase command in your PowerShell session:

  1. Launch PowerShell with administrator rights
  2. Type the following command:
    • install-module sqlserver
  3. When asked to confirm your actions, type Y and hit Enter on your keyboard
  4. Confirm the untrusted repository once more by typing Y and EnterHow to install sqlserver in PowerShell
  5. Once the installation is complete, type the following command:
    • import-module sqlserver
  6. Try running the Backup-SqlDatabase command by typing it in the PowerShell command-line
    • If it works, you should see that PowerShell is asking you to supply values for some parameters
    • If it doesn’t work, make sure that you’ve set PowerShell’s permission to allow it to run custom scripts

1. Complete SQL database backup

  • Backup-SqlDatabase-ServerInstance"ComputerInstance"-Database"AddictiveTips"

The command we’ve exemplified above will generate a full database backup of a database called AddictiveTips and save it to the default backup location of the “ComputerInstance” server instance as ‘AddictiveTips.bak’.

2. Perform a location-based database backup

  • Set-Location"SQLSERVER:SQLComputerInstance"
  • PS SQLSERVER:SQLComputerInstance> Backup-SqlDatabase-Database"AddictiveTips"

The first command above will change your location to the active directory within the server instance on which the backup will occur. Essentially, this technique works almost like the full database backup we’ve exemplified above, but in this example, you get to change the working directory in order to locate the server instance where the backup occurs.

This operation will also create a full backup of a database called AddictiveTips and export it as an ‘AddictiveTips.bak’ file in the default location of the server instance you’re connected to.

3. Perform a transaction log backup

  • Backup-SqlDatabase-ServerInstance"ComputerInstance"-Database"AddictiveTips"-BackupAction Log

If you only need to backup the transaction log of a specific database, PowerShell can also help you do that through a single command you can input straight in its command-line interface. The command above will generate a backup copy of the ‘AddictiveTips’ database’s transaction log and export it to the default location of the ‘ComputerInstance’ server instance as a file named ‘AddictiveTips.trn’.

4. Create an encrypted SQL database backup

  • $EncryptionOption=New-SqlBackupEncryptionOption-Algorithm Aes256-EncryptorType ServerCertificate-EncryptorName"BackupCert"
  • Backup-SqlDatabase-ServerInstance"."-Database"AddictiveTips"-BackupFile"AddictiveTips.bak"-CompressionOption On-EncryptionOption $EncryptionOption

If you’re worried that your database backup may fall in the wrong hands, PowerShell can also help you create ready-encrypted backup files. Naturally, you’ll have to specify some parameters such as the encryption algorithm, the encryption type (i.e. certificate), server instance, database name, backup file, and whether or not you want the output to be compressed.

The example above will create a backup of a certain ‘AddictiveTips’ database, encrypt it with AES-256 encryption and a server certificate, compress it, and save the resulting ‘AddictiveTips.bak’ file on the server instance’s default backup location. This is quite important if you plan a migration and have no surefire way to transport all backup files without risking estranging any single one of them.

5. Perform a backup on all databases in a server instance

  • Get-ChildItem"SQLSERVER:SQLComputerInstanceDatabases"| Backup-SqlDatabase

Another tool that may come in handy is PowerShell’s ability to backup all the databases on a server instance at the same time. Regardless of their number, you just fire up PowerShell, type an adaptation of the command above, and wait for the backup process to come to an end. Note that since this will backup all the databases within the server instance, you may have to wait for a while, so be patient.

The command above will back up all the databases located on the ‘ComputerInstance’ server instance and export the resulting files to the default backup location on the same server instance. The names of the backup files will be generated automatically according to each one’s corresponding database followed by the BAK extension (i.e. .bak).

Although there are several more methods to perform SQL backup with PowerShell in various ways, we’ve only presented a few that we felt were more important. Note that the commands we used in our examples above are not likely to work on your environment in their current form, so you will have to adapt them to your current situation.

For instance, you will have to change the ‘ComputerInstance’ parameter to match your own server instance and modify the name of your database to reflect the name of your own database. Remember that you can always turn to the help command in PowerShell if you ever feel that the command you’re trying to run is confusing or doesn’t work as it should.

Must-know PowerShell commands

1. Get-Help

We can’t stress this enough, but the Get-Help command should be the first one you ever learn, as it can seriously get you out of numerous sticky situations where you’re not exactly sure if you’re using the correct command, or exactly what you can achieve with the command that you’re trying to deploy.

Now that you’ve installed the sqlserver module on your system, you can try the Get-Help command now and see how Backup-SqlDatabase works. Just type Get-Help Backup-SqlDatabase in the command-line of PowerShell and brush up your PowerShell SQL database backup skills.

PowerShell Get-Help command

Note that if you just recently installed the sqlserver module on your system, the Help database may still be outdated, and you may need to run an update on it so that it can catch up on any new scripts. By default, PowerShell will detect that the content you’re trying to reach is available online, but you can’t access it locally, and even offer to update the database for you. In this case, all you need to do is type Y when prompted and hit the Enter key on your keyboard.

However, if PowerShell just prompts you with an error stating that there’s no help manual available for the command you’re interested in, you can update it manually by typing Update-Help and hitting the Enter key on your keyboard. After the update process comes to an end, you should be able to check available help documentation for the command you’re interested in.

2. Get-Process

Get-Process is paramount if you want to discover more about the system you’re currently working on. To be more specific, although you might’ve guessed what this command does already by merely looking at it, Get-Process will provide you with a list of all the processes that are currently running on the system you’re working on.

By default, Get-Process will retrieve a list of every process running on the current system you’re working on, so you may need to append some extra parameters to this command if you want more specific information and narrow the list of results. Check out in the screenshots below what you get when you run the Get-Process command by itself versus how it looks if you’re more specific and format the results.

  • Get-Process

PowerShell Get-Process

  • Get-Process explorer | Format-List *

Formatted Get-Process command in PowerShell

The second command can be customized to display additional details about any active process on your system. You can replace explorer with svchost or Chrome or any other active process on your system that you’re interested in. As we’ve mentioned above, using Get-Processes by itself can help you with that (i.e. finding a list of all running processes).

3. Stop-Process

This command is pretty much self-explanatory,  as you may already have figured out that it can help you stop processes that are currently running on your system. The most common reason for doing that from PowerShell and not by using the Windows Task Manager is that sometimes processes can freeze and make GUI apps barely usable.

PowerShell users can easily identify a troublesome process using the Get-Process command we’ve previously explained, then using Stop-Process to terminate it, thus unclogging the system. Running Stop-Process by itself (without any additional parameter) in your PowerShell command-line interface will prompt you to input the ID of the process you’re trying to terminate.

However, you can also terminate a process by its name (if you know it) by appending the -Name parameter to the cmdlet, like in the example below:

  • Stop-Process-Name"explorer"

The command above will terminate the Explorer process, which can be useful especially if it freezes or crashes on you and refuses to load properly. Note that you’ll need to use quotes when specifying the name of the process you’re trying to terminate. If a process is stubborn and refuses to terminate (usually higher clearance processes do that), you can “convince” it by appending a -Force parameter to your command. Say, for instance, that you can’t terminate your Explorer process. In this case, you can simply type the command below:

  • Stop-Process-Force-Name"explorer"

Furthermore, it’s worth mentioning that using the -Force parameter in your Stop-Process command won’t ask for confirmation, as opposed to running the command without this option. If you want to find out more about this cmdlet, make sure to use the Get-Help command.

4. Get-Service

This command is among the essential command list for a good reason: it can provide you with a list of all the services that are currently installed on the system you’re working on, regardless of whether they’re running or not. As with many other cmdlets, you can customize Get-Service to provide you with more specific information, either regarding a certain service or even displaying a list of all running (or stopped) services on your machine.

You can go ahead and type Get-Service in your PowerShell command line. Doing so should provide you with a list of all the services available on your computer, as well as their display names and statuses. If you append an additional command to the original cmdlet, you can change the output, making it display only results that you’re interested in.

  • Get-Service"W*"

For instance, typing the command above should return a list of all services available on your computer that start with the letter ‘W’. However, you can go even further and customize your command in order to narrow the list of results even more.

  • Get-Service | Where-Object {$_.Status-eq “Running”}

The command above will let you see a list of all the available services on your computer that are also running at the time you’re running the cmdlet. Appending the “W*” as we did in the previous example will display a list of all the running services on your computer that start with the letter ‘W’, and the command should look like this:

  • Get-Service"W*"| Where-Object {$_.Status-eq"Running"}

Get-Service PowerShell command

5. Get-EventLog

Every responsible system administrator should know its way around working with event logs, seeing that these documents can provide you with useful knowledge about what happened on your system, at what time did it occur, and sometimes even what triggered that specific event.

Therefore, we can safely assume that PowerShell’s Get-EventLog command is not something you want to be missing from your toolbelt, especially if you plan on honing your system administration skills. If you know everything there is to know about event logs and their names, you can go ahead and type Get-EventLog directly in your PowerShell’s command line. Note that PowerShell will prompt you to input the name of the log you’re trying to view.

If you type the name of an empty event log (one with no entries), PowerShell will prompt you with an error and return you to the command-line interface. Therefore, it would be easier if you just used the command below, which will provide you with a list of Event Logs on your system, along with additional details about each one, such as the default overflow action, and the number of entries.

  • Get-EventLog-List

One of the most popular use cases for event logs is checking for errors, especially if they occurred silently, were shortly followed by a system crash, or lead to a BSOD, which we all know how cryptic can be. However, you will need to be more specific with the Get-EventLog cmdlet if you want to narrow down the list of results, which oftentimes can be huge.

  • Get-EventLog-LogName Security-EntryType Error

Typing the command above in your PowerShell’s command-line interface should provide you with a list of all the errors registered in your Security event log. Note that you can use the-List parameter to see all the log types in your system and replace Security in the command above with any other log type that you find on your list, just as long as it has more than zero entries.

If you want to learn more about using the Get-EventLog command in PowerShell, feel free to use the Get-Help command we’ve talked about in the first section of this subchapter.

6. ConvertTo-HTML

Sometimes when you’re using PowerShell, you may stumble upon certain information that you want to extract and keep for future reference, create reports, or simply import it from a different application. One of the most frequently-used ways to extract this data from PowerShell and export it to an external file on your computer is the ConvertTo-HTML command.

Using this command will help you build comprehensive reports that can help you analyze extracted information and insights in a more effective manner by providing you with HTML tables that you can customize later by adding custom styles and color-coded data. As with many other PowerShell commands, ConvertTo-HTML doesn’t work by itself, and you’ll need to pair it up with an additional command which it will use as an input (or a source of data).

For instance, if you’re trying to print a report consisting of every service that starts with the letter ‘W’ and is currently running on your computer, you can type the command below:

  • Get-Service"W*"| Where-Object {$_.Status-eq"Running"} | ConvertTo-HTML

This will provide you with an HTML code of the data you fed to the ConvertTo-HTML function, which you can simply copy directly from the PowerShell’s command-line interface, paste it in your favorite text editor and save it as an HTML file, which you can use to view the result in any web browser.

You can use ConvertTo-HTML with virtually any PowerShell command, as long as the command you’re using as a data source will generate output. You can try it with other cmdlets, such as Get-Process, Get-EventLog, or Get-Help. Note that aside from HTML conversions, the ConvertTo cmdlet can also be used to generate JSON, CSV, and XML files. You just have to replace HTML in the command syntax with the format you’re interested in.

7. Export-CSV

If you’re working with various objects that you feel may fit way better in a table, you can use PowerShell to convert the items you’re currently handling into a series of CSV (comma-separated value) strings and export the strings to a file in one swift motion through the Export-CSV cmdlet.

As with ConvertTo-HTML, Export-CSV needs an input that it can convert to CSV strings, as it can’t just work on its own. Thus, you will need to pair it with a command that can be used to generate data, such as the Get-Service or Get-Process ones we’ve explained earlier.

Essentially, Export-CSV does almost the same thing as the ConvertTo-HTML cmdlet we’ve discussed above, aside from one important aspect that shouldn’t be overlooked: this cmdlet actually generates a file and saves it on your computer, as opposed to the ConvertTo command, which only gives you the output and lets you create the file on your own.

Let’s assume, for instance, that you’d like to turn the list of services running on your computer into a CSV file so that you can process the file further with third-party software, or put it in a spreadsheet for further reference. All you’d have to do is type the Get-Service command followed by the Export-CSV one, and mention a location where you’d like the CSV file to be generated, like in the example below:

  • Get-Service | Export-CSV c:AddictiveTips.csv

The command above will fetch a list of all the services that are available on your computer, running or not, convert them into a series of CSV strings, and save the result as a CSV file named ‘AddictiveTips’ in the root of your C drive. You can then open the file in a third-party software solution, convert it into a fully-fledged table, or just store it for future usage.

PowerShell cheatsheet – CONCLUSION

Although there’s still a lot of people advocating for CMD, truth be told PowerShell is more versatile, way more powerful, but at the same time more complicated to work with than its traditional CMD counterpart. The sheer amount of features, combined with the fact that you can create automation scripts in PowerShell and perform complicated system management operations just leaves CMD in a cone of shadow.

If you’re just starting to discover PowerShell and you’re struggling to figure out what each command does, how to pipeline several commands, or how to create and run simple PowerShell scripts on your own, our guide is a great starting point. We’ve taken our time to explain some of the most important commands you should know about in PowerShell, created a few short tutorials, and also included a list of basic PowerShell commands, their aliases, and short descriptions for each item, just to simplify your PowerShell discovery journey.

Like this post? Please share to your friends:
  • Комбинации клавиш windows 7 для всего
  • Команды для powershell windows 10 на удаление программ
  • Комбинация клавиш для копирования экрана на компьютере windows
  • Комбинации клавиш windows 10 для приколов
  • Команды для freedos чтобы установить windows 10