Список команд для windows powershell

PowerShell PowerShell

Windows PowerShell — это оболочка командной строки на основе задач и язык сценариев, разработанный специально для администрирования системы. Windows PowerShell is a task-based command-line shell and scripting language designed especially for system administration. Созданная на основе .NET Framework служба Windows PowerShell помогает ИТ-специалистам и опытным пользователям в управлении и автоматизации администрирования операционной системы Windows, а также приложений, работающих под управлением Windows. Built on the .NET Framework, Windows PowerShell helps IT professionals and power users control and automate the administration of the Windows operating system and applications that run on Windows.

Использование PowerShell.exe Using PowerShell.exe

Программа командной строки PowerShell.exe запускает сеанс Windows PowerShell в окне командной строки. The PowerShell.exe command-line tool starts a Windows PowerShell session in a Command Prompt window. При использовании PowerShell.exe можно использовать его необязательные параметры для настройки сеанса. When you use PowerShell.exe, you can use its optional parameters to customize the session. Например, можно запустить сеанс, в котором используется конкретная политика выполнения или одна из которых исключает профиль Windows PowerShell. For example, you can start a session that uses a particular execution policy or one that excludes a Windows PowerShell profile. В противном случае сеанс будет таким же, как и любой сеанс, запущенный в консоли Windows PowerShell. Otherwise, the session is the same as any session that is started in the Windows PowerShell console.

Чтобы запустить сеанс Windows PowerShell в окне командной строки, введите команду PowerShell . To start a Windows PowerShell session in a Command Prompt window, type PowerShell . В командную строку добавляется префикс PS , указывающий, что вы используете сеанс Windows PowerShell. A PS prefix is added to the command prompt to indicate that you are in a Windows PowerShell session.

Чтобы запустить сеанс с определенной политикой выполнения, используйте параметр ExecutionPolicy и введите: To start a session with a particular execution policy, use the ExecutionPolicy parameter, and type:

Чтобы запустить сеанс Windows PowerShell без профилей Windows PowerShell, используйте параметр- Profile и введите: To start a Windows PowerShell session without your Windows PowerShell profiles, use the NoProfile parameter, and type:

Чтобы начать сеанс, используйте параметр ExecutionPolicy и введите: To start a session , use the ExecutionPolicy parameter, and type:

Чтобы просмотреть файл справки PowerShell.exe, введите: To see the PowerShell.exe help file, type:

Чтобы завершить сеанс Windows PowerShell в окне командной строки, введите команду exit . To end a Windows PowerShell session in a Command Prompt window, type exit . Типичная Командная строка возвращает. The typical command prompt returns.

Комментарии Remarks

Полный список параметров командной строки PowerShell.exe см. в разделе about_PowerShell.Exe. For a complete list of the PowerShell.exe command-line parameters, see about_PowerShell.Exe.

Дополнительные сведения о других способах запуска Windows PowerShell см. в разделе Запуск Windows PowerShell. For information about other ways to start Windows PowerShell, see Starting Windows PowerShell.

Windows PowerShell выполняется в варианте установки Server Core в операционных системах Windows Server. Windows PowerShell runs on the Server Core installation option of Windows Server operating systems. Тем не менее функции, требующие графического пользовательского интерфейса, такие как Интегрированная среда сценариев Windows PowerShell (ISE), и командлеты Out-GridView и for -Command , не выполняются в установках Server Core. However, features that require a graphic user interface, such as the Windows PowerShell Integrated Scripting Environment (ISE), and the Out-GridView and Show-Command cmdlets, don’t run on Server Core installations.

Powershell скрипты

Доброго времени суток дорогие читатели. В данной статье мы познакомимся с основами 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.

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

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

Командлеты

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

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

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

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

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

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

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

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

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

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

Алиасы

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

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

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

Конвейер

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

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

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

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

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

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

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

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

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

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

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

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

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

Скрипты Powershell

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

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

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

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

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

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

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

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

Читайте также:  Asrock uefi установка windows с диска

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

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

Глава 2. Справочная система Chapter 2 — The Help System

