Руководство по Windows PowerShell для начинающих

Windows PowerShell и командная строка Windows 10 — основы настройки и управления.

Достаточно опытные пользователи Windows, конечно же помнят командную строку MS-DOS, хотя возможно эти воспоминания не так приятны. Но даже после 20 летних попыток провалить свою командную строку, Windows 10 по-прежнему вознаграждает тех, кто понимает преимущества использования командной строки для некоторых общих задач.

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

Удобная командная строка Windows 10

Командный процессор Windows – Cmd.exe, внешне похож на своего древнего предка, MS-DOS. На 64-битной системе Windows 10, Cmd.exe родной процесс Windows 64-бит. Самый простой способ открыть командную строку – меню “Быстрые ссылки” (кликнете правой кнопкой мыши “Пуск” или воспользуйтесь сочетанием клавиш Windows + X). Это меню имеет два параметры командной строки. Один, работает под вашей учётной записью пользователя и второй, запускается с правами администратора.

А также можно ввести в поле поиска Cmd и затем, в списке результатов, щёлкнуть “Командная строка“. Или кликнуть на элементе правой кнопкой мыши и затем, в контекстном меню, выбрать “Открыть как администратор”, чтобы открыть окно командной строки с повышенными привилегиями. Видимые различия между двумя этими способами – появившийся в строке заголовка сеанса командной строки, префикс администратора. Эти изменения вы можете увидеть на рисунке ниже, где открыты настройки свойств для окна командной строки. Это можно сделать щёлкнув правой кнопкой мыши на значке в левой части строки заголовка, а затем выбрав “Свойства”.

komandnaya_stroka_windows10.jpg

Для изменения цветовой схемы командной строки с ретро зелёно-чёрной комбинации, используйте вкладку цвета. (Посмотрите на даты файла в окне предварительного просмотра!)

Как перейти из проводника в командную строку двумя кликами

Вы находитесь в проводнике. И хотите открыть окно командной строки в текущей папке. К счастью, для этого есть ярлык. Удерживая нажатой клавишу Shift, щёлкните правой кнопкой мыши на любом свободном месте в папке (убедитесь, что не выбраны файлы), а затем в контекстном меню выберите команду «Открыть окно команд».

Если вы не знаете, что можно сделать в окне командной строки Windows 10, введите «help». Появится список из 84 команд с кратким описанием для каждой из них. Хотите узнать полный синтаксис для команды? В окне командной строки введите имя команды и за ней переключатель /?.

Командная строка полезна для некоторых задач управления файлами, а её синтаксис не сильно изменился со времён MS-DOS. Например, с помощью подстановочных знаков, использовав команду Ren * .htm * .html, вы можете изменить расширение группы файлов в папке. Эта работа почти невозможна в Проводнике.

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

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

Systeminfo.jpg

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

Driverquery. Если вам интересно, какие драйверы установлены в данной системе (локальной или удалённой), эта команда вам в помощь. Используйте / FO CSV чтобы указать, что вы хотите выводить данные в формате с разделителями-запятыми (CSV). Перенаправьте вывод в файл, и вы можете открыть его для более детального анализа в Excel.

Icacls. Эта странно названная команда позволяет управлять разрешениями (списки управления доступом, или ACL) для файлов и папок. Если вы не можете удалить или переименовать файл или папку из-за разрешения, эта команда вам поможет.

Shutdown. Иногда в меню “Питание” не содержатся действительно нужные параметры. Эта команда, с разными переключателями (/r для перезагрузки и /s для выключения), может охватить нужные сценарии. Используя параметр /t , можно указать время ожидания (в секундах) перед выполнением команды. (Значение по умолчанию составляет 30 секунд.) Если у вас есть несколько задач и вы хотите, чтобы ваш компьютер перезагрузился через 15 минут, используйте команду shutdown /r /t 900. Если передумаете, используйте shutdown /a для отмены запланированного выключения или перезагрузки.

Sc. Этой командой можно запросить, начать, приостановить, остановить и настроить службы с помощью диспетчера управления службами. Её синтаксис сложен, но возможности чрезвычайно мощные.

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

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

Windows PowerShell

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

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

Если вы не администратор системы, Windows PowerShell может пугать. Но некоторые задачи, включая управление Microsoft Azure и Office 365, для команд Windows PowerShell подходят идеально. Давайте просто познакомимся с основами Windows PowerShell.

Windows PowerShell включает собственную среду командной строки, с отличительным синим фоном, который устанавливается отдельно от командной строки Windows 10. Как показано на рисунке ниже, одно из первых, что нужно сделать любому новичку в Windows PowerShell, это вывести командлет Get-Help, включающую ссылку на онлайн помощь и подробные инструкции для использования командлета Update-Help.

Используйте командлет Get-Help, чтобы начать работу в интерактивной среде командной строки Windows PowerShell.

Добавьте слово в конце Get-Help и вы сможете найти командлеты, которые включают в себя этот термин. Если вы знаете о существовании командлета для управления BitLocker, но точно его не помните, попробуйте Bitlocker Get-Help для отображения этого списка. Используя синтаксис Get-Help <cmdlet>-онлайн</cmdlet>, вы можете перейти непосредственно в онлайн справочник и получить информацию о определённом командлете.

Если вы не уверены, в точном имени командлета, можно нажать клавишу Tab и использовать IntelliSense. Например, введите get-p и нажмите клавишу Tab, чтобы увидеть первый соответствующий командлет, Get-Package. Держите клавишу Tab нажатой, и прокрутите весь цикл: Get-PackageProvider, Get-PackageSource и так далее.

