Как добавить комментарий к объекту GPO
Обновлено 23.05.2019
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами рассмотрели вопрос по отключению тестового режима Windows 10. Сегодня мы поговорим про очень полезную вещь, которая позволит вашей инфраструктуре Active Directory, быть более описанной и задокументированной. В данной заметке пойдет речь, о добавлении комментариев к объектам групповой политики. Будьте профессионалами, не ленитесь делать такие простые вещи.
Нужны комментарии или нет
Лично я всегда придерживался концепции, что если сервис, оборудование или софт позволяет оставить какой-либо комментарий, то нужно не лениться и всегда это делать, по ряду причин:
- Во первых через какое-то время вы сами можете забыть, что настраивали и за что, это отвечает. В такой ситуации наличие описания, или комментария сильно упростит понимание, что это и для чего, сэкономит вам некоторое время.
- Во вторых групповые политики не всегда в составе своего имени несут смысл своего назначения, так как в название не запихнешь всего и вот наличие подробного описание в виде комментариев, очень сильно вам поможет с поиском нужной политики или параметров. Я много раз встречал в различных организациях наличие большого количества групповых политик, применяемых к объектам AD, и в большинстве случаев, когда нужно понять из-за какой политики применяется та или иная настройка, администраторы тратили уйму времени, чтобы это отыскать. Элементарные комментарии сильно бы упростили им их задачу.
- В третьих, когда у вас порядок, то вам проще передавать дела на время отпуска или в связи со сменой работы, согласитесь, что когда приходишь на новое место и входишь в курс дел, так где все службы и настройки задокументированы, проще вникнуть в режим работы инфраструктуры, не желе так, где был безалаберный администратор, который считал, все это своей тайном и чтобы его не удалили, специально не посвящал в детали никого. Это лишь показывает его неуверенность и не профессионализм, за такое отношение они часто попадают в конфликтные ситуации.
Методы позволяющие задать комментарий в GPO
Существует два способа, которые позволят вам оставить комментарии в видео описаний к вашим объектам групповой политики:
- Использование оснастки «Управление групповой политикой (GPMC)»
- Командлеты PowerShell
Давайте проставим комментарий через графический интерфейс GPMC. Выберите нужную вам политику и щелкните по ней правым кликом, из контекстного меню выберите пункт «Изменить».
Далее вы кликаете по корню и из меню выбираете пункт «Свойства».
В открывшемся окне свойств, перейдите на вкладку «Комментарий» и в примечании введите нужное вам описание. Сохраняем изменения и закрываем окно.
Перейдите теперь на вкладку «Сведения» и проверьте, что у вас появилось описание в комментариях.
Теперь попробуем выполнить то же самое, но с использованием PowerShell. Откройте PowerShell от имени администратора. первым делом мы посмотрим все политики и есть ли у них описание, для этого:
get-gpo -All | FT DisplayName,Description,ID
В итоге я виду, имя объекта GPO, описание (Description) и ID (GUID).
Теперь зная GUID поменяем текст комментария.
(Get-GPO -Guid ’49df37c4-d9af-48d0-85aa-96e91b6cc13a’).Description=’Новое описание политики’
Смотрим все групповые политики и видим, что описание у GPO изменилось.
Или можно изменить по имени политики.
(Get-GPO -Name ‘Управление UIPI’).Description=’Еще раз изменил комментарий’
Как видите, все очень просто, быстро и полезно. Надеюсь, что вы теперь найдете желание и время, чтобы привести в порядок ваше описание политик GPO. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Руководство по Windows PowerShell для начинающих
В этой статье про 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:\Windows\System32\drivers\etc\hosts
.
При необходимости список всех доступных командлетов можно вывести с помощью Get-Help-Category. Запомните эту команду — она крайне важна для тех, кто изучает PowerShell с нуля, так как помогает быстрее начать ориентироваться в его возможностях.
Результат выполнения команды Get-Help-Category
Также можно создавать свои командлеты, но эта тема выходит за рамки нашего руководства по PowerShell для начинающих.
Параметры
У каждого командлета есть несколько параметров, определяющих его работу. PowerShell ISE автоматически предлагает все доступные параметры с отображением их типа. Например,
выводит список служб, у которых имя начинается с W
. Если вы забыли, какие параметры у введённого командлета, воспользуйтесь Get-Member
.
Например, Get-Process | Get-Member
:
Список параметров командлета Get-Process
Если вы не нашли того, что нужно, или не уверены в том, как правильно задаются параметры, можно даже запросить примеры с помощью параметра -Examples
. Встроенное руководство по PowerShell покажет, для чего используются разные параметры:
Примеры использования командлета
Некоторые командлеты также могут вызываться с помощью алиасов. Например, вместо
можно просто написать Help
— эта команда также вызовет встроенное руководство по PowerShell.
При написании больших скриптов или коллективной разработке можно пользоваться комментариями. Каждый комментарий начинается с символа #
, а блок комментариев ограничивается комбинациями символов <#
и #>
в начале и в конце соответственно.
Конвейер
PowerShell позволяет осуществлять обмен данными между командлетами с помощью конвейера. Например:
GetService | SortObject -property Status
— сортировка запущенных служб по статусу;“Hello World!” | Out-File C:\ps\test.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»
Оценить Корпорация Microsoft недавно выпустила третью ознакомительную версию PowerShell 2.0. Она значительно усовершенствована по сравнению с предыдущей и дает все основания надеяться, что PowerShell 2.0 в конечном итоге превратится в надежный инструмент системного администрирования, располагающий богатым набором функций уровня предприятия, которые так актуальны для многих организаций. В этой статье Скотт Лоу (Scott Lowe) рассказывает об основных особенностях новой версии. Что нам готовит PowerShell 2.0? PowerShell 2.0 предлагает богатый набор новых функций, призванных сделать эту версию более мощной и простой в обращении, чем PowerShell 1.0. Ниже я расскажу об основных преимуществах новой версии. ISE Самое заметное отличие PowerShell 2.0 от предыдущей версии – наличие интегрированной среды построения сценариев Windows PowerShell (Integrated Scripting Environment, ISE). ISE – это утилита с графическим интерфейсом, которая делает процесс создания и изменения сценариев PowerShell намного проще и удобнее. Разумеется, для этого существуют и приложения сторонних производителей вроде PowerGUI от Quest, но все-таки приятно, что теперь и разработчики PowerShell взялись за дело. Снимок PowerShell 2.0 ISE Удаленная работа В PowerShell 2.0 значительно расширены возможности применения сценариев PowerShell к удаленным системам. Если коротко, администратор получает возможность со своего собственного компьютера направлять команды PowerShell, которые выполняются на удаленных станциях и выводят результаты на экран администратора. Разумеется, для этого на удаленных системах тоже должен быть установлен PowerShell. Прелесть PowerShell 2.0 в том, что удаленные пользователи не видят визуальных признаков выполнения процессов PowerShell – они отражаются только в Диспетчере задач (Task Manager). Согласитесь, если бы посреди рабочего дня на компьютерах ничего не подозревающих удаленных пользователей вдруг ни с того, ни с сего начали бы выскакивать окна непонятных приложений, существование отдела технической поддержки превратилось бы в ад! Фоновый режим При внимательном рассмотрении функции удаленного выполнения команд PowerShell 2.0 становится понятным, что все эти команды работают в фоновом режиме незаметно для пользователей. Администратор получает возможность создавать сценарии, которые будут выполняться в фоне, в то время как он сам может продолжать работу в новом окне PowerShell. Позже администратор собирает все полученные в фоновом режиме результаты. Возможность выполнять команды в фоне (асинхронно) позволяет администратору продолжать работу, не дожидаясь завершения выполнения запущенных сценариев. Транзакции PowerShell 2.0 позволяет создавать сценарии на основе транзакций с использованием командлетов для запуска, выполнения и отмены транзакций в случае ошибки или при любых других условиях. Эта функция делает PowerShell удобным инструментом для выполнения сложных деловых процессов, поскольку гарантирует, что при необходимости данные можно будет вернуть в исходное состояние. Многострочные комментарии В первой версии PowerShell добавлять многострочные комментарии вручную (без помощи PowerGUI) было чрезвычайно утомительно, поскольку каждая строка комментария должна была начинаться с символа #. Выпустив этот символ в одной из строк, можно было загубить весь сценарий. В PowerShell 2.0 используются элементы сценария , между которыми можно вставлять многострочные комментарии любой длины. На первый взгляд, усовершенствование незначительное, но функции облегченной обработки многострочных комментариев есть во всех приличных языках сценариев и программирования. Новые командлеты, параметры, переменные и операторы Поскольку PowerShell 2.0 – это новая полномасштабная версия языка, в нее включено множество новых командлетов, новых параметров для уже существующих командлетов, новых переменных и операторов. Например, операторы -Split и -Join позволяют при определенных условиях разбивать или объединять строки. Появились новые командлеты для обслуживания транзакций (Start-PSTransaction, Undo-PSTransaction) и задач, выполняемых в фоновом режиме (Start-PSJob, Stop-PSJob), а также для поддержки новых функций отладки PowerShell 2.0 (Set-PSBreakpoint, Get-PSBreakpoint). У старых командлетов, как я уже упоминал, появились новые параметры. Например, у Stop-Process — параметр -force, а у Export-Csv – параметр -Delimiter, позволяющий указать символы для применения. Большинство новых командлетов и параметров предназначено для обслуживания новых функций PowerShell, но многие из них были введены для того, чтобы сделать язык в целом более надежным. Заключение PowerShell 2.0 находится в разработке уже давно, и судя по третьей ознакомительной версии, этот замечательный язык сценариев движется в правильном направлении. Автор: Scott Lowe Оцените статью: Голосов |
Запуск скрипта PowerShell — Get-PowerShell
PowerShell весьма мощный язык сценариев для ОС Windows, поэтому на нем очень легко писать вредоносный код. Чтобы не допустить запуска «плохих» сценариев в Windows встроено несколько механизмов защиты.
Для тех ситуаций, когда необходимо все же скрипт запустить выполните эти действия:
- Запустите сеанс PowerShell. Возможно с правами администратора
- Чтобы временно отключить защиту наберите эту команду:
Set-ExecutionPolicy Unrestricted -Scope Process
Set-ExecutionPolicy Unrestricted -Scope Process |
- Напишите имя скрипта и полный путь к нему. Используйте клавишу Tab, чтобы быстрее ввести путь. Например:
C:\Users\Administrator\test.ps1
C:\Users\Administrator\test.ps1 |
Почему необходимо выполнить эти команды?
Во-первых, PowerShell никогда не ищет исполняемые файлы и скрипты в текущем каталоге. Поэтому запуск скрипта PowerShell необходимо производить указывая полный или относительный путь к файлу. Например, если файл расположен в каталоге C:\Users\Administrator\, то его можно выполнить следующим образом:
PS C:\Users\Administrator> .\test.ps1 PS C:\Users\powershell> C:\Users\Administrator\test.ps1
PS C:\Users\Administrator> .\test.ps1 PS C:\Users\powershell> C:\Users\Administrator\test.ps1 |
Во-вторых, к счастью, по умолчанию запуск всех скриптов запрещен (единственное пока исключение это Windows Server 2012 R2). Поэтому при попытке запуска скрипта PowerShell вы можете увидеть следующие сообщение: Невозможно загрузить файл C:\Users\Administrator\test.ps1, так как выполнение сценариев отключено в этой системе или оно же в английском варианте: File C:\Users\Administrator\test.ps1 cannot be loaded because running scripts is disabled on this system.
В большинстве случаев для разрешения запуска скрипта PowerShell необходимо выполнить с правами администратора данный код:
Set-ExecutionPolicy RemoteSigned
Set-ExecutionPolicy RemoteSigned |
Если вдруг вы обычный пользователь, тогда можно посоветовать данную команду:
Set-ExecutionPolicy RemoteSigned -Scope currentuser
Set-ExecutionPolicy RemoteSigned -Scope currentuser |
После выполнения данной команды большинство скриптов будут запускаться, однако если вы скачали их из интернета то может понадобится или скопировать текст скрипта в новый ps1 файл или же убрать галку в свойствах файла:
И так, чтобы запуск скрипта PowerShell был возможен необходимо один раз запустить Set-ExecutionPolicy RemoteSigned и затем выполнять сам файл указывая относительный или полный путь к файлу.
Устанавливаем PowerShell в старых версиях Windows
Windows Server, Windows Vista, Windows XP, Программное обеспечение- Recluse
- 19.03.2018
- 12 146
- 7
- 04.10.2021
- 26
- 25
- 1
- Содержание статьи
Установка PowerShell в Windows
PowerShell — это современная замена командной строки в Windows, альтернатива Bash от Microsoft и просто мощный инструмент в умелых руках. Тем не менее, есть он далеко не во всех операционных системах Windows — первой операционной системой, в которой был встроен PowerShell, была Windows 7. К счастью, установить его можно и на более старые системы — такие как Windows XP, Vista и их серверные аналоги. Делается это с помощью установки комплекта Windows Management Framework.
Программная часть компьютера при этом должна соответствовать следующим требованиям:
Операционная система:
Windows XP с установленным Service Pack 3
Windows Server 2003 с установленными Service Pack 2
Windows Vista с установленными Service Pack 1 или Service Pack 2
Windows Server 2008 с установленными Service Pack 1 или Service Pack 2
Установленный Microsoft .NET Framework 2 (так же подходит .NET Framework 3 и .NET Framework 3.5).
Скачать обновления для нужной операционной системы, содержащие в себе Windows Management Framework, в том числе Windows PowerShell 2.0 и WinRM 2.0 можно по следующим ссылкам:
Windows XP и Windows Embedded (обновление KB968930):
Windows Server 2003 (обновление KB968930):
Windows Server 2003 x64 (обновление KB968930):
Windows Vista (обновление KB968930):
Windows Vista x64 (обновление KB968930):
Windows Server 2008 (обновление KB968930):
Windows Server 2008 x64 (обновление KB968930):
После установки, исполняемый файл PowerShell можно будет найти по адресу C:\WINDOWS\system32\WindowsPowerShell\v1.0, а так же в меню Пуск.
Как вы комментируете код в PowerShell?
Как вы комментируете код в PowerShell (1.0 или 2.0)?
835
автор: Peter Mortensen
7 ответов
в PowerShell V1 есть только #
чтобы сделать текст после него комментарием.
# This is a comment in Powershell
В PowerShell V2 <# #>
можно использовать для комментариев блока и более конкретно для комментариев справки.
#REQUIRES -Version 2.0
<#
.SYNOPSIS
A brief description of the function or script. This keyword can be used
only once in each topic.
.DESCRIPTION
A detailed description of the function or script. This keyword can be
used only once in each topic.
.NOTES
File Name : xxxx.ps1
Author : J.P. Blanc ([email protected])
Prerequisite : PowerShell V2 over Vista and upper.
Copyright 2011 - Jean Paul Blanc/Silogix
.LINK
Script posted over:
http://silogix.fr
.EXAMPLE
Example 1
.EXAMPLE
Example 2
#>
Function blabla
{}
более подробное объяснение .SYNOPSIS
и .*
посмотреть в разделе about_comment_based_help.
примечание: эти комментарии функции используются Get-Help
командлет и может быть поставлен перед ключевым словом Function
или внутри {}
до или после самого кода.
94
автор: adamleerich
однострочные комментарии начинаются с хэш-символ, все справа от #
будет проигнорирован:
# Comment Here
в PowerShell 2.0 и выше можно использовать многострочные комментарии блоков:
<#
Multi
Line
#>
вы можете использовать блок комментариев для вставки текста комментария в команду:
Get-Content -Path <# configuration file #> C:\config.ini
Примечание: потому что PowerShell поддерживает Завершение вы должны быть осторожны с копированием и вставкой Space + TAB
перед комментарии.
здесь
# Single line comment in Powershell
<#
--------------------------------------
Multi-line comment in PowerShell V2+
--------------------------------------
#>
в PowerShell ISE вы можете нажать Ctrl+J открыть Начать Отсекать menü и выберите комментарий блок:
8
автор: Martin Brandl
вы можете сделать:
(Some basic code) # Use "#" after a line and use:
<#
for more lines
...
...
...
..
.
#>
3
автор: Mister X CT
Мониторинг, CMDB и удовольствие от работы – Digital Enterprise
Всем нам нравится время от времени переключаться на другую деятельность. Для меня большое удовольствие – иногда нырнуть в техническую работу, которую «настоящему консультанту» вроде бы и делать не пристало. Так, иногда на две-три недели приходится переключаться на программирование при выпуске новой версии CleverENGINE. А на этой неделе я занимался подготовкой к курсу по программированию OMNITRACKER, который мне предстоит вести в ноябре, и настройкой мониторинга внутренней инсталляции OMNITRACKER, обеспечивающей автоматизацию наших бизнес-процессов. Братцы, какое же это удовольствие!
Последний раз я занимался администрированием серверов году в 2002-м. С тех пор очень многое изменилось. В частности, появились новые средства мониторинга, а на смену широко распространенному в те годы WSH пришел PowerShell. Вот с этими делами я и разбирался. В качестве основы для мониторинга мы выбрали PRTG – это решение вполне функционально, а на наших масштабах к тому же еще и бесплатно. Помимо традиционных источников данных (типа SNMP, WMI, Performance monitor, текстовых логов, Windows event log’ов, syslog’а и прочих) этот продукт умеет использовать в качестве сенсоров произвольные скрипты SQL, VBS, PowerShell. С PowerShell пришлось немного повозиться, но так как обычный shell в прошлой жизни я использовал весьма активно, понимание базовых возможностей пришло довольно быстро. Просто удивительно, что можно сделать одной строчкой кода с применением конвейеризации и возможностей среды .NET. Теперь мы контролируем такие вещи, как размер исходящей почтовой очереди Omni, потребление лицензий Omni, свободное место на ftp-сервере, который используется для удаленного хранения оперативных резервных копий, и многое другое.
Но в реальной корпоративной среде – сотни серверов, приложений, баз данных, сетевых каналов. И если компания серьезно относится к мониторингу, появляется множество диагностических скриптов, которые а) жаль и дорого терять, б) надо уметь обновлять и при появлении их новых версий (ведь они могут использоваться на разных узлах), и при изменении самих объектов мониторинга. Опыт показывает, что эти задачи здорово помогает решать CMDB – она может хранить и сами «пробники», и связи с объектами мониторинга для корректного обновления. В далеком 2008 году мы занимались этим с BSGV, а с тех пор мне пока не попадались компании, дозревшие до такого учета. А может быть, просто теперь соответствующий учет может обеспечить непосредственно инструментарий мониторинга, взяв часть функций CMDB на себя?
о справке на основе комментариев — PowerShell
- Статья .
- 15 минут на чтение
Оцените свой опыт
да Нет
Любой дополнительный отзыв?
Отзыв будет отправлен в Microsoft: при нажатии кнопки «Отправить» ваш отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.
Представлять на рассмотрение
Спасибо.
В этой статье
Краткое описание
Описывает, как писать разделы справки на основе комментариев для функций и скриптов.
Длинное описание
Вы можете писать разделы справки на основе комментариев для функций и скриптов, используя специальные ключевые слова для комментариев справки.
Командлет Get-Help отображает
справка на основе комментариев в том же формате, в котором отображается справка по командлету
темы, созданные из файлов XML. Пользователи могут использовать все параметры
из Get-Help
, например Подробный , Полный , Примеры и Онлайн , на
отображать содержимое справки на основе комментариев.
Вы также можете написать файлы справки на основе XML для функций и сценариев. Включить
командлет Get-Help
для поиска файла справки на основе XML для функции или сценария,
используйте .Ключевое слово ExternalHelp
. Без этого ключевого слова Get-Help
не сможет найти
Разделы справки на основе XML для функций или скриптов.
В этом разделе объясняется, как писать разделы справки для функций и сценариев. Для информацию о том, как отображать разделы справки для функций и скриптов, см. Получить помощь.
Обновление-Справка и Командлеты Save-Help работают только с XML файлы. Обновляемая справка не поддерживает разделы справки на основе комментариев.
Синтаксис справки на основе комментариев следующий:
#.<ключевое слово помощи>
# <содержание справки>
или
<#
. <ключевое слово помощи>
<содержание справки>
#>
Справка на основе комментариев представляет собой серию комментариев. Вы можете ввести комментарий
символ #
перед каждой строкой комментариев, или вы можете использовать <#
и #>
символы для создания блока комментариев. Все строки в блоке комментариев
интерпретируется как комментарии.
Все строки в разделе справки на основе комментариев должны быть смежными.Если Раздел справки на основе комментариев следует за комментарием, который не является частью справки в теме, между последними не справочными строка комментария и начало справки на основе комментариев.
Ключевые слова определяют каждый раздел справки на основе комментариев. Каждая справка на основе комментариев
Ключевому слову предшествует точка .
. Ключевые слова могут появляться в любом порядке. В
в именах ключевых слов регистр не учитывается.
Например, ключевое слово .Description
предшествует описанию функции или
сценарий.
<#
.Описание
Get-Function отображает имя и синтаксис всех функций в сеансе.
#>
Блок комментариев должен содержать хотя бы одно ключевое слово. Некоторые ключевые слова,
например, .EXAMPLE
, может появляться много раз в одном и том же блоке комментариев. Помощь
содержание каждого ключевого слова начинается в строке после ключевого слова и может охватывать
несколько строк.
Справка для функции на основе комментариев может появиться в одном из трех мест:
- В начале тела функции.
- В конце тела функции.
- Перед функцией
ключевое слово
. Не может быть более одной пустой строки между последней строкой справки по функциям и ключевым словомfunction
.
Например:
функция Get-Function
{
<#
. <ключевое слово помощи>
<содержание справки>
#>
# функциональная логика
}
или
функция Get-Function
{
# функциональная логика
<#
. <ключевое слово помощи>
<содержание справки>
#>
}
или
<#
.<ключевое слово помощи>
<содержание справки>
#>
функция Get-Function {}
Справка для сценария на основе комментариев может появиться в одном из следующих двух локации в сценарии.
В начале файла сценария. Справке по скрипту может предшествовать скрипт только комментариями и пустыми строками.
Если первый элемент в теле скрипта (после справки) является функцией декларации, должно быть не менее двух пустых строк между концом справка по сценарию и объявление функции.В противном случае справка интерпретируется как помощь для функции, а не для сценария.
В конце файла сценария. Однако, если сценарий подписан, поместите Справка на основе комментариев в начале файла сценария. Конец сценария занимает блок подписи.
Например:
<#
. <ключевое слово помощи>
<содержание справки>
#>
функция Get-Function {}
или
функция Get-Function {}
<#
.<ключевое слово помощи>
<содержание справки>
#>
В модуле сценария .psm1
справка на основе комментариев использует синтаксис для функций,
не синтаксис скриптов. Вы не можете использовать синтаксис скрипта для оказания помощи
для всех функций, определенных в модуле сценария.
Например, если вы используете ключевое слово .ExternalHelp
для определения
XML-файлы справки для функций в модуле сценария, вы должны добавить .ExternalHelp
комментарий к каждой функции.
# .ExternalHelp <имя-файла-XML>
функция <имя-функции>
{
...
}
Ниже приведены допустимые ключевые слова справки на основе комментариев. Они перечислены в порядок, в котором они обычно появляются в разделе справки вместе с предполагаемым использовать. Эти ключевые слова могут появляться в любом порядке в справке на основе комментариев, и они не чувствительны к регистру.
.СИНОПСИС
.Краткое описание функции или сценария. Это ключевое слово можно использовать только один раз в каждой теме.
. ОПИСАНИЕ
Подробное описание функции или сценария. Это ключевое слово может быть используется только один раз в каждой теме.
. ПАРАМЕТР
Описание параметра. Добавьте ключевое слово .PARAMETER
для каждого параметра.
в синтаксисе функции или скрипта.
Введите имя параметра в той же строке, что и ключевое слово .PARAMETER
. Введите
описание параметра в строках, следующих за ключевым словом .PARAMETER
. Окна
PowerShell интерпретирует весь текст между .ПАРАМЕТР
строка и следующий
ключевое слово или конец блока комментария как часть описания параметра.
Описание может включать разрывы абзацев.
.ПАРАМЕТР <Имя-параметра>
Ключевые слова Parameter могут появляться в блоке комментариев в любом порядке, но синтаксис функции или скрипта определяет порядок, в котором параметры (и их описания) появляются в разделе справки. Чтобы изменить порядок, измените синтаксис.
Вы также можете указать описание параметра, разместив комментарий в синтаксис функции или скрипта непосредственно перед именем переменной параметра.Для чтобы это работало, у вас также должен быть блок комментариев, содержащий хотя бы одно ключевое слово.
Если вы используете и синтаксический комментарий, и ключевое слово .PARAMETER
, описание
связанный с ключевым словом .PARAMETER
, и комментарий синтаксиса
игнорируется.
<#
.СИНОПСИС
Краткое описание здесь
#>
function Verb-Noun {
[CmdletBinding ()]
парам (
# То же, что и .Parameter
[строка] $ Computername
)
# Глагол существительное на компьютере
}
.ПРИМЕР
Пример команды, в которой используется функция или сценарий, за которым может следовать образец вывода и описание. Повторите это ключевое слово для каждого примера.
.ВХОДЫ
Типы .NET объектов, которые могут быть переданы функции или скрипту. Вы можете также включать описание входных объектов.
. ВЫХОДЫ
Тип .NET объектов, возвращаемых командлетом. Вы также можете включить описание возвращаемых объектов.
.ПРИМЕЧАНИЯ
.Дополнительная информация о функции или скрипте.
.LINK
Название связанной темы. Значение отображается в строке под ".LINK"
ключевое слово и должно предшествовать символу комментария #
или включаться в
блок комментариев.
Повторите ключевое слово .LINK
для каждой связанной темы.
Это содержимое отображается в разделе «Ссылки по теме» раздела справки.
Содержимое ключевого слова .Link
может также включать унифицированный идентификатор ресурса.
(URI) к онлайн-версии того же раздела справки.Открывается онлайн-версия
при использовании параметра Online команды Get-Help
. URI должен начинаться с
«http» или «https».
.КОМПОНЕНТ
Название технологии или функции, которые используются функцией или сценарием, или для
который связан. Параметр Component команды Get-Help
использует это значение.
для фильтрации результатов поиска, возвращаемых Get-Help
.
.РОЛЬ
Имя роли пользователя для раздела справки.Параметр Role для Get-Help
использует это значение для фильтрации результатов поиска, возвращаемых Get-Help
.
.ФУНКЦИОНАЛЬНОСТЬ
. Ключевые слова, описывающие предполагаемое использование функции. В Функциональность параметр Get-Help
использует это значение для фильтрации поиска
результаты, возвращенные Get-Help
.
.FORWARDHELPTARGETNAME
Перенаправляет на раздел справки по указанной команде. Вы можете перенаправлять пользователей к любому разделу справки, включая разделы справки для функции, сценария, командлета или провайдер.
# .FORWARDHELPTARGETNAME <Имя-команды>
.FORWARDHELPCATEGORY
. Задает категорию справки для элемента в .ForwardHelpTargetName
. Действительный
значения: Псевдоним
, Cmdlet
, HelpFile
, Function
, Provider
, General
, FAQ
, Глоссарий
, ScriptCommand
, ExternalScript
, Фильтр
или Все
.Использовать
это ключевое слово, чтобы избежать конфликтов, когда есть команды с тем же именем.
# .FORWARDHELPCATEGORY <Категория>
.УДАЛЕННОЕ ОБОРУДОВАНИЕ
Задает сеанс, содержащий раздел справки. Введите переменную, которая содержит объект PSSession . Это ключевое слово используется Экспорт-PSSession командлет, чтобы найти разделы справки по экспортированным командам.
# .REMOTEHELPRUNSPACE
.ВНЕШНЯЯ СПРАВКА
Задает файл справки на основе XML для сценария или функции.
# .EXTERNALHELP
Ключевое слово .ExternalHelp
требуется, когда функция или сценарий задокументированы.
в файлах XML. Без этого ключевого слова Get-Help
не сможет найти справку на основе XML.
файл для функции или скрипта.
Ключевое слово .ExternalHelp
имеет приоритет над другой справкой на основе комментариев
ключевые слова. Если .ExternalHelp
присутствует, Get-Help
не отображается
справка на основе комментариев, даже если не удается найти раздел справки, соответствующий значению
ключевого слова .ExternalHelp
.
Если функция экспортируется модулем, установите значение .ExternalHelp
ключевое слово в имя файла без пути. Get-Help
ищет указанный файл
имя в подкаталоге для конкретного языка каталога модуля. Нет
требования к имени файла справки на основе XML для функции, но лучший
практика заключается в использовании следующего формата:
-help.xml
Если функция не включена в модуль, укажите путь к XML-файлу.
файл справки. Если значение включает путь, а путь содержит
Подкаталоги, зависящие от языка и региональных параметров пользовательского интерфейса, Get-Help
выполняет поиск в подкаталогах
рекурсивно для XML-файла с именем сценария или функции в
в соответствии с языковыми стандартами, установленными для Windows, просто
как это происходит в каталоге модуля.
Дополнительные сведения о формате файла справки на основе XML см. В разделе Как написать справку по командлету.
Автоматически сгенерированное содержимое
Имя, синтаксис, список параметров, таблица атрибутов параметров, общие
параметры и примечания автоматически создаются командлетом Get-Help
.
Имя
Раздел Name раздела справки по функциям взят из имени функции в синтаксис функции. Имя раздела справки скрипта взято из имя файла сценария. Чтобы изменить имя или его регистр, измените синтаксис функции или имя файла сценария.
Синтаксис
Синтаксис раздела справки создается из функции или синтаксис скрипта. Чтобы добавить подробности в синтаксис раздела справки, например, тип .NET для параметр, добавьте детали к синтаксису. Если вы не укажете параметр типа Object вставляется как значение по умолчанию.
Список параметров
Список параметров в разделе справки создается из функции или
синтаксис скрипта и описания, которые вы добавляете с помощью .Параметр
ключевое слово. Параметры функции появляются в разделе «Параметры »
раздел справки в том же порядке, в котором они появляются в функции или скрипте
синтаксис. Написание и использование заглавных букв в именах параметров также взято из
синтаксис. На него не влияет имя параметра, указанное в . Параметр
ключевое слово.
Общие параметры
Общие параметры добавлены к синтаксису и списку параметров справки. тема, даже если они не действуют.Для получения дополнительной информации об общих параметры, см. about_CommonParameters.
Таблица атрибутов параметров
Get-Help
создает таблицу атрибутов параметров, которая появляется, когда вы
используйте параметр Full или Parameter из Get-Help
. Ценность Обязательные , Позиция и Атрибуты значения по умолчанию взяты из
синтаксис функции или скрипта.
Значения по умолчанию и значение для Принять подстановочные знаки не отображаются в таблица атрибутов параметров, даже если они определены в функции или сценарий.Чтобы помочь пользователям, укажите эту информацию в описании параметра.
Замечания
Примечания раздела справки автоматически создается из имя функции или скрипта. Вы не можете изменять или влиять на его содержание.
Примеры
Справка для функции на основе комментариев
Следующий пример функции включает справку на основе комментариев:
функция Add-Extension
{
param ([строка] $ Имя, [строка] $ Extension = "txt")
$ name = $ name + "."+ $ расширение
$ name
<#
.СИНОПСИС
Добавляет расширение имени файла к указанному имени.
.ОПИСАНИЕ
Добавляет расширение имени файла к указанному имени.
Принимает любые строки в качестве имени или расширения файла.
.PARAMETER Имя
Задает имя файла.
.PARAMETER Расширение
Задает расширение. По умолчанию используется «Txt».
.ВХОДЫ
Никто. Вы не можете передать объекты в Add-Extension.
ВЫХОДЫ
System.String. Add-Extension возвращает строку с расширением
или имя файла.
.ПРИМЕР
PS> расширение-имя "Файл"
Файл.текст
.ПРИМЕР
PS> extension -name "File" -extension "doc"
File.doc
.ПРИМЕР
PS> расширение "Файл" "doc"
File.doc
.ССЫЛКА
http://www.fabrikam.com/extension.html
.ССЫЛКА
Set-Item
#>
}
Результаты следующие:
Get-Help -Name "Add-Extension" -Full
НАЗВАНИЕ
Добавить расширение
ОБЗОР
Добавляет расширение имени файла к указанному имени.
СИНТАКСИС
Добавить расширение [[-Name] ] [[-Extension] ]
[<Общие параметры>]
ОПИСАНИЕ
Добавляет расширение имени файла к указанному имени.Принимает любые струны для
имя или расширение файла.
ПАРАМЕТРЫ
-Имя
Задает имя файла.
Необходимый? ложный
Позиция? 0
Значение по умолчанию
Принять ввод трубопровода? ложный
Принимать подстановочные знаки?
-Расширение
Задает расширение. По умолчанию используется «Txt».
Необходимый? ложный
Позиция? 1
Значение по умолчанию
Принять ввод трубопровода? ложный
Принимать подстановочные знаки?
<Общие параметры>
Этот командлет поддерживает общие параметры: -Verbose, -Debug,
-ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
-OutBuffer и -OutVariable.Для получения дополнительной информации введите
"получить-справку about_commonparameters".
ВХОДЫ
Никто. Вы не можете передать объекты в Add-Extension.
ВЫХОДЫ
System.String. Add-Extension возвращает строку с расширением или
имя файла.
Пример 1
PS> расширение-имя "Файл"
File.txt
Пример 2
PS> extension -name "File" -extension "doc"
File.doc
Пример 3
PS> расширение "Файл" "doc"
File.doc
ССЫЛКИ ПО ТЕМЕ
http://www.fabrikam.com/extension.html
Set-Item
Описание параметров в синтаксисе функций
Этот пример аналогичен предыдущему, за исключением того, что параметр описания вставляются в синтаксис функции.Этот формат наиболее полезен когда описания краткие.
функция Add-Extension
{
парам
(
[нить]
# Задает имя файла.
$ имя,
[нить]
# Указывает расширение имени файла. По умолчанию используется «Txt».
$ extension = "txt"
)
$ name = $ name + "." + $ расширение
$ name
<#
.СИНОПСИС
Добавляет расширение имени файла к указанному имени.
.ОПИСАНИЕ
Добавляет расширение имени файла к указанному имени. Принимает любые струны для
имя или расширение файла.
.ВХОДЫ
Никто. Вы не можете передать объекты в Add-Extension.ВЫХОДЫ
System.String. Add-Extension возвращает строку с расширением или
имя файла.
.ПРИМЕР
PS> расширение-имя "Файл"
File.txt
.ПРИМЕР
PS> extension -name "File" -extension "doc"
File.doc
.ПРИМЕР
PS> расширение "Файл" "doc"
File.doc
.ССЫЛКА
http://www.fabrikam.com/extension.html
.ССЫЛКА
Set-Item
#>
}
Справка для сценария на основе комментариев
Следующий пример сценария включает справку на основе комментариев. Обратите внимание на пустые строки
между закрывающим #>
и заявлением Param
.В сценарии, который не
имеют оператор Param
, между ними должно быть не менее двух пустых строк.
последний комментарий в разделе справки и первое объявление функции. Без
эти пустые строки, Get-Help
связывает раздел справки с функцией, а не
сценарий.
<#
.СИНОПСИС
Выполняет ежемесячное обновление данных.
.ОПИСАНИЕ
Сценарий Update-Month.ps1 обновляет реестр новыми сгенерированными данными.
за последний месяц и формирует отчет.
.PARAMETER InputPath
Задает путь к входному файлу на основе CSV..PARAMETER Путь вывода
Задает имя и путь к выходному файлу на основе CSV. По умолчанию,
MonthlyUpdates.ps1 генерирует имя на основе даты и времени его запуска, и
сохраняет вывод в локальном каталоге.
.ВХОДЫ
Никто. Вы не можете передать объекты в Update-Month.ps1.
ВЫХОДЫ
Никто. Update-Month.ps1 не генерирует никаких выходных данных.
.ПРИМЕР
PS>. \ Update-Month.ps1
.ПРИМЕР
PS>. \ Update-Month.ps1 -inputpath C: \ Data \ January.csv
.ПРИМЕР
PS>. \ Update-Month.ps1 -inputpath C: \ Data \ January.csv -outputPath `
C: \ Reports \ 2009 \ January.csv
#>
param ([строка] $ InputPath, [строка] $ OutPutPath)
функция Get-Data {}
...
Следующая команда получает справку по сценарию. Поскольку сценарий не находится в
каталог, указанный в переменной среды $ env: Path
, Get-Help
Команда, которая получает справку по сценарию, должна указывать путь к сценарию.
Get-Help -Path. \ Update-month.ps1 -Full
# ИМЯ
C: \ ps-test \ Update-Month.ps1
# ОБЗОР
Выполняет ежемесячное обновление данных.
# СИНТАКСИС
C: \ ps-test \ Update-Month.ps1 [-InputPath] [[-OutputPath]
] []
# ОПИСАНИЕ
Скрипт Update-Month.ps1 обновляет реестр новыми данными.
генерируется за последний месяц и формирует отчет.
# ПАРАМЕТРЫ
-InputPath
Задает путь к входному файлу на основе CSV.
Необходимый? правда
Позиция? 0
Значение по умолчанию
Принять ввод трубопровода? ложный
Принимать подстановочные знаки?
-OutputPath
Задает имя и путь к выходному файлу на основе CSV.К
по умолчанию MonthlyUpdates.ps1 генерирует имя по дате
и время его запуска, и сохраняет вывод в локальном каталоге.
Необходимый? ложный
Позиция? 1
Значение по умолчанию
Принять ввод трубопровода? ложный
Принимать подстановочные знаки?
<Общие параметры>
Этот командлет поддерживает общие параметры: -Verbose, -Debug,
-ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
-OutBuffer и -OutVariable. Для получения дополнительной информации введите,
"получить-справку about_commonparameters".# ВХОДОВ
Никто. Вы не можете передать объекты в Update-Month.ps1.
# ВЫХОДОВ
Никто. Update-Month.ps1 не генерирует никаких выходных данных.
Пример 1
PS>. \ Update-Month.ps1
Пример 2
PS>. \ Update-Month.ps1 -inputpath C: \ Data \ January.csv
Пример 3
PS>. \ Update-Month.ps1 -inputpath C: \ Data \ January.csv -outputPath
C: \ Reports \ 2009 \ January.csv
# ССЫЛКИ ПО ТЕМЕ
Перенаправление в файл XML
Вы можете написать разделы справки на основе XML для функций и сценариев. Несмотря на то что справку на основе комментариев проще реализовать, справка на основе XML требуется для Обновляемая справка и предоставление разделов справки на нескольких языках.
В следующем примере показаны первые несколько строк сценария Update-Month.ps1.
Сценарий использует ключевое слово .ExternalHelp
для указания пути к XML-файлу.
раздел помощи по скрипту.
Обратите внимание, что значение ключевого слова .ExternalHelp
появляется в том же
строка в качестве ключевого слова. Любое другое размещение неэффективно.
# .ExternalHelp C: \ MyScripts \ Update-Month-Help.xml
param ([строка] $ InputPath, [строка] $ OutPutPath)
функция Get-Data {}
...
В следующих примерах показаны три допустимых размещения .ExternalHelp
ключевое слово в функции.
функция Add-Extension
{
# .ExternalHelp C: \ ps-test \ Add-Extension.xml
param ([строка] $ имя, [строка] $ extension = "txt")
$ name = $ name + "." + $ расширение
$ name
}
функция Add-Extension
{
param ([строка] $ имя, [строка] $ extension = "txt")
$ name = $ name + "." + $ расширение
$ name
# .ExternalHelp C: \ ps-test \ Add-Extension.xml
}
# .ExternalHelp C: \ ps-test \ Add-Extension.xml
функция Add-Extension
{
param ([строка] $ имя, [строка] $ extension = "txt")
$ name = $ name + "." + $ расширение
$ name
}
Перенаправление к другому разделу справки
Следующий код представляет собой отрывок из начала встроенной справки.
в PowerShell, которая отображает по одному экрану текста справки за раз.
Поскольку раздел справки для командлета Get-Help
описывает функцию справки,
функция справки использует .ForwardHelpTargetName
и . ForwardHelpCategory
ключевые слова для перенаправления пользователя к разделу справки по командлету Get-Help
.
функция справки
{
<#
.FORWARDHELPTARGETNAME Get-Help
.FORWARDHELPCATEGORY Командлет
#>
[CmdletBinding (DefaultParameterSetName = 'AllUsersView')]
парам (
[Параметр (Position = 0, ValueFromPipelineByPropertyName = $ true)]
[System.String]
$ {Name},
...
Эту функцию использует следующая команда:
Get-Help -Name help
НАЗВАНИЕ
Получить помощь
ОБЗОР
Отображает информацию о командлетах и концепциях PowerShell....
См. Также
about_Functions
about_Functions_Advanced_Parameters
about_Scripts
Как написать справку по командлету
комментариев PowerShell - Javatpoint
Если вы хотите помочь другим, предоставив информацию о коде, вы должны использовать комментарии в этом коде.
Как и в случае с другими языками программирования или сценариями, вы можете оставлять комментарии в PowerShell для целей документации.
В PowerShell есть два типа комментариев:
- Однострочный комментарий
- Многострочный комментарий или блок комментариев
Однострочный комментарий
Однострочные комментарии - это те комментарии, в которых вы можете ввести хэш-код символ # в начале каждой строки. Все, что находится справа от символа решетки, будет проигнорировано. Если вы пишете несколько строк в сценарии, вам нужно было использовать хэш-символ # в начале каждой строки.
Синтаксис однострочного комментария
Ниже приведены два синтаксиса однострочного комментария:
Синтаксис 1:
<Любая команда или оператор> # <Любой комментарий>
Синтаксис 2:
# <Любой комментарий> <Любая команда или инструкция>
Примеры
Example1: В этом примере показано, как использовать комментарий в конце строки
PS C: \> get-childitem # эта команда отображает дочерние элементы диска C:
Example2: В этом примере показано, как использовать комментарий перед кодом и в конце любого оператора.
PS C: \> # Этот код используется для печати четных чисел от 1 до 10 PS C: \> for ($ i = 1; $ i -le 10; $ i ++) # Этот оператор цикла инициализирует переменную с 1 и увеличить до 10. >> { >> $ x = $ i% 2 >> if ($ x -eq 0) # Условие if проверяет, что значение переменной x равно 0, если да, то выполнить, если тело >> { >> echo $ i # Этот оператор печатает число, которое делится на 2 >>} >>}
Вывод:
Многострочный комментарий
с PowerShell 2.0 или выше, добавлены многострочные комментарии или комментарии к блокам. Чтобы прокомментировать несколько строк, поместите символ < # в начало первой строки и символ #> в конец последней строки.
Синтаксис многострочного комментария
Следующий блок отображает синтаксис многострочного комментария:
<# Многострочный комментарий ......... ......... .................... #> Заявление-1 Заявление-2 Заявление-N
Пример: В следующем примере описывается, как использовать многострочный комментарий в коде.
PS C: \> <# Этот код используется для печати >> факториал данного числа #> PS C: \> $ a = 5 PS C: \> $ fact = 1 PS C: \> для ($ i = $ a; $ i -ge 1; $ i--) >> { >> $ fact = $ fact * $ i; >>}
Введите следующую команду, чтобы отобразить результат приведенного выше примера:
Get-Help! Использование справки на основе комментариев в сценариях PowerShell
Наверняка вы уже используете комментарии в сценариях PowerShell, и наверняка вас тоже раздражали сценарии без комментариев.
Комментарии в сценариях PowerShell позволяют документировать определенные процессы непосредственно в коде. Кроме того, к фрагментам кода могут быть добавлены дополнительные примечания - например, если функция должна быть расширена дополнительными функциями.
Но помимо этого чисто информационного содержания, комментарии в PowerShell при правильном использовании могут быть использованы для справочных статей о ваших функциях. В этой статье я покажу вам, как использовать метаданные для получения информации о скрипте с помощью Get-Help .
Ключевые слова справки на основе комментариев
Волшебное слово для нашего проекта - справка на основе комментариев.
Как следует из названия, этот метод позволяет нам генерировать справочную информацию с помощью комментариев. Эти комментарии должны быть правильно расположены и отформатированы - вы узнаете, как именно, в этом разделе.
В принципе, мы можем различать два типа: справка на основе комментариев для функций и для скриптов. Первый идет на один уровень глубже и начинается с функций, которые мы хотим предоставить с метаданными. Однако, если ваш код не подготовлен в функциях, можно также предоставить эту информацию целому сценарию.
Прежде чем мы посмотрим на их точное использование, я перечисляю все ключевые слова для справки на основе комментариев здесь:
КЛЮЧЕВОЕ СЛОВО | ФУНКЦИЯ |
ОБЗОР | Краткое описание скрипта или функции |
ОПИСАНИЕ | Подробное описание кода |
ПАРАМЕТР | Описание используемого параметра. Ключевое слово используется несколько раз (1x на параметр).Параметр должен быть назван дополнительно после ключевого слова! |
ВХОДЫ | Описание возможных объектов, которые могут быть переданы в функцию через конвейер. |
ВЫХОДЫ | Выходные значения функции |
ПРИМЕЧАНИЯ | Дополнительная информация по коду |
ССЫЛКА | URL-адрес соответствующей интерактивной справки (при наличии) |
Чтобы не выходить за рамки данной статьи, я ограничу список ключевыми словами, которые используются наиболее часто.Вы можете найти больше ключевых слов в Microsoft Docs.
Примечание. Информация заголовка сценария также играет важную роль при использовании сценариев на программной платформе ScriptRunner. Подробнее об этом можно прочитать здесь: Заголовки и параметры сценария PowerShell для использования в ScriptRunner.
Использование справки на основе комментариев
Перечисленные выше ключевые слова обозначены в коде в определенном формате. Это выглядит так:
Обозначение ключевых слов и содержимого справки в заголовке сценария PowerShell
Ключевые слова начинаются с точки - соответствующий текст помещается под ключевым словом.Блок ключевых слов закомментирован с помощью «<##>».
Сценарии и функции на основе комментариев различаются тем, что блок комментариев размещается по-другому. Для функций лучше всего размещать блок под именем функции. Другие возможности - разместить блок непосредственно перед функцией (без пустой строки) или в конце тела функции.
Если скрипты должны быть снабжены информацией, блок комментариев устанавливается непосредственно в начале кода - логически, тогда он также содержит информацию о скрипте в целом, а не о частичных разделах.
Пример и использование справки на основе комментариев
Далее мы покажем, как справку на основе комментариев можно использовать на практике с помощью функции, которая выводит все объекты каталога и файла определенного каталога до определенной глубины иерархии.
PowerShell уже предоставляет эту функцию - следующий пример служит только для понимания.
Пример функции
Теперь цель состоит в том, чтобы описать функциональные возможности с помощью описаний, примеров и информации о параметрах в справочной статье.
Метаданные в заголовке функции
В этом коде написан целостный справочный комментарий. При вызове Get-Help этой информации мы теперь получаем в консоли следующий вывод:
Вывод Get-Help Get-ChildItemDepth
Параметр -Examples также может использоваться для вывода всех доступных примеров:
Вывод примеров, хранящихся в скрипте
Совет. Дополнительные примеры сценариев, созданных в соответствии с передовыми практиками PowerShell, можно найти в наших пакетах действий ScriptRunner.
Заключение
В принципе, можно сказать, что справка на основе комментариев дает большие преимущества ИТ-отделам. Вы можете не только получить быстрый обзор встроенных функций самостоятельно, но и коллегам не придется пробиваться сквозь многочисленные строки кода, чтобы угадать базовую функциональность.
Из-за своей ограниченной длины имя скрипта может лишь приблизительно указывать на функцию скрипта без возможности вдаваться в подробную информацию. Такой способ создания справки также избавляет от необходимости внешней документации кода.
Если существует базовая политика или кодекс поведения, которые явно требуют использования этих разделов справки, я настоятельно рекомендую модуль Pester. Его можно настроить для проверки кода на наличие справочных статей перед каждым выпуском. Вы даже можете проверить, есть ли описание у каждого параметра.
Ссылки по теме
Категория: Все категории
Старую вики нужно было обновить, и она была воспроизведена в основном как статический HTML здесь, на новом веб-сервере.Возможно, вы использовали функцию MediaWiki, которая больше не доступна.
Попробуйте выполнить поиск на веб-сайте с помощью прямого поиска на веб-сайте или просмотрите категории. Старый воспроизводимую версию главной страницы вики можно найти здесь
Google Пользовательский поиск только этого веб-сайта
Категория: Все Категории- Взгляд на паевой инвестиционный фонд KLP AksjeNorden Index
- A_primitive_hex_version_the_seq_gnu_utility, _written_in_perl
- Accessing_the_Bing_Search_API_v5_using_PowerShell
- Accessing_the_Google_Custom_Search_API_using_PowerShell
- Active_directory_password_expiration_notification
- Aksje -, _ fonds-_og_ETF-utbytterapportgenerator_for_Nordnet-transaksjonslogg
- Ascii_art_characters_powershell_script
- Автоматически_delete_old_IIS_logs_with_PowerShell
- Биткойн _-_ and_Why_It_Has_Value
- Calculate_and_enumerate_subnets_with_PSipcalc
- Calculate_the_trend_for_financial_products_based_on_close_rates
- Check_for_open_TCP_ports_using_PowerShell
- Check_if_an_AD_user_exists_with_Get-ADUser
- Check_when_servers_were_last_patched_with_Windows_Update_via_COM_or_WSUS
- Compiling_or_packaging_an_executable_from_perl_code_on_windows
- Convert_between_Windows_and_Unix_epoch_with_Python_and_Perl
- Convert_file_encoding_using_linux_and_iconv
- Convert_from_most_encodings_to_utf8_with_powershell
- ConvertTo-Json_for_PowerShell_version_2
- Create_cryptographically_secure_and_pseudorandom_data_with_PowerShell
- Deep_copying_arrays_and_objects_in_PowerShell
- Detect_duplicate_Windows_DNS_PTR_records_with_PowerShell
- Disable_cursor_blinking_in_Komodo_ (править) _with_a_JavaScript_macro
- Everything_about_determining_your_PowerShell_version
- Find_last_boot_up_time_of_remote_Windows_computers_using_WMI
- Get_Folder_Size_with_PowerShell, _Blazingly_Fast
- Get_Linux_disk_space_report_in_PowerShell
- Get-Weather_cmdlet_for_PowerShell, _using_the_OpenWeatherMap_API
- Get-wmiobject_wrapper
- Получение_компьютера_информации_using_powershell
- Получение_моделей_компьютера_в_а_домене_using_Powershell
- Получение_имя_компьютера_из_AD_using_Powershell
- Получение_имя_пользователя_from_active_directory_with_powershell
- Gnu_seq_on_steroids_with_hex_support_and_descending_ranges
- Have_PowerShell_trigger_an_action_when_CPU_or_memory_usage_reaches_ specific_values
- Исторический_взор_индекса_SnP_500_с 1927 г., _когда_корона_в_существенном_средне-марте_2020 г.
- How_to_check_perl_module_version
- How_to_list_all_AD_computer_object_properties
- Import_PFX_certificates_on_remote_servers_ (совместим с PSv2)
- Invoke-PsExec_for_PowerShell
- Linux_squid_proxy_url_rewriting_or_redirection
- List_and_validate_IPv4_subnet_masks_using_PowerShell
- List_installed_.NET_versions_on_remote_computers
- Главная страница
- Manage_local_group_membership_on_remote_servers_with_PowerShell
- Manually_parse_CSV_with_escaped_delimiters
- Mdt_the_unattend_answer_file_contains_an_invalid_product_key
- Merge_CSV_files_or_PSObjects_in_PowerShell
- Microsoft_deployment_tools_vmware_xp_amd_pcnet_nic_missing
- Мои_Песни
- Parse_openssl_certificate_date_output_into_.NET_DateTime_objects
- Parse_PsLoggedOn.exe_Output_with_PowerShell
- Parse_schtasks.exe_Output_with_PowerShell
- Perl_on_windows
- Port_scan_subnets_with_PSnmap_for_PowerShell
- PowerShell_.NET_regex_to_validate_IPv6_address_ (соответствует RFC)
- PowerShell_benchmarking_module_built_around_Measure-Команда
- Powershell_change_the_wmi_timeout_value
- PowerShell_check_if_file_exists
- Powershell_check_if_folder_exists
- PowerShell_Cmdlet_for_Splitting_an_Array
- PowerShell_Executables_File_System_Locations
- PowerShell_foreach_loops_and_ForEach-Object
- PowerShell_Get-MountPointData_Cmdlet
- PowerShell_Java_Auto-Update_Script
- Powershell_multi-line_comments
- Powershell_prompt_for_password_convert_securestring_to_plain_text
- Powershell_psexec_wrapper
- PowerShell_regex_to_accurately_match_IPv4_address_ (0-255_only)
- Powershell_regular_expressions
- Powershell_split_operator
- Powershell_vs_perl_at_text_processing
- PS2CMD _-_ embed_PowerShell_code_in_a_batch_file
- Quest_ActiveRoles_Management_Shell_Download
- Remote_control_mom_via_PowerShell_and_TeamViewer
- Remove_empty_elements_from_an_array_in_PowerShell
- Remove_first_or_last_n_characters_from_a_string_in_PowerShell
- Rename_unix_utility _-_ windows_port
- Renaming_files_using_PowerShell
- Running_perl_one-liners_and_scripts_from_powershell
- Автономный_batch_file_with_perl_code
- Простой скрипт отчета о фонде Morningstar
- Сортировка_а_список_компьютеров_по_домену_первому_и_ потом_имя, _использование_owerShell
- Sort_strings_with_numbers_more_humanely_in_PowerShell
- SSH_from_PowerShell_using_the_SSH.NET_library
- SSH-Sessions_Add-on_with_SCP_SFTP_Support
- Статический_взаимный_фонд_портфель_последний_2_год_вверх_43_процента
- STOXR _-_ Currency_Conversion_Software _-_ Open_Exchange_Rates_API
- Терье Бобле Эрикстад
- Test_PowerShell_Remoting_Cmdlet
- The_PowerShell_for_loop
- The_PowerShell_Where-Object_cmdlet
- University_of_Winnipeg's_Theoryx_ppm_repository_for_ActivePerl
- Using_Runspaces_for_Concurrency_In_PowerShell
- Using_the_Microsoft_Translator_API_from_PowerShell
Категории
.NET
AD
Все категории
Асинхронный
Автоматизация
Пакетный
Поиск Bing
BIOS
Биткойн
CIM
Корона
Использование ЦП
Криптография
CSV
Валюта
Конвертация валюты
Программа для конвертации валют Google Finchans
DowJones
Harmony
High-level_nonsense
Idiocy
IIS
Java
JavaScript
JSON
Linux
Math
Использование памяти
Инструменты развертывания Microsoft
Музыка
NASDAQ
Сеть
Nordnet
openssl
Perl
PSTersools
PowerShell
SCP
SFTP
SnP500
Сортировка
SSH
SSH.NET
String
Threads
Trend
VMware
Weather
Windows
Windows Deployment Services
Windows Update
WMI
WSUS
Если вы хотите вознаградить мои усилия
Пошаговый подход Как написать справку на основе комментариев для сценариев PowerShell и CmdLets - улучшить сценарии
Справка PowerShell для функций, CmdLets и сценариев может быть написана:
- внутренне как справка на основе комментариев в сценарии.
- внешне в виде файла XML, и это требуется для обновляемой справки.
В этой статье я описываю, как написать внутреннюю справку PowerShell в виде справки на основе комментариев , что лично я предпочитаю.
Прежде чем мы начнем писать собственные справочные материалы, давайте сначала посмотрим, как мы можем получить справку PowerShell для некоторых CmdLet и что мы с ней получаем. Если вы хотите сразу перейти к шагам, прочтите этот подзаголовок Как написать справку по PowerShell, шаг за шагом
Как отобразить содержимое справки для CmdLet PowerShell, функций и прочего
Чтобы получить помощь в PowerShell, мы используем следующие параметры:
Get-Help Get-Service
- help функция для одновременного отображения одной страницы содержимого справки
help Get-Service
- man - это просто псевдоним для функции справки
человек Get-Service
Get-Service -?
Все предыдущие примеры дадут тот же результат, что и на скриншоте ниже.Содержание справки для Get-Service CmdLet
Обратите внимание, что в результате на скриншоте выше у нас есть несколько разделов:
- NAME,
- SYNOPSIS,
- SYNTAX,
- DESCRIPTION,
- RELATED LINKS,
- REMARKS.
Некоторые из разделов автоматически сгенерированы (объяснены в шаге 12 пошагового руководства), а некоторые из них могут быть написаны авторами справки на основе комментариев, объясненных в разделе Как написать пошаговую справку по PowerShell .
Также обратите внимание, что у нас есть несколько параметров переключения для результатов справки, которые определяют уровень подробностей, которые справка покажет нам в результате (я показал каждый параметр в следующем разделе Примеры содержимого справки собственных CmdLets):
- По умолчанию
- Примеры
- Подробные
- Полная
- Онлайн
Get-Help Get-Service-Примеры
Get-Help Get-Service -Подробно
Get-Help Get-Service -Full
Get-Help Get-Service -Online
Если вы хотите получить справку по сценарию, используйте параметр Path и укажите местоположение файла сценария, как в этом примере:
Get-Help -Path "C: \ Temp \ GetCPUInfo.ps1 "-Full
Я создал Бесплатная электронная книга « Самые ПОЛЕЗНЫЕ CmdLets PowerShell и многое другое… » со списком рекомендуемых чтений из справочной системы PowerShell и списком полезных команд и функций PowerShell. не стесняйтесь загружать его отсюда и дайте мне знать, что вы думаете, чтобы я мог сделать его еще более полезным
Вы когда-нибудь задумывались, можно ли получить помощь с таким же ощущением и взглядом в ваших собственных CmdLet и скриптах? Так просто Ответ: да, это возможно, и я покажу вам, как это сделать, в следующих разделах.
Примеры собственного содержимого справки CmdLets
В этом примере я буду использовать свой собственный Get-CPUInfo CmdLet, который является частью проекта PowerShell для повышения эффективности. Этот проект представляет собой библиотеку CmdLets, которая помогает нам, ИТ-специалистам, эффективно выполнять наши повседневные ИТ-задачи.
Пожалуйста, загрузите исходный код из zip-файла, чтобы вы могли легко следить за мной.
Позвольте мне быстро показать вам несколько примеров моего собственного содержимого справки CmdLet и какие из разделов мы получаем, используя различные параметры переключателя.
Пример 1 - Справка на основе комментариев по умолчанию
Get-Help Get-CPUInfo
Вот результат вызова справки для моего собственного CmdLet и обратите внимание, что мы получаем те же разделы, что и в предыдущем примере (с Get- Service CmdLet): Имя , Краткое описание , Синтаксис , Описание , Ссылки по теме и Примечания . Содержание справки на основе команд по умолчанию
Пример 2 - Подробная справка на основе комментариев
Давайте попробуем еще один пример с чуть более подробной информацией в результате помощи.
Get-Help Get-CPUInfo -Detailed
Мы получаем эти разделы дополнительно: Параметры и Примеры . Подробная справка на основе комментариев с двумя дополнительными разделами: Параметры и Примеры
Пример 3 - Полный Справка на основе комментариев
Давайте попробуем вариант с полным объяснением справки для CmdLet
Get-Help Get-CPUInfo -Full
Обратите внимание, что мы получаем дополнительные данные: Дополнительные данные в разделе параметров ( Требуется? , Позиция? , Значение по умолчанию , Принять ввод конвейера? и Принять подстановочный знак? ), Входы и Дополнительно выводятся разделы .Полная справка на основе комментариев с дополнительной информацией в разделе параметров Полная справка на основе комментариев с дополнительными входными и выходными разделами
Пример 4 - Пример справки на основе комментариев
Если мы хотим сосредоточиться на примерах вызовов CmdLet, мы используем пример параметра .
Get-Help Get-CPUInfo -Example
Обратите внимание, мы получаем Name , Synopses и Примеры разделов. Примеры Справка на основе комментариев
Пример 5 - Справка на основе комментариев к параметрам
Если мы хотим чтобы получить справочную информацию только для определенного параметра, мы используем следующий синтаксис:
Get-Help Get-CPUInfo -Parameter computers
Вот содержимое справки для параметра « computers »: Справка на основе комментариев к параметру
Как видите, мой собственный CmdLet имеет результат справки, который по ощущениям и внешнему виду такой же, как и CmdLet Microsoft PowerShell, поставляемый с PowerShell, но как мы этого добились? Что ж, просто продолжайте читать, и я вам именно это покажу.
Справка на основе комментариев PowerShell - Советы
Мы всего в одном шаге от пошагового руководства, но прежде чем я покажу вам, что я хотел бы дать вам несколько советов, которые могут помочь вам ускорить процесс:
СОВЕТ 1 : Для более эффективного написания CmdLet Help существует надстройка PowerShell ISE New-CommentBlock CmdLet, написанная и объясненная в этой статье. Это требует небольшой дополнительной работы, но я думаю, что в конечном итоге это окупится, поэтому я настоятельно рекомендую прочитать статью и реализовать код.
СОВЕТ 2 : Используйте шаблон справки PowerShell на основе комментариев, который я написал для вас, чтобы вы не начинали с нуля, как показано в пошаговом руководстве. Вы можете заполнить шаблон, следуя пошаговой инструкции.
Как написать справку PowerShell, шаг за шагом
Вот шаги, которые я выполняю, когда хочу создать справку на основе комментариев для моих собственных CmdLets.
Шаг 1: Создайте блок комментариев , начиная с <# и заканчивая #> в области, созданной на предыдущем шаге.
<#
#>
Шаг 2: В блоке комментариев мы повторим серьезные ключевые слова помощи, используя этот шаблон:
.Help_Keyword
Текст справки
Шаг 3: ОБОЗНАЧЕНИЯ Ключевое слово - это краткое описание функции или сценария, которое может использоваться только один раз.
<#
.СИНОПСИС
Получите информацию о процессоре для списка компьютеров.
#>
Шаг 4: ОПИСАНИЕ Ключевое слово - это более длинное и подробное описание функции или скрипта, которое также может использоваться только один раз.
<#
.СИНОПСИС
Получите информацию о процессоре для списка компьютеров.
.ОПИСАНИЕ
Получает информацию о ЦП для списка серверов.
Список серверов находится в txt файле в папке 01servers или в списке строк с именами компьютеров.
CmdLet имеет два ParameterSet: один для списка компьютеров из файла, а другой из списка строк в качестве имен компьютеров.
#>
Шаг 5: Ключевое слово PARAMETER объясняет каждый параметр в синтаксисе функции или скрипта. Повторите это ключевое слово столько раз, сколько есть у функции или скрипта параметров.
<#
.СИНОПСИС
Получите информацию о процессоре для списка компьютеров.
.ОПИСАНИЕ
Получает информацию о ЦП для списка серверов.
Список серверов находится в txt файле в папке 01servers или в списке строк с именами компьютеров.
CmdLet имеет два ParameterSet: один для списка компьютеров из файла, а другой из списка строк в качестве имен компьютеров.
.PARAMETER компьютеры
Список компьютеров, с которых мы хотим получить информацию о процессоре. Параметр принадлежит к стандартному набору параметров = ServerNames.
.PARAMETER имя файла
Имя txt файла со списком серверов, которые мы хотим проверить CPUInfo.Файл .txt должен находиться в папке 01servers.
Параметр принадлежит набору параметров = FileName.
.PARAMETER журнал ошибок
Параметр переключения, который устанавливает, записывать в журнал или не записывать в журнал. Файл с ошибкой находится в папке PSLog с именем Error_Log.txt.
.PARAMETER клиент
ОК - О клиент
БК - Б клиент
и т.п.
.PARAMETER решение
FIN - Финансовое решение
HR - Кадровое решение
и т.п.
#>
Шаг 6: ПРИМЕР Ключевое слово - это пример команды, которая использует функцию или сценарий, и ее следует повторять для каждого примера, который мы хотим описать.
СОВЕТ : Я использую следующий шаблон и просто повторяю его для каждого примера, который хочу представить:
. ПРИМЕР
<"Пример кода">
Описание
---------------------------------------
<"Пояснение к примеру">
<#
.СИНОПСИС
Получите информацию о процессоре для списка компьютеров.
.ОПИСАНИЕ
Получает информацию о ЦП для списка серверов.
Список серверов находится в txt файле в папке 01servers или в списке строк с именами компьютеров.
CmdLet имеет два ParameterSet: один для списка компьютеров из файла, а другой из списка строк в качестве имен компьютеров..PARAMETER компьютеры
Список компьютеров, с которых мы хотим получить информацию о процессоре. Параметр принадлежит к стандартному набору параметров = ServerNames.
.PARAMETER имя файла
Имя txt файла со списком серверов, которые мы хотим проверить CPUInfo. Файл .txt должен находиться в папке 01servers.
Параметр принадлежит набору параметров = FileName.
.PARAMETER журнал ошибок
Параметр переключения, который устанавливает, записывать в журнал или не записывать в журнал. Файл с ошибкой находится в папке PSLog с именем Error_Log.txt.
.PARAMETER клиент
ОК - О клиент
БК - Б клиент
и т.п..PARAMETER решение
FIN - Финансовое решение
HR - Кадровое решение
и т.п.
.ПРИМЕР
Get-CPUInfo -client «ОК» -решение «FIN»
Описание
---------------------------------------
Проверка параметра по умолчанию со значением по умолчанию (компьютеры = 'localhost') в ParameterSet по умолчанию = ServerName.
.ПРИМЕР
Get-CPUInfo -client "OK" -solution "FIN" -Verbose
Описание
---------------------------------------
Тест параметра Verbose. ПРИМЕЧАНИЕ. Обратите внимание на то, как значение по умолчанию для параметра «компьютеры» localhost заменяется именем сервера.#>
Шаг 7: Ключевое слово INPUTS описывает типы объектов, которые могут быть переданы функции или скрипту.
<#
.СИНОПСИС
Получите информацию о процессоре для списка компьютеров.
.ОПИСАНИЕ
Получает информацию о ЦП для списка серверов.
Список серверов находится в txt файле в папке 01servers или в списке строк с именами компьютеров.
CmdLet имеет два ParameterSet: один для списка компьютеров из файла, а другой из списка строк в качестве имен компьютеров.
.PARAMETER компьютеры
Список компьютеров, с которых мы хотим получить информацию о процессоре.Параметр принадлежит к стандартному набору параметров = ServerNames.
.PARAMETER имя файла
Имя txt файла со списком серверов, которые мы хотим проверить CPUInfo. Файл .txt должен находиться в папке 01servers.
Параметр принадлежит набору параметров = FileName.
.PARAMETER журнал ошибок
Параметр переключения, который устанавливает, записывать в журнал или не записывать в журнал. Файл с ошибкой находится в папке PSLog с именем Error_Log.txt.
.PARAMETER клиент
ОК - О клиент
БК - Б клиент
и т.п.
.PARAMETER решение
FIN - Финансовое решение
HR - Кадровое решение
и т.п..ПРИМЕР
Get-CPUInfo -client «ОК» -решение «FIN»
Описание
---------------------------------------
Проверка параметра по умолчанию со значением по умолчанию (компьютеры = 'localhost') в ParameterSet по умолчанию = ServerName.
.ПРИМЕР
Get-CPUInfo -client "OK" -solution "FIN" -Verbose
Описание
---------------------------------------
Тест параметра Verbose. ПРИМЕЧАНИЕ. Обратите внимание на то, как значение по умолчанию для параметра «компьютеры» localhost заменяется именем сервера.
.ВХОДЫ
System.String
#>
Шаг 8: OUTPUTS Ключевое слово описывает тип объектов, возвращаемых CmdLet.
<#
.СИНОПСИС
Получите информацию о процессоре для списка компьютеров.
.ОПИСАНИЕ
Получает информацию о ЦП для списка серверов.
Список серверов находится в txt файле в папке 01servers или в списке строк с именами компьютеров.
CmdLet имеет два ParameterSet: один для списка компьютеров из файла, а другой из списка строк в качестве имен компьютеров.
.PARAMETER компьютеры
Список компьютеров, с которых мы хотим получить информацию о процессоре. Параметр принадлежит к стандартному набору параметров = ServerNames.
.PARAMETER имя файла
Имя txt файла со списком серверов, которые мы хотим проверить CPUInfo.Файл .txt должен находиться в папке 01servers.
Параметр принадлежит набору параметров = FileName.
.PARAMETER журнал ошибок
Параметр переключения, который устанавливает, записывать в журнал или не записывать в журнал. Файл с ошибкой находится в папке PSLog с именем Error_Log.txt.
.PARAMETER клиент
ОК - О клиент
БК - Б клиент
и т.п.
.PARAMETER решение
FIN - Финансовое решение
HR - Кадровое решение
и т.п.
.ПРИМЕР
Get-CPUInfo -client «ОК» -решение «FIN»
Описание
---------------------------------------
Проверка параметра по умолчанию со значением по умолчанию (компьютеры = 'localhost') в ParameterSet по умолчанию = ServerName..ПРИМЕР
Get-CPUInfo -client "OK" -solution "FIN" -Verbose
Описание
---------------------------------------
Тест параметра Verbose. ПРИМЕЧАНИЕ. Обратите внимание на то, как значение по умолчанию для параметра «компьютеры» localhost заменяется именем сервера.
.ВХОДЫ
System.String
ВЫХОДЫ
System.Management.Automation.PSCustomObject
#>
Шаг 9: ПРИМЕЧАНИЯ Ключевое слово содержит дополнительную информацию о функции или скрипте. Как, например, имя функции, Создать по, Дата кодирования и т. Д.
<#
.СИНОПСИС
Получите информацию о процессоре для списка компьютеров.
.ОПИСАНИЕ
Получает информацию о ЦП для списка серверов.
Список серверов находится в txt файле в папке 01servers или в списке строк с именами компьютеров.
CmdLet имеет два ParameterSet: один для списка компьютеров из файла, а другой из списка строк в качестве имен компьютеров.
.PARAMETER компьютеры
Список компьютеров, с которых мы хотим получить информацию о процессоре. Параметр принадлежит к стандартному набору параметров = ServerNames.
.PARAMETER имя файла
Имя txt файла со списком серверов, которые мы хотим проверить CPUInfo.Файл .txt должен находиться в папке 01servers.
Параметр принадлежит набору параметров = FileName.
.PARAMETER журнал ошибок
Параметр переключения, который устанавливает, записывать в журнал или не записывать в журнал. Файл с ошибкой находится в папке PSLog с именем Error_Log.txt.
.PARAMETER клиент
ОК - О клиент
БК - Б клиент
и т.п.
.PARAMETER решение
FIN - Финансовое решение
HR - Кадровое решение
и т.п.
.ПРИМЕР
Get-CPUInfo -client «ОК» -решение «FIN»
Описание
---------------------------------------
Проверка параметра по умолчанию со значением по умолчанию (компьютеры = 'localhost') в ParameterSet по умолчанию = ServerName..ПРИМЕР
Get-CPUInfo -client "OK" -solution "FIN" -Verbose
Описание
---------------------------------------
Тест параметра Verbose. ПРИМЕЧАНИЕ. Обратите внимание на то, как значение по умолчанию для параметра «компьютеры» localhost заменяется именем сервера.
.ВХОДЫ
System.String
ВЫХОДЫ
System.Management.Automation.PSCustomObject
.ПРИМЕЧАНИЯ
Имя функции:
Создал: Автор
Дата кодирования: 31.10.2019 19:06:41
Подробнее: https://improvescripting.com/
#>
Шаг 10: Ключевые слова LINK ссылаются на связанные темы или команды.Повторите ключевое слово справки по ссылкам для каждой связанной темы, которую мы хотим показать.
<#
.СИНОПСИС
Получите информацию о процессоре для списка компьютеров.
.ОПИСАНИЕ
Получает информацию о ЦП для списка серверов.
Список серверов находится в txt файле в папке 01servers или в списке строк с именами компьютеров.
CmdLet имеет два ParameterSet: один для списка компьютеров из файла, а другой из списка строк в качестве имен компьютеров.
.PARAMETER компьютеры
Список компьютеров, с которых мы хотим получить информацию о процессоре. Параметр принадлежит к стандартному набору параметров = ServerNames..PARAMETER имя файла
Имя текстового файла со списком серверов, которые мы хотим проверить CPUInfo. Файл .txt должен находиться в папке 01servers.
Параметр принадлежит набору параметров = FileName.
.PARAMETER журнал ошибок
Параметр переключения, который устанавливает, записывать в журнал или не записывать в журнал. Файл с ошибкой находится в папке PSLog с именем Error_Log.txt.
.PARAMETER клиент
ОК - О клиент
БК - Б клиент
и т.п.
.PARAMETER решение
FIN - Финансовое решение
HR - Кадровое решение
и т.п.
.ПРИМЕР
Get-CPUInfo -client «ОК» -решение «FIN»
Описание
---------------------------------------
Проверка параметра по умолчанию со значением по умолчанию (компьютеры = 'localhost') в ParameterSet по умолчанию = ServerName..ПРИМЕР
Get-CPUInfo -client "OK" -solution "FIN" -Verbose
Описание
---------------------------------------
Тест параметра Verbose. ПРИМЕЧАНИЕ. Обратите внимание на то, как значение по умолчанию для параметра «компьютеры» localhost заменяется именем сервера.
.ВХОДЫ
System.String
ВЫХОДЫ
System.Management.Automation.PSCustomObject
.ПРИМЕЧАНИЯ
Имя функции:
Создал: Автор
Дата кодирования: 31.10.2019 19:06:41
Подробнее: https://improvescripting.com/
.ССЫЛКА
Get-CimInstance -Class Win32_Processor
#>
Шаг 11: Вот список автоматически сгенерированных содержимого ключевых слов , созданных путем синтаксического анализа скрипта или функции:
- Имя
- Синтаксис
- Список параметров
- Общие параметры
- Таблица атрибутов параметров
- Примечания
Шаг 12: Вот вспомогательные ключевые слова, которые я не рассмотрел в этом пошаговом руководстве, так как я не использовал их, но полезно знать о них.
- .COMPONENT
- .ROLE
- .FUNCTIONALITY
- .FORWARDHELPTARGETNAME
- .FORWARDHELPTARGETNAME
- . CmdLet) так же, как если бы вы тестировали свой код PowerShell.
Где разместить справку на основе комментариев
Лично мне нравится помещать справку на основе комментариев перед ключевым словом Function .
Другие места для размещения справки на основе комментариев:
- в начале тела функции
- в конце тела функции.
СОВЕТ: Вот как я организую свой код с помощью тегов регионов:
- ВАЖНО : Я больше не использую справку по регионам, так как это нарушает функциональность справки на основе комментариев. Вместо этого справка на основе комментариев может сворачиваться в собственный регион.
- Функциональная область - здесь весь код функции.
- Область примеров выполнения - здесь я пишу разные вызовы CmdLet.
Используйте этот шаблон в качестве отправной точки, поэтому вам не нужно каждый раз писать справку с нуля, просто заполните ключевые слова текстом справки и повторите некоторые ключевые слова по мере необходимости (например, ПРИМЕР, ПАРАМЕТР).
<# .СИНОПСИС .ОПИСАНИЕ .ПАРАМЕТР .ПРИМЕР .ВХОДЫ ВЫХОДЫ .ПРИМЕЧАНИЯ Имя функции: Создан : Дата кодирования: .ССЫЛКА
Дом
#>ПРИМЕЧАНИЕ: Если вы не хотите копировать и вставлять этот шаблон, другим вариантом является использование надстройки PowerShell ISE New-CommentBlock CmdLet, написанной и объясненной в этой статье. Это дополнение поможет вам получить тот же шаблон всего одним щелчком по пункту меню.
Как обновить интерактивную справку
ВАЖНО: Важно запускать консоль Windows PowerShell от имени администратора, поскольку пользователю необходимы разрешения для записи на диск.
Запустите консоль Windows PowerShell от имени администратора и выполните следующую команду для обновления содержимого справки PowerShell:
Update-Help
ВАЖНО: Вот некоторые ограничения Update-Help CmdLet
- Запускается только один раз - в день
- имеет проверку версии и устанавливает только те файлы, которые новее существующих файлов.
- загрузки ограничены 1 ГБ несжатого содержимого на модуль
ПРИМЕЧАНИЕ: Чтобы избежать этих ограничений, используйте параметр Force для Обновление-Справка CmdLet.
Обновление-справка -Force
Как загрузить файлы справки и сохранить их в общей папке?
Сохраните справку для всех модулей в общей папке с помощью Save-Help CmdLet.
Save-Help -DestinationPath "\\ FileServer01 \ FileShare01 \ Help"
Сохраняйте справку более одного раза в день, затем используйте параметр Force и избегайте других ограничений, упомянутых в предыдущем разделе.
Save-Help -Force -DestinationPath "\\ FileServer01 \ FileShare01 \ Help"
Как установить справку на сервере без доступа в Интернет?
- Загрузите файлы справки из Интернета и сохраните их в общей папке.Запустите Save-Help CmdLet на сервере, подключенном к Интернету.
- Затем запустите Update-Help CmdLet на сервере, у которого нет подключения к Интернету, с параметром SourcePath , указывающим на расположение общей папки, куда загружаются файлы справки, как показано в следующем примере.
Save-Help -DestinationPath "\\ FileServer01 \ FileShare01 \ Help" Update-Help -SourcePath \\ FileServer01 \ FileShare01 \ Help -Credential DomainName \ AdminName
Может ли справка отображаться на других языках, кроме английского?
Get-Help может получить справочные статьи для всех поддерживаемых языков и локалей, а PowerShell Get-Help CmdLet будет использовать настройки Windows (Настройки -> Регион и языки), чтобы решить, отображать ли справку в наборе локалей или в основном языке, но вы должны Обновите справку для этого языкового стандарта на вашем компьютере.
Например, здесь мы обновляем справку как на французском, так и на английском языках.
Update-Help -UICulture fr-FR, en-US
Разница между справкой на основе комментариев и аргументом HelpMessage параметра
Полезно различать использование ключевого слова Parameter в справке на основе комментариев и HelpMessage Аргумент при создании параметров в функциях.
Я объяснил эту разницу в посте «Как создавать параметры в PowerShell».
Как получить разделы справки «about_»
Разделы справки «О программе» начинаются со слова about и представляют собой концептуальные статьи в Powershell и включают статьи о языке PowerShell.
Чтобы получить список всех тем, установленных на вашем компьютере, выполните следующую команду:
Get-Help about_ *
Я создал Free eBook «Самые ПОЛЕЗНЫЕ CmdLets PowerShell и многое другое…» с список рекомендуемых чтений из справочной системы PowerShell и список полезных команд и функций PowerShell.Так что не стесняйтесь загружать его отсюда и дайте мне знать, что вы думаете, чтобы я мог сделать его еще более полезным. Вот скриншот из бесплатной электронной книги
Полезные статьи справки на основе комментариев PowerShell
Вот несколько полезных статей и ресурсов :
Полезные команды PowerShell
Я собрал несколько полезных команд PowerShell, используемых в этой статье:
Get-Help Get-Service помощь Get-Service человек Get-Service Get-Service -? Обновление-Помощь Update-Help -UICulture fr-FR, en-US Save-Help -Force -DestinationPath "\\ FileServer01 \ FileShare01 \ Help" Get-Help about_ *
Связанные вопросы
Где находится документация PowerShell
Если вы хотите узнать больше о PowerShell, используйте эти две ссылки на онлайн-документацию PowerShell:
Полезное чтение
Я создал Free eBook «Самые ПОЛЕЗНЫЕ CmdLets PowerShell и многое другое…» со списком рекомендуемых чтений из справочной системы PowerShell и списком полезных CmdLets и функций PowerShell.Так что, пожалуйста, скачайте его отсюда и дайте мне знать, что вы думаете, чтобы я смог сделать его еще более полезным.
Молодец, вы прочитали всю статью!
Теперь вам не нужна помощь с написанием справки.О Деян Младенович
Всем привет! Я надеюсь, что эта статья, которую вы читаете сегодня, перенесла вас из места разочарования в место радости кодирования! Пожалуйста, дайте мне знать обо всем, что вам нужно для Windows PowerShell, в комментариях ниже, которые могут помочь вам в достижении ваших целей!
У меня более 18 лет опыта в сфере ИТ, и вы можете проверить мои учетные данные Microsoft.Идентификатор стенограммы: 750479 и код доступа: DejanMladenovic
Учетные данные
Обо мне ...Мои сообщения | Веб-сайт
Справка на основе комментариев PowerShell - блог Стефаноса Константину
В этом руководстве мы рассмотрим справку на основе комментариев PowerShell. Справочная информация помогает нам и другим людям распространять наши скрипты или функции. вы можете содержать много информации в разделе справки. Мы можем предоставить помощь по функциям и скриптам.
Справочную информацию можно отобразить с помощью командлета
Get-Help
. Есть два способа предоставить справку по функциям и скриптам. Мы можем предоставить помощь на основе комментариев или файлов XML. Отображается формат справки на основе комментариев, такой же, как у разделов справки, созданных из файлов XML.Пользователи могут использовать все параметры
Get-Help
, такие как Подробный , Полный , Примеры и Онлайн , для отображения содержимого справки на основе комментариев.Чтобы использовать справку на основе файлов XML, необходимо использовать ключевое слово.ExternalHelp
. В этом посте мы увидим только помощь на основе комментариев. Давайте посмотрим на это подробнее.[adinserter name = ”In article”]
Синтаксис справки на основе комментариевСправка на основе комментариев имеет особый синтаксис.
Код:
#. <Ключевое слово помощи> # <содержание справки>
или
<# . <ключевое слово помощи> <содержание справки> #>
Справка на основе комментариев должна быть серией комментариев.Вам нужно либо использовать
#
в начале каждой строки, либо использовать символы<#
и#>
для блока комментариев. Справка на основе комментариев имеет разные разделы. Разделы определяются конкретными ключевыми словами, за которыми следует содержание определенного ключевого слова.Блок комментария должен содержать по крайней мере одно ключевое слово справки. Некоторые ключевые слова, например
.EXAMPLE
, могут многократно встречаться в одном и том же блоке комментариев. Содержание справки для каждого ключевого слова начинается со строки после ключевого слова и может занимать несколько строк.Все строки в разделе справки, основанном на комментариях, должны быть смежными.Если раздел справки на основе комментариев следует за комментарием, не являющимся частью раздела справки, между последней строкой комментария, не относящегося к справке, и началом справки на основе комментариев должна быть хотя бы одна пустая строка.
[adinserter name = ”In article”]
Ключевые слова справки на основе комментариевНиже приведены действительные ключевые слова справки на основе комментариев. Ниже приведен типичный порядок их появления в разделе справки.Ключевые слова не чувствительны к регистру и могут появляться в любом порядке в справке на основе комментариев. Описание каждого ключевого слова предоставляется Microsoft.
-
.Synopsis
- Краткое описание функции или скрипта. Это ключевое слово можно использовать только один раз в каждой теме. -
. Описание
- подробное описание функции или скрипта. Это ключевое слово можно использовать только один раз в каждой теме. -
. Параметр
<Имя параметра> - Описание параметра.Вы можете включить ключевое слово.Parameter
для каждого параметра в функции или скрипте. -
. Пример
- Пример команды, в которой используется функция или сценарий, за которым (необязательно) следует образец выходных данных и описание. Повторите это ключевое слово для каждого примера. -
.Inputs
- типы объектов Microsoft .NET Framework, которые могут быть переданы функции или скрипту по конвейеру. Вы также можете включить описание входных объектов. -
. Выходы
- The.NET Framework для объектов, возвращаемых командлетом. Вы также можете включить описание возвращаемых объектов. -
. Примечания
- Дополнительная информация о функции или скрипте. -
. Ссылка
- Название связанной темы. Повторите это ключевое слово для каждой связанной темы. Это содержимое отображается в разделе «Ссылки по теме» раздела справки. -
.Component
- Технология или функция, которые используются функцией или сценарием или с которыми они связаны.Это содержимое появляется, когда командаGet-Help
включает параметр-Component
командыGet-Help
. -
.Роль
- роль пользователя для раздела справки. Это содержимое появляется, когда командаGet-Help
включает параметр-Role
командыGet-Help
. -
.Функциональность
- Предполагаемое использование функции. Это содержимое появляется, когда командаGet-Help
включает параметр-Functionality
командыGet-Help
. -
.ForwardHelpTargetName <Имя команды>
- перенаправляет на раздел справки для указанной команды. Вы можете перенаправить пользователей к любому разделу справки, включая разделы справки для функции, сценария, командлета или поставщика. -
.ForwardHelpCategory
- указывает категорию справки для элемента в ForwardHelpTargetName. Допустимые значения: Alias, Cmdlet, HelpFile, Function, Provider, General, FAQ, Glossary, ScriptCommand, ExternalScript, Filter или All.Используйте это ключевое слово, чтобы избежать конфликтов, когда есть команды с тем же именем. -
.RemoteHelpRunspace
- указывает сеанс, содержащий раздел справки. Введите переменную, содержащую сеанс PSSession. Это ключевое слово используется командлетомExport-PSSession
для поиска разделов справки по экспортированным командам. -
.ExternalHelp
- указывает путь и / или имя XML-файла справки для сценария или функции.
Ключевые слова
Ключевое слово ссылки.Parameter
могут появляться в любом порядке в блоке комментариев, но порядок, в котором параметры появляются в оператореParam
или объявлении функции, определяет порядок, в котором появляются параметры в разделе помощи. Если вы хотите изменить порядок параметров в разделе справки, вам необходимо изменить порядок параметров в оператореParam
или объявлении функции. Вы также можете указать описание параметра, поместив комментарий в оператореParam
непосредственно перед именем переменной параметра.Если вы используете и комментарий оператораParam
, и ключевое слово.Parameter
, используется описание, связанное с ключевым словом.Parameter
, а комментарий оператораParam
игнорируется.Содержимое ключевого слова
Ключевое слово ExternalHelp.Link
может также включать унифицированный идентификатор ресурса (URI) для онлайн-версии того же раздела справки. Онлайн-версия открывается при использовании параметраOnline
дляGet-Help
.URI должен начинаться с «http» или «https».Ключевое слово
.ExternalHelp
сообщает командлетуGet-Help
получить справку по сценарию или функции в XML-файле. Ключевое слово.ExternalHelp
требуется при использовании файла справки на основе XML для сценария или функции. Без негоGet-Help
не найдет файл справки для функции или сценария. Ключевое слово.ExternalHelp
имеет приоритет над всеми другими ключевыми словами справки на основе комментариев.Если присутствует.ExternalHelp
, командлетGet-Help
не отображает справку на основе комментариев, даже если не может найти файл справки, соответствующий значению ключевого слова.Когда функция экспортируется модулем сценария, значение
.ExternalHelp
должно быть именем файла без пути.Get-Help
ищет файл в подкаталоге, зависящем от локали, в каталоге модуля. Нет требований к имени файла, но рекомендуется использовать следующий формат имени файла:.psm1-help.xml Если функция не связана с модулем, включите путь и имя файла в значение ключевого слова
.ExternalHelp
. Если указанный путь к XML-файлу содержит подкаталоги, зависящие от языка и региональных параметров пользовательского интерфейса,Get-Help
рекурсивно выполняет поиск в подкаталогах XML-файла с именем сценария или функции в соответствии с языковыми стандартами возврата, установленными для Windows, точно так же, как он подходит для всех разделов справки на основе XML.[adinserter name = ”In article”]
Справка на основе комментариев в функцияхВ функции есть определенные места, в которых вы можете разместить справочную информацию, чтобы командлет
Get-Help
распознал справочная информация.Расположение справки на основе комментариев к функциям:
- В начале тела функции.
function MyFunction { <# .Synopsis Краткое содержание MyFunction .Описание MyFunction Описание #> Код MyFuction }
- В конце тела функции.
function MyFunction { Код MyFuction <# .Synopsis Краткое содержание MyFunction .Описание MyFunction Описание #> }
- Перед ключевым словом Function.Когда функция находится в сценарии или модуле сценария, между последней строкой справки на основе комментариев и ключевым словом Function не может быть более одной пустой строки. В противном случае
Get-Help
связывает справку со сценарием, а не с функцией.
<# .Synopsis Краткое содержание MyFunction .Описание MyFunction Описание #> function MyFunction { Код MyFuction }
[adinserter name = ”In article”]
Справка на основе комментариев в сценарияхВ сценариях есть определенные места, в которых вы можете разместить справочную информацию, чтобы командлет
Get-Help
распознал справочная информация.Расположение справки на основе комментариев сценария:
- В начале файла сценария. Справке по скрипту в скрипте могут предшествовать только комментарии и пустые строки.
<# .Synopsis Краткое содержание сценария .Описание Описание скрипта #> param [строка] $ Имя ...
- В конце файла сценария.
... param [строка] $ Имя функция MyFunction {код} <# .Synopsis Краткое содержание сценария .Описание Описание скрипта #>
Если первый элемент в теле сценария (после справки) является объявлением функции, между концом справки сценария и объявлением функции должно быть не менее двух пустых строк.В противном случае справка интерпретируется как справка по функции, а не как справка по сценарию.
[adinserter name = ”In article”]
Агрегированные элементыКомандлет
Get-Help
автоматически генерирует несколько элементов темы на основе комментариев. Эти автоматически сгенерированные элементы делают справку на основе комментариев очень похожей на справку, созданную из файлов XML. Вы не можете редактировать эти элементы напрямую, но во многих случаях вы можете изменить результаты, изменив источник элемента.Командлет
Get-Help
автоматически создает следующие элементы раздела справки:- Имя - раздел Имя раздела справки функции взят из имени функции в определении функции. Название раздела справки по скрипту взято из имени файла скрипта. Чтобы изменить имя или его регистр, измените определение функции или имя файла сценария.
- Syntax - Раздел Syntax раздела справки генерируется из списка параметров в операторе Param функции или скрипта.Чтобы добавить детали к синтаксису раздела справки, например тип параметра .NET Framework, добавьте детали в список параметров. Если вы не укажете тип параметра, тип «Объект» будет вставлен как значение по умолчанию.
- Список параметров - Раздел «Параметры» раздела справки создается на основе списка параметров функции или сценария и описаний, которые вы добавляете с помощью ключевого слова
.Parameters
или комментариев в списке параметров. - Общие параметры - Общие параметры добавляются в синтаксис и список параметров раздела справки, даже если они не действуют.
- Таблица атрибутов параметров –
Get-Help
создает таблицу атрибутов параметров, которая появляется при использовании параметра «Полный» или «Параметр» вGet-Help
. Значение атрибутов Required, Position и Default value берется из синтаксиса функции или скрипта. - Замечания - Раздел «Замечания» в разделе справки автоматически создается на основе имени функции или скрипта. Вы не можете изменять или влиять на его содержание.
[adinserter name = ”In article”]
Пример справкиКод:
function Get-PasswordNumber { <# .ОБЗОР Рассчитывает количество возможных паролей .ОПИСАНИЕ Рассчитывает количество возможных паролей на основе на входе, чтобы вы знали фактическое число перед вы приступаете к созданию файла словаря. .PARAMETERНабор символов Задает символы (буквы, цифры, символы), которые должны быть включены. Параметр обязательный. .PARAMETER MinCharacters Задает минимальное количество символов сгенерированных паролей. Параметр обязательный. .PARAMETER MaxCharacters Задает максимальное количество символов сгенерированных паролей.Параметр обязательный. .PARAMETER IncludeCapital Указывает, следует ли включать заглавные буквы вместе с строчные буквы. .ПАРАМЕТР CapitalOnly Определяет, нужно ли преобразовывать все строчные буквы в заглавные буквы. .ВХОДЫ System.String. Get-PasswordNumber может принимать строковое значение для определить параметр CharacterSet. ВЫХОДЫ System.Double. Get-PasswordNumber возвращает количество паролей, которые могут быть созданы. .ПРИМЕР C: \ PS> Get-PasswordNumber -CharacterSet "a, b, c, 1,2,3, $, *, &" -MinCharacters 2 -MaxCharacters 5 66420 .ПРИМЕР C: \ PS> Get-PasswordNumber -Characters "a, b, c, 1,2,3, $, *, &" -MinCharacters 2 -MaxCharacters 5 -IncludeCapital 271440 .ПРИМЕР C: \ PS> Get-PasswordNumber -Characters "a, b, c, 1,2,3, $, *, &" -MinCharacters 2 -MaxCharacters 5 -CapitalOnly 66420 .ПРИМЕР C: \ PS> Get-PasswordNumber -Символы алфавита -MinCharacters 2 -MaxCharacters 5 12356604 .ССЫЛКА
Файл словаря модуля PowerShell
#> [cmdletbinding ()] парам ( [параметр (обязательный = $ true, ValueFromPipeline = $ true)] [String] $ CharacterSet, [параметр (обязательный = $ true)] [Uint32] $ MinCharacters, [параметр (обязательный = $ true)] [Uint32] $ MaxCharacters, [переключатель] $ IncludeCapital, [переключатель] $ CapitalOnly) ... }Вывод:
Я надеюсь, что руководство по справке на основе комментариев PowerShell окажется полезным.
Пожалуйста, дайте мне знать ваши комментарии и мысли.
Ваши отзывы приветствуются.
[adinserter name = ”In article”]
Ссылки по теме[adinserter name = ”Matched-Content”]
Резюме
Название статьи
Справка на основе комментариев PowerShell
Описание
PowerShell на основе комментариев Помощь.В этом руководстве вы найдете информацию о справке на основе комментариев PowerShell и ее использовании. Блог Стефаноса Константину
Автор
Стефанос
Имя издателя
Блог Стефаноса Константину
Логотип издателя
PowerShell - многострочная команда [с примерами]
Читаемый код очень легко сообщает пользователям о своей функциональности. Для удобочитаемости кода имена переменных, имя метода должны иметь правильное соглашение об именах.Другими атрибутами, которые способствуют удобочитаемости кода, являются последовательные отступы и стиль форматирования кода. PowerShell Многострочная команда помогает разделить команды на несколько операторов для удобства чтения.
В PowerShell многострочную команду можно легко создать, используя ` ( обратный апостроф символа), чтобы разделить длинную или однострочную команду на многострочные операторы.
Обратный апостроф (`) используется как escape-символ, он в основном экранирует символ новой строки и приводит к продолжению строки.
В этой статье я объясню вам, как использовать многострочную команду PowerShell для разделения длинной команды на несколько строк.
Многострочная команда PowerShell
Чтобы разделить длинную команду на несколько строк, используйте символ обратной кавычки (`) в команде, где вы хотите разделить ее на несколько строк.
Давайте рассмотрим пример, мы хотим получить свободное дисковое пространство на локальном компьютере. Имя - это длинная команда, которая очень затрудняет чтение и управление.
Мы можем легко разделить длинную команду на несколько строк, используя `(обратный апостроф PowerShell) для разрыва строки в данной команде.
Get-CimInstance -ComputerName localhost win32_logicaldisk | где caption -eq "C:" | foreach-object {напишите "$ ($ _.caption) $ ('{0: N2}' -f ($ _. Размер / 1 ГБ)) ГБ всего, $ ('{0: N2}' -f ($ _. FreeSpace / 1 ГБ)) ГБ свободно "}
После использования ` (обратный апостроф PowerShell) для разрыва строки в команде его можно легко прочитать
Get-CimInstance -ComputerName localhost win32_logicaldisk` | где caption -eq "C:" ` | foreach-object {write "$ ($ _. caption) $ ('{0: N2}' '` -f ($ _. Размер / 1 ГБ)) ГБ всего, $ ('{0: N2}' ` -f ($ _. FreeSpace / 1gb)) ГБ свободно "}
В приведенном выше примере мы разбили длинную команду на несколько строк, используя пробел, за которым следует` (обратный апостроф) в конце, где мы хотим разделить ее.
Использование многострочной команды , ее легко читать и легко поддерживать в PowerShell.
Дельный Совет: Использование Test Connection для проверки списка компьютеров в PowerShell!
Многострочная команда PowerShell с комментариями
В сценариях PowerShell мы добавляем комментарии в код, чтобы предоставить подробную информацию о команде или функции или закомментировать исходный код для целей тестирования и использовать тестовый код.
В PowerShell многострочную команду с комментариями можно легко добавить с помощью кода <# comment #> .
Давайте разберемся с длинной командой для разделения на несколько строк и добавления комментариев в сценарий, как показано ниже.
Get-CimInstance -ComputerName localhost win32_logicaldisk | где caption -eq "C:" | foreach-object {write "$ ($ _. caption) $ ('{0: N2}' -f ($ _. Size / 1gb)) ГБ всего, $ ('{0: N2}' -f ($ _ .FreeSpace / 1gb)) GB free "}
В приведенном выше сценарии PowerShell это длинная команда, которую нужно разбить на несколько строк с помощью символа` (обратный апостроф). В этом примере он получает свободное место на диске для диска C.
Дельный совет: Исправление запущенного скрипта отключено в этой системе в PowerShell!
Давайте рассмотрим, нам нужно прокомментировать наш
where caption -eq "C:"
код для многострочной команды и использовать where caption -eq "D:"Get-CimInstance -ComputerName localhost win32_logicaldisk ` <# | где caption -eq "C:" `#>` | где caption -eq "D:" ` | foreach-object {write "$ ($ _. caption) $ ('{0: N2}' '` -f ($ _. Размер / 1 ГБ)) ГБ всего, $ ('{0: N2}' ` -f ($ _. FreeSpace / 1gb)) GB free "}
В приведенном выше примере многострочной команды PowerShell символ обратной кавычки PowerShell разделяет длинную команду на многострочную команду и использует код многострочного комментария <# comment #>.
Выполнить многострочную команду в одной строке
Чтобы выполнить многострочную команду в одной строке в PowerShell, используйте точку с запятой (;) после каждой команды.
Рассмотрим приведенный ниже пример выполнения нескольких команд в одной строке.
Write-Host "Получить версию файла"; $ fileversion = (Get-Command D: \ PowerShell \ ShellWatcher.dll) .FileVersionInfo.FileVersion; Write-Host " Версия файла - "$ fileversion
В приведенном выше примере нескольких команд PowerShell он имеет 3 команды, разделенные точкой с запятой (;)
Эти команды выполняются последовательно, выводят сообщение, получают версию файла и вывод на печать, как показано ниже. Многострочная команда PowerShell
в одна строкаВы также можете использовать оператор вертикальной черты (|) для объединения команд в цепочку и их выполнения в зависимости от условий.
Например, чтобы получить участников группы объявлений из активного каталога и экспортировать участников группы в файл csv, используйте приведенные ниже несколько команд в одной строке, разделенных вертикальной чертой.
Get-AdGroupMember -Identity 'Administrators' | Export-csv -Path D: \ Powershell \ adgroupmemers.csv -NoTypeInformation
В приведенном выше сценарии PowerShell первая команда использует командлет Get-AdGroupMember для получения членов группы объявлений для администратора группы и передает вывод второй команде с помощью оператора конвейера.
Вторая команда использует командлет Export-Csv для экспорта членов группы объявлений в файл csv.
Дельный совет: Как добавить новую строку к строке или переменной в PowerShell!
PowerShell Многострочная команда в Dockerfile
Чтобы запустить многострочную команду docker run в PowerShell, используйте обратный апостроф (`) в конце каждой строки в Dockerfile.
, например, ниже Dockerfile иллюстрирует многострочную команду запуска docker
docker run -p 80: 8080 -p 443: 443 ` -h hostname.domain ` -e "MYSQL_ROOT_PASSWORD = пароль" `
Заключение
Я надеюсь, что вы нашли выше статью о многострочной команде Powershell с полезными и познавательными комментариями.
Используя `(обратный апостроф), длинная команда разбивается на несколько строк, а с помощью <# comment #> мы можем добавлять комментарии в многострочную команду.
Прочтите здесь о том, как создать многострочную строку в PowerShell!
Дополнительные темы о командах PowerShell Active Directory и основах PowerShell можно найти на домашней странице ShellGeek.