Двум группам ИТ-специалистов предложили выполнить письменный тест без доступа к компьютеру на определение уровня их квалификации с помощью PowerShell. Two groups of IT pros were given a written test without access to a computer to determine their skill level with PowerShell. Начинающие пользователи PowerShell были определены в одну группу, опытные пользователи — в другую. PowerShell beginners were placed in one group and experts in another. На основе полученных результатов теста уровень квалификации между двумя группами почти не отличался. Based on the results of the test, there didn’t seem to be much difference in the skill level between the two groups. Обе группы получили второй тест, подобный первому. Both groups were given a second test similar to the first one. На этот раз пользователям был предоставлен доступ к компьютеру с помощью PowerShell без доступа к Интернету. This time they were given access to a computer with PowerShell that didn’t have access to the internet. Результаты второго теста показали большое различие в уровне квалификации между двумя группами. The results of the second test showed a huge difference in the skill level between the two groups. Опытные пользователи не всегда знают ответы, но они знают, как их найти. Experts don’t always know the answers, but they know how to figure out the answers.

Чем отличались результаты первого и второго тестов между двумя группами? What was the difference in the results of the first and second test between these two groups?

Результаты тестов были разными потому, что опытные пользователи не запоминают, как использовать тысячи команд в PowerShell, The differences observed in these two tests were because experts don’t memorize how to use thousands of commands in PowerShell. а эффективно умеют пользоваться справочной системой PowerShell. They learn how to use the help system within PowerShell extremely well. Это позволяет им при необходимости находить нужные команды и использовать их. This allows them to find the necessary commands when needed and how to use those commands once they’ve found them.

Я слышал, как автор PowerShell Джеффри Сновер рассказывал подобную историю несколько раз. I’ve heard Jeffrey Snover, the inventor of PowerShell, tell a similar story a number of times.

Овладение справочной системой — важное условие для успешной работы с PowerShell. Mastering the help system is the key to being successful with PowerShell.

Возможность обнаружения Discoverability

Скомпилированные команды в PowerShell называются командлетами. Compiled commands in PowerShell are called cmdlets. В оригинале слово cmdlet произносится полностью: «командлет». Cmdlet is pronounced «command-let» (not CMD-let). Имена командлетов соответствуют форме отдельных команд «глагол — существительное», что позволяет легко их находить. Cmdlets names have the form of singular «Verb-Noun» commands to make them easily discoverable. Например, командлет Get-Process определяет выполняемые процессы, а командлет Get-Service получает список служб и их состояний. For example, the cmdlet for determining what processes are running is Get-Process and the cmdlet for retrieving a list of services and their statuses is Get-Service . В PowerShell существуют другие типы команд, например псевдонимы и функции, которые будут рассмотрены далее в этом пособии. There are other types of commands in PowerShell such as aliases and functions that will be covered later in this book. Команда PowerShell — это универсальное понятие, которое часто используется для ссылки на любой тип команды в PowerShell, независимо от того, является ли он командлетом, функцией или псевдонимом. The term PowerShell command is a generic term that’s often used to refer to any type of command in PowerShell, regardless of whether or not it’s a cmdlet, function, or alias.

Три основных командлета в PowerShell The Three Core Cmdlets in PowerShell

  • Get-Command
  • Get-Help
  • Get-Member (рассматривается в главе 3) Get-Member (covered in chapter 3)

Вопрос, который мне часто задают: как вы различаете команды в PowerShell? One question I’m often asked is how do you figure out what the commands are in PowerShell? Для определения команд можно использовать командлеты Get-Command и Get-Help . Both Get-Command and Get-Help can be used to determine the commands.

Get-Help Get-Help

Get-Help — это многоцелевая команда. Get-Help is a multipurpose command. Get-Help помогает научиться использовать найденные команды. Get-Help helps you learn how to use commands once you find them. Get-Help также можно использовать для поиска команд, но, по сравнению с Get-Command , другим, менее прямым способом. Get-Help can also be used to help locate commands, but in a different and more indirect way when compared to Get-Command .