Если вам нужна дополнительная помощь, подумайте об использовании интегрированных сценариев (ISE) среды Windows PowerShell, которые предлагают графический интерфейс и много подсказок при наборе командлетов. Рисунок ниже показывает Windows PowerShell ISE с открытым справа окном команд и командлетом Get-MpComputerStatus из модуля Defender. Здесь не нужно вводить командлет. Достаточно просто выбрать его из списка и нажать “Выполнить”.

С помощью Windows PowerShell ISE, можно закрепить окно команд вместе с оболочкой так, чтобы было можно просмотреть командлеты в модуле и нажать кнопку “выполнить” или “вставить”.

Если вы предпочитаете плавающее окно вместо состыкованной панели, на панели инструментов нажмите кнопку “Показать окно команд” (вторая справа). Как показано на рисунке, здесь вы можете увидеть полный выбор модулей.

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

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

PowerShell — это объектно-ориентированный программный движок и скриптовый язык с интерфейсом командной строки, предоставляющий широкие возможности для конфигурирования операционных систем семейства MS Windows. Он предлагает как чисто консольный интерфейс, так и полноценную среду разработки PowerShell ISE (Integrated Scripting Environment, встроенное скриптовое окружение) для скриптов.

Для запуска интерфейса командной строки введите powershell в меню «Выполнить» (WinKey + R). PowerShell ISE запускается с помощью команды «PowerShell ISE» в том же меню. ISE более предпочтительно, так как предоставляет более широкие возможности разработчику благодаря подсветке синтаксиса, функции автозаполнения кода и другим особенностям, присущим многим «большим» IDE.

Среда разработки Windows PowerShell ISE

Написание и запуск скриптов

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

Также существуют системные политики, ограничивающие выполнение скриптов. Можно проверить текущие параметры политики, введя команду Get-ExecutionPolicy. Результатом будет одно из следующих значений:

  • Restricted — выполнение скриптов запрещено. Стандартная конфигурация;
  • AllSigned — можно запускать скрипты, подписанные доверенным разработчиком; перед запуском скрипта PowerShell запросит у вас подтверждение;
  • RemoteSigned — можно запускать собственные скрипты или те, что подписаны доверенным разработчиком;
  • Unrestricted — можно запускать любые скрипты.

Для начала работы необходимо изменить настройку политики запуска на RemoteSigned, используя команду Set-ExecutionPolicy:

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

Командлеты

Командлеты — это команды с предопределённой функцией, подобные условным операторам в языках программирования. У них есть несколько ключевых особенностей:

  • существуют системные, пользовательские и опциональные командлеты;
  • результатом выполнения командлета будет объект или массив объектов;
  • командлеты могут обрабатывать данные и передавать их другим командлетам с помощью конвейеров;
  • командлеты нечувствительны к регистру, так что нет никакой разницы между Get-ADUser, get-aduser и gEt-AdUsEr;
  • в качестве разделителя используется символ ; .

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

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

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

Результат выполнения команды Get-Help-Category

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

Параметры

У каждого командлета есть несколько параметров, определяющих его работу. PowerShell ISE автоматически предлагает все доступные параметры с отображением их типа. Например, Get-Service-NameW* выводит список служб, у которых имя начинается с W. Если вы забыли, какие параметры у введённого командлета, воспользуйтесь Get-Member.

Чемпионат Cup IT

8–30 марта, Онлайн, Беcплатно

tproger.ruСобытия и курсы на tproger.ru

Например, Get-Process | Get-Member:

Список параметров командлета Get-Process

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

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

Некоторые командлеты также могут вызываться с помощью алиасов. Например, вместо Get-Help можно просто написать Help — эта команда также вызовет встроенное руководство по PowerShell.

При написании больших скриптов или коллективной разработке можно пользоваться комментариями. Каждый комментарий начинается с символа #, а блок комментариев ограничивается комбинациями символов <# и #> в начале и в конце соответственно.

Конвейер

PowerShell позволяет осуществлять обмен данными между командлетами с помощью конвейера. Например:

  • GetService | SortObject -property Status — сортировка запущенных служб по статусу;
  • “Hello World!” | Out-File C:pstest.txt — запись текста в файл.

Можно использовать несколько конвейеров. Например, следующий скрипт выводит список имён всех служб за исключением остановленных:

Get-Service | WHERE {$_.status -eq “Running”} | SELECT displayname

Заключение

Это руководство для тех, кто изучает PowerShell с нуля, поэтому здесь раскрыты только базовые понятия и приёмы. После его прочтения у вас должно появиться представление о том, что собой представляет этот инструмент. Также мы рассмотрели варианты изменения политики выполнения скриптов, что такое командлет, как они обмениваются данными с помощью конвейера и как получить свойства нужного объекта. Помните, что в случае затруднений можно воспользоваться командлетом Get-Help — это одна из самых важных команд для начинающих изучать PowerShell.

Если пользуетесь не только Windows, но и Linux, посмотрите статью про команды терминала Linux для начинающих. В ней рассказывается про работу с процессами и файлами, навигацию, каналы, xargs, awk и grep.

Перевод статьи «Windows PowerShell Scripting Tutorial for Beginners»

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

Прежде чем мы начнем, необходимо подчеркнуть, что некоторые из этих командлетов могут переключать определенные параметры или конфигурацию на вашем компьютере. Командлет – это сценарий 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" 

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

Используемые источники:

  • https://datbaze.ru/windows/windows-powershell-i-komandnaya-stroka-windows-10.html
  • https://tproger.ru/translations/powershell-tutorial/
  • https://techarks.ru/windows/powershell/10-osnovnyh-komand-powershell-kotorye-dolzhen-znat-kazhdyj-polzovatel-windows-10/

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий