Глава 2. Система справки
В эксперименте, предназначенном для оценки знаний в PowerShell, две отдельные группы ИТ-специалистов — начинающих и экспертов — сначала дали письменный экзамен без доступа к компьютеру. Удивительно, оценка теста указала сопоставимые навыки в обеих группах. Затем был администрирование последующего теста, зеркальное отображение первого, но с одним ключевым различием: участники имели доступ к автономному компьютеру, оснащенном PowerShell. Результаты показали значительный разрыв навыков между двумя группами на этот раз.
Какие факторы способствовали результатам, наблюдаемых между двумя оценками?
Опытные пользователи не всегда знают ответы, но они знают, как их найти.
Результаты, наблюдаемые в результатах двух тестов, были потому, что эксперты не запоминают тысячи команд PowerShell. Вместо этого они используют систему справки в PowerShell, позволяя им обнаруживать и учиться использовать команды при необходимости.
Стать опытным в системе справки является ключом к успеху в PowerShell.
Я слышал Джеффри Snover, создатель PowerShell, поделиться аналогичной историей несколько раз.
Возможность обнаружения
Скомпилированные команды в PowerShell называются командлетами, которые называются "command-let", а не "CMD-let". Соглашение об именовании для командлетов следует единственному формату глагола-существительного , чтобы сделать их легко обнаруживаемыми. Например, командлет определяет Get-Process
, какие процессы выполняются, и Get-Service
является командлетом для получения списка служб. Функции, также известные как командлеты скриптов и псевдонимы, являются другими типами команд PowerShell, которые рассматриваются далее в этой книге. Термин "Команда PowerShell" описывает любую команду в PowerShell независимо от того, является ли она командлетом, функцией или псевдонимом.
Вы также можете запускать собственные команды операционной системы из PowerShell, например традиционные программы командной строки, такие ping.exe
как и ipconfig.exe
.
Три основных командлета в PowerShell
Get-Help
Get-Command
Get-Member
(рассматривается в главе 3)
Я часто спрашиваю: "Как вы узнаете, какие команды находятся в PowerShell?". Get-Command
Оба Get-Help
и являются бесценными ресурсами для обнаружения и понимания команд в PowerShell.
Get-Help
Первое, что необходимо знать о системе справки в PowerShell, заключается в том, как использовать Get-Help
командлет.
Get-Help
— это многоцелевая команда, которая помогает узнать, как использовать команды после их поиска.
Вы также можете использовать Get-Help
для поиска команд, но в другом и более косвенном способе по сравнению с Get-Command
.
При использовании Get-Help
для поиска команд сначала выполняется поиск подстановочных знаков на основе входных данных. Если это не найдено совпадений, он проводит комплексный полнотекстовый поиск во всех статьях справки PowerShell в вашей системе. Если это также не удается найти результаты, он возвращает ошибку.
Вот как использовать Get-Help
для просмотра содержимого справки для командлета Get-Help
.
Get-Help -Name Get-Help
Начиная с PowerShell версии 3.0 содержимое справки не отправляет предварительно установленную операционную систему. При первом запуске Get-Help
сообщение запрашивает, нужно ли скачать файлы справки PowerShell на компьютер.
Ответ " Да" , нажав клавишу Y , выполняет Update-Help
командлет, скачивая содержимое справки.
Do you want to run Update-Help?
The Update-Help cmdlet downloads the most current Help files for Windows
PowerShell modules, and installs them on your computer. For more information
about the Update-Help cmdlet, see
https:/go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
Если вы не получаете это сообщение, запуститесь Update-Help
из сеанса PowerShell с повышенными привилегиями, запущенного от имени администратора.
После завершения обновления отобразится статья справки.
Запустите пример на компьютере, просмотрите выходные данные и посмотрите, как система справки упорядочивает информацию.
- ИМЯ
- Краткий обзор
- SYNTAX
- ОПИСАНИЕ
- Связанные ссылки
- ПРИМЕЧАНИЯ
При просмотре выходных данных следует помнить, что статьи справки часто содержат огромный объем информации, и то, что вы видите по умолчанию, не является всей статьей справки.
Параметры
При выполнении команды в PowerShell может потребоваться предоставить дополнительные сведения или входные данные в команду. Параметры позволяют указать параметры и аргументы, которые изменяют поведение команды. Раздел СИНТАКСИСа каждой статьи справки описывает доступные параметры для команды.
Get-Help
имеет несколько параметров, которые можно указать, чтобы вернуть всю статью справки или подмножество для команды. Чтобы просмотреть все доступные параметры, Get-Help
см . раздел "СИНТАКСИС " статьи справки, как показано в следующем примере.
...
SYNTAX
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Full]
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] -Detailed
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] -Examples
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] -Online [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] -Parameter <System.String> [-Path <System.String>]
[-Role <System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] [-Path <System.String>] [-Role <System.String[]>]
-ShowWindow [<CommonParameters>]
...
Наборы параметров
При просмотре раздела Get-Help
СИНТАКСИСа обратите внимание, что информация, как представляется, повторяется шесть раз. Каждый из этих блоков представляет собой отдельный набор параметров, указывающий Get-Help
на функции командлета шесть отдельных наборов параметров. Более подробный взгляд показывает, что каждый набор параметров содержит по крайней мере один уникальный параметр, что отличается от других.
Эти наборы параметров являются взаимоисключающими. После указания уникального параметра, который существует только в одном наборе параметров, PowerShell ограничивает использование параметров, содержащихся в этом наборе параметров.
Например, нельзя использовать полные и подробные параметры Get-Help
вместе, так как они относятся к разным наборам параметров.
Каждый из следующих параметров принадлежит другому набору параметров для командлета Get-Help
.
- Полностью
- Подробно
- Примеры
- Миграция по сети
- Параметр
- ShowWindow
Синтаксис команды
Если вы не знакомы с PowerShell, понимание криптографических сведений , характеризуемых квадратными и угловыми скобками, в разделе СИНТАКСИСа может показаться подавляющим. Однако изучение этих элементов синтаксиса является важным для того, чтобы стать опытным с помощью PowerShell. Чем чаще используется система справки PowerShell, тем проще запоминать все нюансы.
Просмотрите синтаксис командлета Get-EventLog
.
Get-Help Get-EventLog
В следующих выходных данных показана соответствующая часть статьи справки.
...
SYNTAX
Get-EventLog [-LogName] <System.String> [[-InstanceId]
<System.Int64[]>] [-After <System.DateTime>] [-AsBaseObject] [-Before
<System.DateTime>] [-ComputerName <System.String[]>] [-EntryType {Error
| Information | FailureAudit | SuccessAudit | Warning}] [-Index
<System.Int32[]>] [-Message <System.String>] [-Newest <System.Int32>]
[-Source <System.String[]>] [-UserName <System.String[]>]
[<CommonParameters>]
Get-EventLog [-AsString] [-ComputerName <System.String[]>] [-List]
[<CommonParameters>]
...
Сведения о синтаксисе включают пары квадратных квадратных скобок ([]
). В зависимости от их использования эти квадратные скобки служат двумя разными целями.
- Элементы, заключенные в квадратные скобки, являются необязательными.
- Пустой набор квадратных скобок после типа данных, например
<string[]>
, указывает, что параметр может принимать несколько значений, передаваемых в виде массива или объекта коллекции.
Позиционные параметры
Некоторые командлеты предназначены для принятия позиционных параметров. Позиционные параметры позволяют указать значение без указания имени параметра. При использовании параметра позиционально необходимо указать его значение в правильной позиции в командной строке. Вы можете найти позиционные сведения для параметра в разделе ПАРАМЕТРОВ статьи справки команды. При явном указании имен параметров можно использовать параметры в любом порядке.
Для командлета первый параметр в первом наборе Get-EventLog
параметров — LogName.
LogName заключен в квадратные скобки, указывая, что это позиционный параметр.
Get-EventLog [-LogName] <System.String>
Так как LogName является позициальным параметром, его можно указать по имени или позиции. Согласно угловым скобкам после имени параметра, значение для LogName должно быть одной строкой. Отсутствие квадратных квадратных скобок, включающих имя параметра и тип данных, указывает, что LogName является обязательным параметром в этом конкретном наборе параметров.
Второй параметр в этом наборе параметров — InstanceId. Имя параметра и тип данных полностью заключены в квадратные скобки, что означает, что InstanceId является необязательным параметром.
[[-InstanceId] <System.Int64[]>]
Кроме того, InstanceId имеет собственную пару квадратных скобок, указывающую, что это позиционный параметр, аналогичный параметру LogName . После типа данных пустой набор квадратных квадратных скобок подразумевает, что InstanceId может принимать несколько значений.
Параметры-переключатели
то есть тем, который не требует указывать значение. Вы можете легко определить параметры коммутатора, так как нет типа данных после имени параметра. При указании параметра коммутатора его значение равно true
. Если параметр коммутатора не указан, его значение равно false
.
Второй набор параметров включает параметр List , который является параметром switch. При указании параметра List он возвращает список журналов событий на локальном компьютере.
[-List]
Упрощенный подход к синтаксису
Существует более удобный метод для получения той же информации, что и синтаксис криптографических команд для некоторых команд, за исключением обычного английского языка. PowerShell возвращает полную статью справки при использовании Get-Help
с полным параметром, что упрощает понимание использования команды.
Get-Help -Name Get-Help -Full
Запустите пример на компьютере, просмотрите выходные данные и посмотрите, как система справки упорядочивает информацию.
- ИМЯ
- Краткий обзор
- SYNTAX
- ОПИСАНИЕ
- PARAMETERS
- ВХОДНЫЕ ДАННЫЕ
- ВЫХОДНЫЕ ДАННЫЕ
- ПРИМЕЧАНИЯ
- Примеры
- Связанные ссылки
Указав полный параметр с командлетомGet-Help
, выходные данные содержат несколько дополнительных разделов. В этих разделах ПАРАМЕТРЫ часто содержат подробное описание каждого параметра. Однако степень этой информации зависит от конкретной команды, которую вы изучаете.
...
-Detailed <System.Management.Automation.SwitchParameter>
Adds parameter descriptions and examples to the basic help display.
This parameter is effective only when the help files are installed
on the computer. It has no effect on displays of conceptual ( About_
) help.
Required? true
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Examples <System.Management.Automation.SwitchParameter>
Displays only the name, synopsis, and examples. This parameter is
effective only when the help files are installed on the computer. It
has no effect on displays of conceptual ( About_ ) help.
Required? true
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Full <System.Management.Automation.SwitchParameter>
Displays the entire help article for a cmdlet. Full includes
parameter descriptions and attributes, examples, input and output
object types, and additional notes.
This parameter is effective only when the help files are installed
on the computer. It has no effect on displays of conceptual ( About_
) help.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
...
Когда вы выполнили предыдущую команду, чтобы отобразить справку для Get-Help
команды, вы, вероятно, заметили, что выходные данные прокручивались слишком быстро, чтобы прочитать его.
Если вы используете консоль PowerShell, Терминал Windows или VS Code и хотите просмотреть статью справки, help
эта функция может оказаться полезной. Он передает выходные данные Get-Help
more.com
в , отображая одну страницу содержимого справки за раз. Я рекомендую использовать help
функцию вместо командлета Get-Help
, так как она обеспечивает лучший пользовательский интерфейс, и это меньше для типа.
Примечание.
IsE не поддерживает использование more.com
, поэтому выполнение help
работает так же, как Get-Help
и .
Выполните каждую из следующих команд в PowerShell на компьютере.
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
Вы заметили какие-либо изменения в выходных данных при выполнении предыдущих команд?
В предыдущем примере первая строка использует командлет, вторая использует Get-Help
help
функцию, а третья строка пропускает параметр Name при использовании help
функции. Так как Имя является позициальным параметром, третий пример использует его позицию вместо явного указания имени параметра.
Разница заключается в том, что последние две команды отображают выходные данные одной страницы за раз. При использовании help
функции нажмите клавишу ПРОБЕЛ , чтобы отобразить следующую страницу содержимого или Q , чтобы выйти. Если вам нужно завершить выполнение любой команды в интерактивном режиме в PowerShell, нажмите клавиши CTRL+C.
Чтобы быстро найти сведения о конкретном параметре, используйте параметр Parameter . Этот подход возвращает содержимое, содержащее только сведения о параметрах, а не всю статью справки. Это самый простой способ найти сведения о конкретном параметре.
В следующем примере функция с параметром Параметра используется help
для возврата сведений из справки для параметра Get-Help
Name .
help Get-Help -Parameter Name
Сведения справки показывают, что параметр Name является позициальным и должен быть указан в первой позиции (нуле позиции) при использовании позиционально.
-Name <System.String>
Gets help about the specified command or concept. Enter the name of a
cmdlet, function, provider, script, or workflow, such as `Get-Member`,
a conceptual article name, such as `about_Objects`, or an alias, such
as `ls`. Wildcard characters are permitted in cmdlet and provider
names, but you can't use wildcard characters to find the names of
function help and script help articles.
To get help for a script that isn't located in a path that's listed in
the `$env:Path` environment variable, type the script's path and file
name.
If you enter the exact name of a help article, `Get-Help` displays the
article contents.
If you enter a word or word pattern that appears in several help
article titles, `Get-Help` displays a list of the matching titles.
If you enter any text that doesn't match any help article titles,
`Get-Help` displays a list of articles that include that text in their
contents.
The names of conceptual articles, such as `about_Objects`, must be
entered in English, even in non-English versions of PowerShell.
Required? false
Position? 0
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
Параметр Name ожидает строковое значение, определяемое типом данных рядом <String>
с именем параметра.
Существует несколько других параметров, с Get-Help
помощью которых можно вернуть подмножество статьи справки. Чтобы узнать, как они работают, выполните следующие команды на компьютере.
Get-Help -Name Get-Command -Full
Get-Help -Name Get-Command -Detailed
Get-Help -Name Get-Command -Examples
Get-Help -Name Get-Command -Online
Get-Help -Name Get-Command -Parameter Noun
Get-Help -Name Get-Command -ShowWindow
Как правило, вместе с help <command name>
я использую параметр Full или Online. Если у вас есть интерес только к примерам, используйте параметр Examples . Если у вас есть только интерес к конкретному параметру, используйте параметр Parameter .
При использовании параметра ShowWindow отображается содержимое справки в отдельном окне поиска. Это окно можно переместить в другой монитор, если у вас несколько мониторов. Однако параметр ShowWindow имеет известную ошибку, которая может препятствовать отображению всей статьи справки. Параметр ShowWindow также требует операционной системы с графическим пользовательским интерфейсом (GUI). Он возвращает ошибку при попытке использовать его в Windows Server Core.
Если у вас есть доступ к Интернету , вместо этого можно использовать параметр Online . Параметр Online открывает статью справки в веб-браузере по умолчанию. Веб-содержимое — это самое актуальное содержимое. Браузер позволяет искать содержимое справки и просматривать другие связанные статьи справки.
Примечание.
Параметр Online не поддерживается для статей About .
help Get-Command -Online
Поиск команд с помощью get-Help
Чтобы найти команды с Get-Help
, укажите термин поиска, окруженный звездочкой (*
) подстановочными знаками для значения параметра Name . В следующем примере используется параметр Name позиционально.
help *process*
Name Category Module Synops
---- -------- ------ ------
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Con...
Exit-PSHostProcess Cmdlet Microsoft.PowerShell.Core Clo...
Get-PSHostProcessInfo Cmdlet Microsoft.PowerShell.Core Get...
Debug-Process Cmdlet Microsoft.PowerShell.M... Deb...
Get-Process Cmdlet Microsoft.PowerShell.M... Get...
Start-Process Cmdlet Microsoft.PowerShell.M... Sta...
Stop-Process Cmdlet Microsoft.PowerShell.M... Sto...
Wait-Process Cmdlet Microsoft.PowerShell.M... Wai...
Invoke-LapsPolicyProcessing Cmdlet LAPS Inv...
ConvertTo-ProcessMitigationPolicy Cmdlet ProcessMitigations Con...
Get-ProcessMitigation Cmdlet ProcessMitigations Get...
Set-ProcessMitigation Cmdlet ProcessMitigations Set...
В этом сценарии не требуется добавлять *
подстановочные знаки. Если Get-Help
не удается найти команду, соответствующую указанному значению, он выполняет полнотекстовый поиск этого значения. В следующем примере создаются те же результаты, что и при указании *
подстановочного process
знака в каждом конце.
help process
При указании подстановочного знака в значении Get-Help
выполняется поиск только команд, соответствующих предоставленному шаблону. Он не выполняет полнотекстовый поиск. Следующая команда не возвращает результаты.
help pr*cess
PowerShell создает ошибку, если указать значение, начинающееся с дефиса, не заключая его в кавычки, так как оно интерпретирует его как имя параметра. Для командлета Get-Help
не существует такого имени параметра.
help -process
Если вы пытаетесь найти команды, которые заканчиваются -process
, необходимо добавить *
в начало значения.
help *-process
При поиске команд PowerShell с Get-Help
помощью лучше быть расплывчатыми, а не слишком конкретными.
При поиске process
ранее результаты возвращали только команды, включенные process
в их имя. Но при поиске processes
он не находит совпадений для имен команд. Как уже говорилось ранее, когда справка не находит совпадений, она выполняет комплексный полнотекстовый поиск каждой статьи справки в вашей системе и возвращает эти результаты. Этот тип поиска часто создает больше результатов, чем ожидалось, включая сведения, не относящиеся к вам.
help processes
Name Category Module Synops
---- -------- ------ ------
Disconnect-PSSession Cmdlet Microsoft.PowerShell.Core Dis...
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Con...
ForEach-Object Cmdlet Microsoft.PowerShell.Core Per...
Get-PSHostProcessInfo Cmdlet Microsoft.PowerShell.Core Get...
Get-PSSessionConfiguration Cmdlet Microsoft.PowerShell.Core Get...
New-PSSessionOption Cmdlet Microsoft.PowerShell.Core Cre...
New-PSTransportOption Cmdlet Microsoft.PowerShell.Core Cre...
Out-Host Cmdlet Microsoft.PowerShell.Core Sen...
Start-Job Cmdlet Microsoft.PowerShell.Core Sta...
Where-Object Cmdlet Microsoft.PowerShell.Core Sel...
Debug-Process Cmdlet Microsoft.PowerShell.M... Deb...
Get-Process Cmdlet Microsoft.PowerShell.M... Get...
Get-WmiObject Cmdlet Microsoft.PowerShell.M... Get...
Start-Process Cmdlet Microsoft.PowerShell.M... Sta...
Stop-Process Cmdlet Microsoft.PowerShell.M... Sto...
Wait-Process Cmdlet Microsoft.PowerShell.M... Wai...
Clear-Variable Cmdlet Microsoft.PowerShell.U... Del...
Convert-String Cmdlet Microsoft.PowerShell.U... For...
ConvertFrom-Csv Cmdlet Microsoft.PowerShell.U... Con...
ConvertFrom-Json Cmdlet Microsoft.PowerShell.U... Con...
ConvertTo-Html Cmdlet Microsoft.PowerShell.U... Con...
ConvertTo-Xml Cmdlet Microsoft.PowerShell.U... Cre...
Debug-Runspace Cmdlet Microsoft.PowerShell.U... Sta...
Export-Csv Cmdlet Microsoft.PowerShell.U... Con...
Export-FormatData Cmdlet Microsoft.PowerShell.U... Sav...
Format-List Cmdlet Microsoft.PowerShell.U... For...
Format-Table Cmdlet Microsoft.PowerShell.U... For...
Get-Unique Cmdlet Microsoft.PowerShell.U... Ret...
Group-Object Cmdlet Microsoft.PowerShell.U... Gro...
Import-Clixml Cmdlet Microsoft.PowerShell.U... Imp...
Import-Csv Cmdlet Microsoft.PowerShell.U... Cre...
Measure-Object Cmdlet Microsoft.PowerShell.U... Cal...
Out-File Cmdlet Microsoft.PowerShell.U... Sen...
Out-GridView Cmdlet Microsoft.PowerShell.U... Sen...
Select-Object Cmdlet Microsoft.PowerShell.U... Sel...
Set-Variable Cmdlet Microsoft.PowerShell.U... Set...
Sort-Object Cmdlet Microsoft.PowerShell.U... Sor...
Tee-Object Cmdlet Microsoft.PowerShell.U... Sav...
Trace-Command Cmdlet Microsoft.PowerShell.U... Con...
Write-Information Cmdlet Microsoft.PowerShell.U... Spe...
Export-BinaryMiLog Cmdlet CimCmdlets Cre...
Get-CimAssociatedInstance Cmdlet CimCmdlets Ret...
Get-CimInstance Cmdlet CimCmdlets Get...
Import-BinaryMiLog Cmdlet CimCmdlets Use...
Invoke-CimMethod Cmdlet CimCmdlets Inv...
New-CimInstance Cmdlet CimCmdlets Cre...
Remove-CimInstance Cmdlet CimCmdlets Rem...
Set-CimInstance Cmdlet CimCmdlets Mod...
Compress-Archive Function Microsoft.PowerShell.A... Cre...
Get-Counter Cmdlet Microsoft.PowerShell.D... Get...
Invoke-WSManAction Cmdlet Microsoft.WSMan.Manage... Inv...
Remove-WSManInstance Cmdlet Microsoft.WSMan.Manage... Del...
Get-WSManInstance Cmdlet Microsoft.WSMan.Manage... Dis...
New-WSManInstance Cmdlet Microsoft.WSMan.Manage... Cre...
Set-WSManInstance Cmdlet Microsoft.WSMan.Manage... Mod...
about_Arithmetic_Operators HelpFile
about_Arrays HelpFile
about_Environment_Variables HelpFile
about_Execution_Policies HelpFile
about_Functions HelpFile
about_Jobs HelpFile
about_Logging HelpFile
about_Methods HelpFile
about_Objects HelpFile
about_Pipelines HelpFile
about_Preference_Variables HelpFile
about_Remote HelpFile
about_Remote_Jobs HelpFile
about_Session_Configuration_Files HelpFile
about_Simplified_Syntax HelpFile
about_Switch HelpFile
about_Variables HelpFile
about_Variable_Provider HelpFile
about_Windows_Powershell_5.1 HelpFile
about_WQL HelpFile
about_WS-Management_Cmdlets HelpFile
about_Foreach-Parallel HelpFile
about_Parallel HelpFile
about_Sequence HelpFile
При поиске process
он вернул 12 результатов. Однако при поиске processes
он составил 78 результатов. Если поиск находит только одно совпадение, Get-Help
отображает содержимое справки вместо перечисления результатов поиска.
help *hotfix*
NAME
Get-HotFix
SYNOPSIS
Gets the hotfixes that are installed on local or remote computers.
SYNTAX
Get-HotFix [-ComputerName <System.String[]>] [-Credential
<System.Management.Automation.PSCredential>] [-Description
<System.String[]>] [<CommonParameters>]
Get-HotFix [[-Id] <System.String[]>] [-ComputerName <System.String[]>]
[-Credential <System.Management.Automation.PSCredential>]
[<CommonParameters>]
DESCRIPTION
> This cmdlet is only available on the Windows platform. The
`Get-Hotfix` cmdlet uses the Win32_QuickFixEngineering WMI class to
list hotfixes that are installed on the local computer or specified
remote computers.
RELATED LINKS
Online Version: https://learn.microsoft.com/powershell/module/microsoft.
powershell.management/get-hotfix?view=powershell-5.1&WT.mc_id=ps-gethelp
about_Arrays
Add-Content
Get-ComputerRestorePoint
Get-Credential
Win32_QuickFixEngineering class
REMARKS
To see the examples, type: "get-help Get-HotFix -examples".
For more information, type: "get-help Get-HotFix -detailed".
For technical information, type: "get-help Get-HotFix -full".
For online help, type: "get-help Get-HotFix -online"
Вы также можете найти команды, которые не имеют справки со статьями Get-Help
, хотя эта возможность не известна. Функция more
является одной из команд, которые не содержат статью справки. Чтобы убедиться, что вы можете найти команды, не Get-Help
содержащие статьи справки, используйте функцию help
для поиска more
.
help *more*
Поиск нашел только одно совпадение, поэтому он вернул основные сведения о синтаксисе, которые вы видите, когда команда не содержит статью справки.
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
Система справки PowerShell также содержит концептуальные статьи справки о справке. Чтобы получить статьи о сведениях, необходимо обновить содержимое справки в системе. Дополнительные сведения см. в разделе справки по обновлению этой главы.
Используйте следующую команду, чтобы вернуть список всех статей справки о системе.
help About_*
При ограничении результатов до одной статьи Get-Help
справки о справке отображается содержимое этой статьи.
help about_Updatable_Help
Обновление справки
Ранее в этой главе вы обновили статьи справки PowerShell на компьютере при первом запуске командлета Get-Help
. Для получения обновлений содержимого справки периодически следует запускать Update-Help
командлет на компьютере.
Внимание
В Windows PowerShell 5.1 необходимо запустить Update-Help
от имени администратора в сеансе PowerShell с повышенными привилегиями.
В следующем примере скачивает содержимое справки PowerShell для всех модулей, Update-Help
установленных на компьютере. Чтобы скачать последнюю версию содержимого справки, следует использовать параметр Force .
Update-Help -Force
Как показано в следующих результатах, модуль вернул ошибку. Ошибки не являются редкими и обычно возникают, когда автор модуля не настраивает обновляемую справку правильно.
Update-Help : Failed to update Help for the module(s) 'BitsTransfer' with UI
culture(s) {en-US} : Unable to retrieve the HelpInfo XML file for UI culture
en-US. Make sure the HelpInfoUri property in the module manifest is valid or
check your network connection and then try the command again.
At line:1 char:1
+ Update-Help
+ ~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [Update-Help], Except
ion
+ FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShe
ll.Commands.UpdateHelpCommand
Update-Help
требуется доступ к Интернету для скачивания содержимого справки. Если у компьютера нет доступа к Интернету, используйте Save-Help
командлет на компьютере с доступом к Интернету для скачивания и сохранения обновленного содержимого справки. Затем используйте параметр Update-Help
SourcePath, чтобы указать расположение сохраненного обновленного содержимого справки.
Get-Command;
Get-Command
— это другая многоцелевая команда, которая помогает находить команды. При выполнении Get-Command
без параметров возвращается список всех команд PowerShell в системе.
Можно также использовать Get-Command
для получения синтаксиса команды, аналогичного Get-Help
.
Как определить синтаксис для Get-Command
? Вы можете использовать Get-Help
для отображения статьи Get-Command
справки, как показано в разделе get-Help этой главы. Для просмотра синтаксиса для любой команды можно также использовать Get-Command
с параметром Синтаксиса . Это сочетание клавиш помогает быстро определить, как использовать команду без навигации по содержимому справки.
Get-Command -Name Get-Command -Syntax
Использование Get-Command
с параметром Синтаксиса обеспечивает более краткое представление синтаксиса , отображающего параметры и их типы значений, без перечисления определенных допустимых значений, как Get-Help
показано.
Get-Command [[-ArgumentList] <Object[]>] [-Verb <string[]>]
[-Noun <string[]>] [-Module <string[]>]
[-FullyQualifiedModule <ModuleSpecification[]>] [-TotalCount <int>]
[-Syntax] [-ShowCommandInfo] [-All] [-ListImported]
[-ParameterName <string[]>] [-ParameterType <PSTypeName[]>]
[<CommonParameters>]
Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]
[-Module <string[]>] [-FullyQualifiedModule <ModuleSpecification[]>]
[-CommandType <CommandTypes>] [-TotalCount <int>] [-Syntax]
[-ShowCommandInfo] [-All] [-ListImported] [-ParameterName <string[]>]
[-ParameterType <PSTypeName[]>] [<CommonParameters>]
Если вам нужна более подробная информация об использовании команды, используйте Get-Help
.
help Get-Command -Full
Раздел СИНТАКСИСа Get-Help
предоставляет более удобное для пользователя отображение путем расширения перечисленных значений для параметров. В нем показаны фактические значения, которые можно использовать, что упрощает понимание доступных вариантов.
...
Get-Command [[-Name] <System.String[]>] [[-ArgumentList]
<System.Object[]>] [-All] [-CommandType {Alias | Function | Filter |
Cmdlet | ExternalScript | Application | Script | Workflow |
Configuration | All}] [-FullyQualifiedModule
<Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
[-Module <System.String[]>] [-ParameterName <System.String[]>]
[-ParameterType <System.Management.Automation.PSTypeName[]>]
[-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
[<CommonParameters>]
Get-Command [[-ArgumentList] <System.Object[]>] [-All]
[-FullyQualifiedModule
<Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
[-Module <System.String[]>] [-Noun <System.String[]>] [-ParameterName
<System.String[]>] [-ParameterType
<System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo]
[-Syntax] [-TotalCount <System.Int32>] [-Verb <System.String[]>]
[<CommonParameters>]
...
Раздел PARAMETERS справки Get-Command
показывает, что параметры Name, Noun и Verb принимают подстановочные знаки.
...
-Name <System.String[]>
Specifies an array of names. This cmdlet gets only commands that
have the specified name. Enter a name or name pattern. Wildcard
characters are permitted.
To get commands that have the same name, use the All parameter. When
two commands have the same name, by default, `Get-Command` gets the
command that runs when you type the command name.
Required? false
Position? 0
Default value None
Accept pipeline input? True (ByPropertyName, ByValue)
Accept wildcard characters? true
-Noun <System.String[]>
Specifies an array of command nouns. This cmdlet gets commands,
which include cmdlets, functions, and aliases, that have names that
include the specified noun. Enter one or more nouns or noun
patterns. Wildcard characters are permitted.
Required? false
Position? named
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
-Verb <System.String[]>
Specifies an array of command verbs. This cmdlet gets commands,
which include cmdlets, functions, and aliases, that have names that
include the specified verb. Enter one or more verbs or verb
patterns. Wildcard characters are permitted.
Required? false
Position? named
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
...
В следующем примере используется подстановочный *
знак со значением параметра Get-Command
Name .
Get-Command -Name *service*
При использовании подстановочных знаков с параметром Get-Command
Name он возвращает команды PowerShell и собственные команды, как показано в следующих результатах.
CommandType Name Version
----------- ---- -------
Function Get-NetFirewallServiceFilter 2.0.0.0
Function Set-NetFirewallServiceFilter 2.0.0.0
Cmdlet Get-Service 3.1.0.0
Cmdlet New-Service 3.1.0.0
Cmdlet New-WebServiceProxy 3.1.0.0
Cmdlet Restart-Service 3.1.0.0
Cmdlet Resume-Service 3.1.0.0
Cmdlet Set-Service 3.1.0.0
Cmdlet Start-Service 3.1.0.0
Cmdlet Stop-Service 3.1.0.0
Cmdlet Suspend-Service 3.1.0.0
Application SecurityHealthService.exe 10.0.2...
Application SensorDataService.exe 10.0.2...
Application services.exe 10.0.2...
Application services.msc 0.0.0.0
Application TieringEngineService.exe 10.0.2...
Application Windows.WARP.JITService.exe 10.0.2...
Можно ограничить результаты Get-Command
команд PowerShell с помощью параметра CommandType .
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias, Script
Другим вариантом может быть использование параметра Verb или Noun или обоих, так как только команды PowerShell имеют глаголы и существительные.
В следующем примере используется Get-Command
поиск команд на компьютере, работающих с процессами.
Используйте параметр Noun и укажите Process
его значение.
Get-Command -Noun Process
CommandType Name Version
----------- ---- -------
Cmdlet Debug-Process 3.1.0.0
Cmdlet Get-Process 3.1.0.0
Cmdlet Start-Process 3.1.0.0
Cmdlet Stop-Process 3.1.0.0
Cmdlet Wait-Process 3.1.0.0
Итоги
В этой главе вы узнали, как найти команды с Get-Help
и Get-Command
. Вы также узнали, как использовать систему справки, чтобы понять, как использовать команды после их поиска. Кроме того, вы узнали, как обновить систему справки на компьютере при наличии нового содержимого справки.
Отзыв
- Является ли параметр DisplayName
Get-Service
позиционным? - Сколько наборов параметров содержится в командлете
Get-Process
? - Какие команды PowerShell используются для работы с журналами событий?
- Что такое команда PowerShell для возврата списка процессов PowerShell, выполняемых на компьютере?
- Как обновить содержимое справки PowerShell, хранящееся на компьютере?
Ссылки
Дополнительные сведения о концепциях, описанных в этой главе, см. в следующих статьях справки PowerShell.
Следующие шаги
В следующей главе вы узнаете о объектах, свойствах, методах и командлете Get-Member
.
PowerShell