Если для поиска команд используется Get-Help , сначала выполняется поиск совпадений с подстановочными знаками имен команд на основе предоставленных входных данных. When Get-Help is used to locate commands, it first searches for wildcard matches of command names based on the provided input. Если командлет не находит совпадение, выполняется поиск по самим разделам справки, и, если совпадений не найдено, ошибка возвращается. If it doesn’t find a match, it searches through the help topics themselves, and if no match is found an error is returned. Вопреки распространенному мнению, Get-Help можно использовать для поиска команд, не содержащих разделов справки. Contrary to popular belief, Get-Help can be used to find commands that don’t have help topics.

Первое, что нужно знать о справочной системе PowerShell, — как использовать командлет Get-Help . The first thing you need to know about the help system in PowerShell is how to use the Get-Help cmdlet. Следующая команда позволяет вывести раздел справки для Get-Help . The following command is used to display the help topic for Get-Help .

Начиная с PowerShell версии 3, справка PowerShell не поставляется вместе с операционной системой. Beginning with PowerShell version 3, PowerShell help doesn’t ship with the operating system. При первом запуске Get-Help для команды выводится предыдущее сообщение. The first time Get-Help is run for a command, the previous message is displayed. Если вместо командлета Get-Help используется функция help или псевдоним man , этот запрос не появится. If the help function or man alias is used instead of the Get-Help cmdlet, you don’t receive this prompt.

При согласии нажатием клавиши Y запускается командлет Update-Help , который по умолчанию требует доступа к Интернету. Answering yes by pressing Y runs the Update-Help cmdlet, which requires internet access by default. Y можно указать в верхнем или нижнем регистре. Y can be specified in either upper or lower case.

После загрузки справки и завершения обновления для указанной команды будет возвращен раздел справки. Once the help is downloaded and the update is complete, the help topic is returned for the specified command:

Попробуйте выполнить этот пример на компьютере, просмотрите выходные данные и запишите, как группируются сведения. Take a moment to run that example on your computer, review the output, and take note of how the information is grouped:

  • NAME NAME
  • Краткий обзор SYNOPSIS
  • SYNTAX SYNTAX
  • DESCRIPTION DESCRIPTION
  • Связанные ссылки RELATED LINKS
  • ПРИМЕЧАНИЯ REMARKS

Как вы видите, разделы справки могут содержать большой объем информации, причем это даже не весь раздел справки. As you can see, help topics can contain an enormous amount of information and this isn’t even the entire help topic.

Хотя это и не относится к PowerShell, параметр — это способ предоставления команде входных данных. While not specific to PowerShell, a parameter is a way to provide input to a command. Get-Help имеет много параметров, которые можно указать для возврата всего раздела справки или его подмножества. Get-Help has many parameters that can be specified in order to return the entire help topic or a subset of it.

В разделе синтаксиса раздела справки, который отображается в предыдущем наборе результатов, приводится список всех параметров Get-Help . The syntax section of the help topic shown in the previous set of results lists all of the parameters for Get-Help . На первый взгляд кажется, что одинаковые параметры приведены шесть раз по-разному. At first glance, it appears the same parameters are listed six different times. Каждый из этих блоков раздела синтаксиса представляет собой набор параметров. Each of those different blocks in the syntax section is a parameter set. Это означает, что командлет Get-Help имеет шесть разных наборов параметров. This means the Get-Help cmdlet has six different parameter sets. Если посмотреть более внимательно, можно заметить, что в каждом наборе по крайней мере один параметр отличается. If you take a closer look, you’ll notice that at least one parameter is different in each of the parameter sets.

Эти наборы параметров являются взаимоисключающими. Parameter sets are mutually exclusive. После использования уникального параметра, который существует только в одном из наборов, можно использовать только те параметры, которые содержатся в этом наборе. Once a unique parameter that only exists in one of the parameter sets is used, only parameters contained within that parameter set can be used. Например, не удалось одновременно указать параметры Full и Detailed, так как они находятся в разных наборах. For example, both the Full and Detailed parameters couldn’t be specified at the same time because they are in different parameter sets.

Каждый из следующих параметров находится в разных наборах. Each of the following parameters are in different parameter sets:

  • Полное Full
  • Подробно Detailed
  • Примеры Examples
  • Справка в Интернете Online
  • Параметр Parameter
  • ShowWindow ShowWindow

Любые непонятные синтаксические конструкции в разделе синтаксиса, например квадратные и угловые скобки, имеют определенное значение и будут рассматриваться в приложении А к этому пособию. All of the cryptic syntax such as square and angle brackets in the syntax section means something but will be covered in Appendix A of this book. При всей важности непонятных синтаксических конструкций их обычно трудно запоминать тем, кто не работал с PowerShell и не использует их ежедневно. While important, learning the cryptic syntax is often difficult to retain for someone who is new to PowerShell and may not use it everyday.

Дополнительные сведения о том, как распознать непонятные синтаксические конструкции, см. в Приложение А. For more information to better understand the cryptic syntax, see Appendix A.

Для начинающих пользователей существует простой способ вычислять аналогичную информацию, кроме обычного языка. For beginners, there’s an easier way to figure out the same information except in plain language.

При указании параметра Full в значении Get-Help возвращается весь раздел справки. When the Full parameter of Get-Help is specified, the entire help topic is returned.

Читайте также:  Jumping out the windows

Попробуйте выполнить этот пример на компьютере, просмотрите выходные данные и запишите, как группируются сведения. Take a moment to run that example on your computer, review the output, and take note of how the information is grouped:

  • NAME NAME
  • Краткий обзор SYNOPSIS
  • SYNTAX SYNTAX
  • DESCRIPTION DESCRIPTION
  • PARAMETERS PARAMETERS
  • Входные данные INPUTS
  • Выходные данные OUTPUTS
  • ПРИМЕЧАНИЯ NOTES
  • Примеры EXAMPLES
  • Связанные ссылки RELATED LINKS

Заметьте, что использование параметра Full привело к возврату нескольких дополнительных разделов, один из которых представляет собой раздел ПАРАМЕТРОВ, содержащий больше данных, чем раздел СИНТАКСИСА с непонятными конструкциями. Notice that using the Full parameter returned several additional sections, one of which is the PARAMETERS section that provides more information than the cryptic SYNTAX section.

Параметр Full является параметром-переключателем, The Full parameter is a switch parameter. то есть тем, который не требует указывать значение. A parameter that doesn’t require a value is called a switch parameter. Если параметр-переключатель указывается, его значение будет верным, а если не указывается, значение будет неверным. When a switch parameter is specified, its value is true and when it’s not, its value is false.

Работая над этой главой в консоли PowerShell, вы заметили, что предыдущая команда для вывода полного раздела справки для Get-Help показалась на экране очень быстро и ее нельзя было прочитать. If you’ve been working through this chapter in the PowerShell console, you noticed that the previous command to display the full help topic for Get-Help flew by on the screen without giving you a chance to read it. Для этого существует более эффективный способ. There’s a better way.

Help — это функция, передающая Get-Help функции с именем more , которая является оболочкой для исполняемого файла more.com в Windows. Help is a function that pipes Get-Help to a function named more , which is a wrapper for the more.com executable file in Windows. В консоли PowerShell командлет help открывает одну страницу справки за один раз. In the PowerShell console, help provides one page of help at a time. В интегрированной среде сценариев этот командлет работает так же, как Get-Help . In the ISE, it works the same way as Get-Help . Я рекомендую использовать функцию help вместо командлета Get-Help , так как она удобнее и меньше по длине. My recommendation is to use the help function instead of the Get-Help cmdlet since it provides a better experience and it’s less to type.

При этом вводить меньше символов не всегда оказывается полезным. Less typing isn’t always a good thing, however. Сохраняя команды в виде сценария или отправляя их другим пользователям, обязательно используйте полные имена командлетов и параметров. If you’re going to save your commands as a script or share them with someone else, be sure to use full cmdlet and parameter names. Полные имена являются самодокументируемыми, поэтому их легче распознавать. The full names are self-documenting, which makes them easier to understand. Всегда помните о том, кому придется читать и распознавать ваши команды. Think about the next person that has to read and understand your commands. Этим человеком можете оказаться вы. It could be you. Ваши сотрудники и вы сами будете за это благодарны. Your coworkers and future self will thank you.

Попробуйте выполнить следующие команды в консоли PowerShell на компьютере с Windows 10 в лабораторной среде. Try running the following commands in the PowerShell console on your Windows 10 lab environment computer.

Появились ли различия в выходных данных приведенных выше команд после их запуска на компьютере с Windows 10 в лабораторной среде? Did you notice any differences in the output from the previously listed commands when you ran them on your Windows 10 lab environment computer?

Кроме последних двух параметров, которые возвращают результаты по одной странице за один раз, эти выходные данные ничем не отличаются. There aren’t any differences other than the last two options return the results one page at a time. ПРОБЕЛ используется для вывода следующей страницы содержимого с помощью функции Help , а Ctrl + C отменяет команды, выполняемые в консоли PowerShell. The spacebar is used to display the next page of content when using the Help function and Ctrl + C cancels commands that are running in the PowerShell console.

В первом примере используется командлет Get-Help , во втором — функция Help , в третьем параметр Name исключается с помощью функции Help . The first example uses the Get-Help cmdlet, the second uses the Help function, and the third omits the Name parameter when using the Help function. Name является позиционным параметром и используется в этом примере позиционно. Name is a positional parameter and it’s being used positionally in that example. То есть это значение можно указать без имени параметра, если само это значение указано в правильном положении. This means the value can be specified without specifying the parameter name, as long as the value itself is specified in the correct position. Как узнать, в каком положении указывать значение? How did I know what position to specify the value in? Свериться со справкой, как показано в следующем примере. By reading the help as shown in the following example.

Заметьте, что в предыдущем примере параметр Parameter использовался вместе с функцией справки только для того, чтобы вернуть данные из раздела справки для параметра Name. Notice that in the previous example, the Parameter parameter was used with the Help function to only return information from the help topic for the Name parameter. Так намного точнее, чем пытаться вручную проверять то, что напоминает раздел справки в сто страниц. This is much more concise than trying to manually sift through what sometimes seems like a hundred page help topic.

На основе полученных результатов вы увидите, что параметр Name является позиционным и его нужно указать в нулевом положении (первое положение), если он используется позиционно. Based on those results, you can see that the Name parameter is positional and must be specified in position zero (the first position) when used positionally. Если указывается имя параметра, порядок указания параметров не имеет значения. The order that parameters are specified in doesn’t matter if the parameter name is specified.

Еще одна важная деталь: в параметре Name значение типа данных должно быть указано одной строкой, которая обозначается . One other important piece of information is that the Name parameter expects the datatype for its value to be a single string, which is denoted by . Если допускается несколько строк, тип данных будет приведен как . If it accepted multiple strings, the datatype would be listed as .

Может быть так, что вам не нужно выводить для команды весь раздел справки. Sometimes you simply don’t want to display the entire help topic for a command. Помимо параметра Full, существуют другие параметры, которые можно указать с помощью Get-Help или Help . There are a number of other parameters besides Full that can be specified with Get-Help or Help . Попробуйте выполнить следующие команды на компьютере с Windows 10 в лабораторной среде. Try running the following commands on your Windows 10 lab environment computer:

Как правило, вместе с help я использую параметр Full или Online. I typically use help with the Full or Online parameter. Если мне нужно посмотреть только примеры, я использую параметр Examples, а если мне нужно получить только конкретный параметр, я использую параметр Parameter. If I’m only interested in the examples, I’ll use the Examples parameter and if I’m only interested in a specific parameter, I’ll use the Parameter parameter. Параметр ShowWindow открывает раздел справки в отдельном окне с возможностью поиска, которое можно открыть на другом мониторе, если их у вас несколько. The ShowWindow parameter opens the help topic in a separate searchable window that can be placed on a different monitor if you have multiple monitors. Я стараюсь не использовать параметр ShowWindow, потому что он содержит всем известную ошибку, при которой не выводится весь раздел справки. I’ve avoided the ShowWindow parameter because there’s a known bug where it doesn’t display the entire help topic.

Если нужно открыть справку в отдельном окне, рекомендую использовать параметры Online или Full и передать результаты в Out-GridView , как показано в следующем примере. If you want help in a separate window, my recommendation is to either use the Online parameter or use the Full parameter and pipe the results to Out-GridView , as shown in the following example.

Для использования командлета Out-GridView и параметра ShowWindow командлета Get-Help требуется операционная система с графическим интерфейсом пользователя (GUI). Both the Out-GridView cmdlet and the ShowWindow parameter of the Get-Help cmdlet require an operating system with a GUI (Graphical User Interface). Они выводят сообщение об ошибке при попытке использовать любой из них в Windows Server, который установлен с помощью варианта установки Server Core (без GUI). They will generate an error message if you attempt to use either of them on Windows Server that’s been installed using the server core (no-GUI) installation option.

Чтобы использовать Get-Help для поиска команд, используйте подстановочный знак звездочки ( * ) вместе с параметром Name. To use Get-Help to find commands, use the asterisk ( * ) wildcard character with the Name parameter. Укажите термин, в котором выполняется поиск команд, в качестве значения параметра Name, как показано в следующем примере. Specify a term that you’re searching for commands on as the value for the Name parameter as shown in the following example.

В предыдущем примере подстановочные знаки * добавлять необязательно, без них результат будет одинаковым. In the previous example, the * wildcard characters are not required and omitting them produces the same result. Get-Help автоматически добавляет подстановочные знаки в фоновом режиме. Get-Help automatically adds the wildcard characters behind the scenes.

Предыдущая команда выдает те же результаты, что и при указании подстановочного знака * при каждом завершении процесса. The previous command produces the same results as specifying the * wildcard character on each end of process.

Я предпочитаю добавлять подстановочные знаки, так как этот вариант всегда работает стабильно. I prefer to add them since that’s the option that always works consistently. В остальных случаях именно эти знаки, а не какие-либо другие необходимо использовать в определенных сценариях. Otherwise, they are required in certain scenarios and not others. Если добавить подстановочный знак в середину значения, он больше не будет к нему автоматически добавляться в фоновом режиме. As soon as you add a wildcard character in the middle of the value, they’re no longer automatically added behind the scenes to the value you specified.

Эта команда не возвращает результаты, если подстановочный знак * добавляется в начало, конец или в начало и конец командлета pr*cess . No results are returned by that command unless the * wildcard character is added to the beginning, end, or both the beginning and end of pr*cess .

Читайте также:  Как скрыть строку панели задач windows 10

Если указанное значение начинается с тире, создается ошибка, так как PowerShell интерпретирует его как имя параметра, а имени параметра для командлета Get-Help не существует. If the value you specified begins with a dash, then an error is generated because PowerShell interprets it as a parameter name and no such parameter name exists for the Get-Help cmdlet.

При попытке найти команды, которые заканчиваются на -process , нужно в начало значения добавить только подстановочный знак * . If what you’re attempting to look for are commands that end with -process , you only need to add the * wildcard character to the beginning of the value.

При поиске команд PowerShell с помощью Get-Help нужно указывать менее точные параметры поиска. When searching for PowerShell commands with Get-Help , you want to be a little more vague instead of being too specific with what you’re searching for.

При предыдущем поиске командлета process были найдены только те команды, которые содержали в имени process и возвращали только эти результаты. Searching for process earlier found only commands that contained process in the name of the command and returned only those results. Если командлет Get-Help будет использоваться для поиска processes , он не найдет совпадений для имен команд, поэтому будет выполнять поиск каждого раздела справки в PowerShell в системе и возвращать все найденные совпадения. When Get-Help is used to search for processes , it doesn’t find any matches for command names, so it performs a search of every help topic in PowerShell on your system and returns any matches it finds. Это приведет к возврату большого количества результатов. This causes it to return an enormous number of results.

С помощью Help для поиска process вернулось 10 результатов, а для поиска processes — 68. Using Help to search for process returned 10 results and using it to search for processes returned 68 results. Если найден только один результат, вместо списка команд будет отображаться раздел справки. If only one result is found, the help topic itself will be displayed instead of a list of commands.

Теперь давайте развеем миф о том, что Help в PowerShell может находить только команды, содержащие разделы справки. Now to debunk the myth that Help in PowerShell can only find commands that have help topics.

Заметьте, в предыдущем примере more не содержит раздела справки, но системе Help в PowerShell удалось ее найти. Notice in the previous example that more doesn’t have a help topic, yet the Help system in PowerShell was able to find it. Система нашла только одно совпадение и вернула основные сведения о синтаксисе, которые будут отображаться, если команда не содержит раздела справки. It only found one match and returned the basic syntax information that you’ll see when a command doesn’t have a help topic.

PowerShell содержит множество концептуальных разделов справки («О программе»). PowerShell contains numerous conceptual (About) help topics. Следующая команда используется для возврата списка всех разделов О программе в системе. The following command can be used to return a list of all About help topics on your system.

При ограничении результатов одним из разделов справки «О программе» вместо возврата списка отображается действительный раздел. Limiting the results to one single About help topic displays the actual help topic instead of returning a list.

Для отображения разделов справки О программе справочную систему в PowerShell необходимо обновлять. The help system in PowerShell has to be updated in order for the About help topics to be present. Если по какой-либо причине не удалось выполнить первоначальное обновление системы справки на компьютере, эти файлы будут недоступны, пока командлет Update-Help не будет успешно выполнен. If for some reason the initial update of the help system failed on your computer, the files will not be available until the Update-Help cmdlet has been run successfully.

Get-Command Get-Command

Get-Command облегчает поиск команд. Get-Command is designed to help you locate commands. Выполнение Get-Command без указания параметров возвращает список всех команд в системе. Running Get-Command without any parameters returns a list of all the commands on your system. В приведенном ниже примере показано использование командлета Get-Command , который определяет команды, работающие с процессами. The following example demonstrates using the Get-Command cmdlet to determine what commands exist for working with processes:

Заметьте: в предыдущем примере, где выполнялся командлет Get-Command , используется параметр Noun, а командлет Process указан в качестве значения для параметра Noun. Notice in the previous example where Get-Command was run, the Noun parameter is used and Process is specified as the value for the Noun parameter. Что делать, если вы не знаете, как использовать командлет Get-Command ? What if you didn’t know how to use the Get-Command cmdlet? Get-Help можно использовать для вывода раздела справки для Get-Command . You could use Get-Help to display the help topic for Get-Command .

Параметры Name, Noun и Verb поддерживают добавление подстановочных знаков. The Name, Noun, and Verb parameters accept wildcards. В приведенном ниже примере показаны подстановочные знаки, используемые с параметром Name. The following example shows wildcards being used with the Name parameter:

Я стараюсь не использовать подстановочные знаки с параметром Name для Get-Command , так как он возвращает и исполняемые файлы, которые не являются собственными командами PowerShell. I’m not a fan of using wildcards with the Name parameter of Get-Command since it also returns executable files that are not native PowerShell commands.

При использовании подстановочных знаков с параметром Name рекомендую ограничить результаты с помощью параметра CommandType. If you are going to use wildcard characters with the Name parameter, I recommend limiting the results with the CommandType parameter.

Оптимально использовать параметр Verb или Noun либо оба этих параметра, так как только команды PowerShell состоят из глаголов и существительных. A better option is to use either the Verb or Noun parameter or both of them since only PowerShell commands have both verbs and nouns.

Что делать, есть в разделе справки найдены ошибки? Found something wrong with a help topic? Можете не волноваться: материалы разделов справки в PowerShell открыты и доступны в репозитории PowerShell-Docs на сайте GitHub. The good news is the help topics for PowerShell have been open-sourced and available in the PowerShell-Docs repository on GitHub. Исправив неверную информацию, вы поможете не только себе, но и другим пользователям. Pay it forward by not only fixing the incorrect information for yourself, but everyone else as well. Для этого разместите репозиторий документации PowerShell на сайте GitHub, обновите раздел справки и отправьте запрос на включение внесенных изменений. Simply fork the PowerShell documentation repository on GitHub, update the help topic, and submit a pull request. После того как этот запрос будет принят, исправленный документ появится в общем доступе. Once the pull request is accepted, the corrected documentation is available for everyone.

Обновление справки Updating Help

Локальная копия разделов справки PowerShell была ранее впервые обновлена с помощью запрошенной команды. The local copy of the PowerShell help topics was previously updated the first-time help on a command was requested. Рекомендуется периодически обновлять справочную систему, так как содержимое справки может обновляться. It’s recommended to periodically update the help system because there can be updates to the help content from time to time. Для обновления разделов справки используется командлет Update-Help . The Update-Help cmdlet is used to update the help topics. Для этого требуется доступ к Интернету по умолчанию, а вам необходимо запустить PowerShell с повышенными правами администратора. It requires internet access by default and for you to be running PowerShell elevated as an administrator.

Два модуля вернули распространенные ошибки. A couple of the modules returned errors, which is not uncommon. Если на компьютере отсутствует доступ к Интернету, можно использовать командлет Save-Help на другом компьютере с доступом к Интернету, чтобы сначала сохранить обновленную справочную информацию в общей папке, а затем использовать параметр SourcePath для Update-Help , чтобы указать это сетевое расположение для разделов справки. If the machine didn’t have internet access, you could use the Save-Help cmdlet on another machine that does have internet access to first save the updated help information to a file share on your network and then use the SourcePath parameter of Update-Help to specify this network location for the help topics.

Для периодического обновления содержимого справки на компьютере настройте запланированную задачу или добавление логики в скрипт профилирования в PowerShell. Consider setting up a scheduled task or adding some logic to your profile script in PowerShell to periodically update the help content on your computer. Сценарии профилирования будут рассматриваться в следующей главе. Profile scripts will be discussed in an upcoming chapter.

Сводка Summary

В этой главе вы узнали, как найти команды с помощью командлетов Get-Help и Get-Command . In this chapter you’ve learned how to find commands with both Get-Help and Get-Command . Кроме того, вы научились пользоваться справочной системой, которая позволяет использовать найденные команды. You’ve learned how to use the help system to figure out how to use commands once you find them. Мы также рассмотрели, как обновлять содержимое разделов справки при доступных обновлениях. You’ve also learned how to update the content of the help topics when updates are available.

Мне нужно, чтобы вы изучали по одной команде PowerShell в день. My challenge to you is to learn a PowerShell command a day.

Просмотр Review

  1. Является ли параметр DisplayName Get-Service позиционным? Is the DisplayName parameter of Get-Service positional?
  2. Сколько наборов параметров содержится в командлете Get-Process ? How many parameter sets does the Get-Process cmdlet have?
  3. Какие команды PowerShell используются для работы с журналами событий? What PowerShell commands exist for working with event logs?
  4. Какая команда PowerShell возвращает список процессов PowerShell, запущенных на компьютере? What is the PowerShell command for returning a list of PowerShell processes running on your computer?
  5. Как обновить содержимое справки PowerShell, сохраненное на компьютере? How do you update the PowerShell help content that’s stored on your computer?

Если вы хотите более подробно изучить темы, описанные в этой главе, рекомендую ознакомиться со следующими разделами справки по PowerShell. If you want to know more information about the topics covered in this chapter, I recommend reading the following PowerShell help topics.

В следующей главе вы узнаете о командлете Get-Member , а также об объектах, свойствах и методах. In the next chapter, you’ll learn about the Get-Member cmdlet as well as objects, properties, and methods.

Оцените статью