Меню Рубрики

Как написать powershell скрипт

Как написать модуль сценария PowerShell How to Write a PowerShell Script Module

Модуль скрипта — это любой допустимый сценарий PowerShell, сохраненный в .psm1 расширении. A script module is any valid PowerShell script saved in a .psm1 extension. Это расширение позволяет подсистеме PowerShell использовать правила и командлеты модуля в файле. This extension allows the PowerShell engine to use rules and module cmdlets on your file. Большая часть этих возможностей заключается в том, чтобы помочь вам установить код в других системах, а также управлять областями. Most of these capabilities are there to help you install your code on other systems, as well as manage scoping. Можно также использовать файл манифеста модуля, который описывает более сложные установки и решения. You can also use a module manifest file, which describes more complex installations and solutions.

Написание модуля скрипта PowerShell Writing a PowerShell script module

Чтобы создать модуль скрипта, сохраните в файл допустимый сценарий PowerShell .psm1 . To create a script module, save a valid PowerShell script to a .psm1 file. Скрипт и каталог, в котором он хранится, должны использовать одно и то же имя. The script and the directory where it’s stored must use the same name. Например, сценарий с именем MyPsScript.psm1 хранится в каталоге с именем MyPsScript . For example, a script named MyPsScript.psm1 is stored in a directory named MyPsScript .

Каталог модуля должен находиться в пути, указанном в $env:PSModulePath . The module’s directory needs to be in a path specified in $env:PSModulePath . Каталог модуля может содержать любые ресурсы, необходимые для выполнения скрипта, и файл манифеста модуля, который описывает, как работает ваш модуль PowerShell. The module’s directory can contain any resources that are needed to run the script, and a module manifest file that describes to PowerShell how your module works.

Создание базового модуля PowerShell Create a basic PowerShell module

Следующие шаги описывают создание модуля PowerShell. The following steps describe how to create a PowerShell module.

Сохраните сценарий PowerShell с .psm1 расширением. Save a PowerShell script with a .psm1 extension. Используйте то же имя для скрипта и каталога, в котором сохранен скрипт. Use the same name for the script and the directory where the script is saved.

Сохранение скрипта с .psm1 расширением означает, что вы можете использовать командлеты модуля, такие как Import-Module. Saving a script with the .psm1 extension means that you can use the module cmdlets, such as Import-Module. Командлеты модуля существуют главным образом, чтобы можно было импортировать и экспортировать код в системы других пользователей. The module cmdlets exist primarily so that you can import and export your code onto other user’s systems. Альтернативное решение — загрузить код в другие системы, а затем попытаться передать его в активную память, что не является масштабируемым решением. The alternate solution would be to load your code on other systems and then dot-source it into active memory, which isn’t a scalable solution. Дополнительные сведения см. в разделе понятие о модуле Windows PowerShell. For more information, see Understanding a Windows PowerShell Module. По умолчанию, когда пользователь импортирует .psm1 файл, все функции в скрипте доступны, но переменные нет. By default, when users import your .psm1 file, all functions in your script are accessible, but variables aren’t.

Пример сценария PowerShell, озаглавленный Show-Calendar , доступен в конце этой статьи. An example PowerShell script, entitled Show-Calendar , is available at the end of this article.

Чтобы управлять доступом пользователей к определенным функциям или переменным, вызовите Export-ModuleMember в конце скрипта. To control user access to certain functions or variables, call Export-ModuleMember at the end of your script.

В примере кода в нижней части статьи имеется только одна функция, которая по умолчанию будет предоставляться. The example code at the bottom of the article has only one function, which by default would be exposed. Однако рекомендуется явно вызывать функции, которые необходимо предоставить, как описано в следующем коде: However, it’s recommended you explicitly call out which functions you wish to expose, as described in the following code:

Вы можете ограничить импортируемые объекты с помощью манифеста модуля. You can restrict what’s imported using a module manifest. Дополнительные сведения см. в статьях Импорт модуля PowerShell и написание манифеста модуля PowerShell. For more information, see Importing a PowerShell Module and How to Write a PowerShell Module Manifest.

Если у вас есть модули, необходимые для загрузки вашего модуля, Import-Module в верхней части модуля можно использовать. If you have modules that your own module needs to load, you can use Import-Module , at the top of your module.

Import-Module Командлет импортирует целевой модуль в систему и может использоваться позднее в процедуре установки собственного модуля. The Import-Module cmdlet imports a targeted module onto a system, and can be used at a later point in the procedure to install your own module. В примере кода в нижней части этой статьи не используются модули импорта. The sample code at the bottom of this article doesn’t use any import modules. Но если это так, они будут перечислены в верхней части файла, как показано в следующем коде: But if it did, they would be listed at the top of the file, as shown in the following code:

Чтобы описать модуль в справочной системе PowerShell, можно либо использовать стандартные комментарии в файле справки, либо создать дополнительный файл справки. To describe your module to the PowerShell Help system, you can either use standard help comments inside the file, or create an additional Help file.

Пример кода в нижней части этой статьи содержит справочную информацию в комментариях. The code sample at the bottom of this article includes the help information in the comments. Можно также написать развернутые XML-файлы, содержащие дополнительное содержимое справки. You could also write expanded XML files that contain additional help content. Дополнительные сведения см. в разделе Создание справки для модулей Windows PowerShell. For more information, see Writing Help for Windows PowerShell Modules.

Если у вас есть дополнительные модули, файлы XML или другое содержимое, которое нужно упаковать с модулем, можно использовать манифест модуля. If you have additional modules, XML files, or other content you want to package with your module, you can use a module manifest.

Манифест модуля — это файл, содержащий имена других модулей, макетов каталогов, Номера версий, данные автора и другие сведения. A module manifest is a file that contains the names of other modules, directory layouts, versioning numbers, author data, and other pieces of information. PowerShell использует файл манифеста модуля для Организации и развертывания решения. PowerShell uses the module manifest file to organize and deploy your solution. Дополнительные сведения см. в статье Создание манифеста модуля PowerShell. For more information, see How to write a PowerShell module manifest.

Чтобы установить и запустить модуль, сохраните модуль в один из соответствующих путей PowerShell и используйте Import-Module . To install and run your module, save the module to one of the appropriate PowerShell paths, and use Import-Module .

Пути, по которым можно установить модуль, находятся в $env:PSModulePath глобальной переменной. The paths where you can install your module are located in the $env:PSModulePath global variable. Например, общий путь для сохранения модуля в системе — %SystemRoot%/users/ /Documents/PowerShell/Modules/ . For example, a common path to save a module on a system would be %SystemRoot%/users/ /Documents/PowerShell/Modules/ . Не забудьте создать каталог для модуля, который использует то же имя, что и модуль скрипта, даже если это единственный .psm1 файл. Be sure to create a directory for your module that uses the same name as the script module, even if it’s only a single .psm1 file. Если модуль не был сохранен по одному из этих путей, необходимо указать расположение модуля в Import-Module команде. If you didn’t save your module to one of these paths, you would have to specify the module’s location in the Import-Module command. В противном случае PowerShell не сможет найти модуль. Otherwise, PowerShell wouldn’t be able to find the module.

Начиная с PowerShell 3,0, если модуль помещен в один из путей модуля PowerShell, его не нужно явным образом импортировать. Starting with PowerShell 3.0, if you’ve placed your module in one of the PowerShell module paths, you don’t need to explicitly import it. Модуль автоматически загружается, когда пользователь вызывает функцию. Your module is automatically loaded when a user calls your function. Дополнительные сведения о пути к модулю см. в разделе Импорт модуля PowerShell и изменение пути установки PSModulePath. For more information about the module path, see Importing a PowerShell Module and Modifying the PSModulePath Installation Path.

Чтобы удалить модуль из активной службы в текущем сеансе PowerShell, используйте Remove-Module. To remove a module from active service in the current PowerShell session, use Remove-Module.

Remove-Module Удаление модуля из текущего сеанса PowerShell, но не удаление модуля или файлов модуля. Remove-Module removes a module from the current PowerShell session, but doesn’t uninstall the module or delete the module’s files.

Пример кода для показа календаря Show-Calendar code example

В следующем примере представлен модуль скрипта, содержащий одну функцию с именем Show-Calendar . The following example is a script module that contains a single function named Show-Calendar . Эта функция отображает визуальное представление календаря. This function displays a visual representation of a calendar. Образец содержит строки справки PowerShell для кратких сведений, описания, значений параметров и кода. The sample contains the PowerShell Help strings for the synopsis, description, parameter values, and code. При импорте модуля Export-ModuleMember команда обеспечивает Show-Calendar экспорт функции в качестве члена модуля. When the module is imported, the Export-ModuleMember command ensures that the Show-Calendar function is exported as a module member.

Источник статьи: http://docs.microsoft.com/ru-ru/powershell/scripting/developer/module/how-to-write-a-powershell-script-module?view=powershell-6

Написание и запуск сценариев в интегрированной среде сценариев Windows PowerShell How to Write and Run Scripts in the Windows PowerShell ISE

В этой статье описано как создавать, редактировать, выполнять и сохранять скрипты в области скриптов. This article describes how to create, edit, run, and save scripts in the Script Pane.

Создание и выполнение сценариев How to create and run scripts

В области скриптов можно открывать и редактировать файлы Windows PowerShell. You can open and edit Windows PowerShell files in the Script Pane. Сейчас нас интересуют следующие типы файлов Windows PowerShell: файлы скриптов ( .ps1 ), файлы данных скриптов ( .psd1 ) и файлы модулей скриптов ( .psm1 ). Specific file types of interest in Windows PowerShell are script files ( .ps1 ), script data files ( .psd1 ), and script module files ( .psm1 ). Эти типы файлов имеют цветовую подсветку синтаксиса в редакторе области сценариев. These file types are syntax colored in the Script Pane editor. Другие стандартные файлы, которые можно открыть в области сценариев, — это файлы конфигурации ( .ps1xml ), XML-файлы и текстовые файлы. Other common file types you may open in the Script Pane are configuration files ( .ps1xml ), XML files, and text files.

Политика выполнения Windows PowerShell определяет, можно ли выполнять сценарии, загружать профили Windows PowerShell и файлы конфигурации. The Windows PowerShell execution policy determines whether you can run scripts and load Windows PowerShell profiles and configuration files. Политика выполнения по умолчанию, Restricted, запрещает выполнение сценариев и блокирует загрузку профилей. The default execution policy, Restricted, prevents all scripts from running, and prevents loading profiles. Чтобы изменить эту политику выполнения и разрешить загрузку и использование профилей, см. описание Set-ExecutionPolicy и about_Signing. To change the execution policy to allow profiles to load and be used, see Set-ExecutionPolicy and about_Signing.

Создание файла сценария To create a new script file

Нажмите кнопку Создать на панели инструментов или откройте меню Файл и выберите Создать. On the toolbar, click New, or on the File menu, click New. Созданный файл появится в новой вкладке, расположенной под текущей вкладкой PowerShell. Помните, что вкладки PowerShell отображаются, только если их несколько. The created file appears in a new file tab under the current PowerShell tab. Remember that the PowerShell tabs are only visible when there are more than one. По умолчанию создается файл сценария ( .ps1 ), но его можно сохранить с новым именем и расширением. By default a file of type script ( .ps1 ) is created, but it can be saved with a new name and extension. На одной вкладке PowerShell может быть создано несколько файлов сценариев. Multiple script files can be created in the same PowerShell tab.

Открытие существующего сценария To open an existing script

Нажмите кнопку Открыть. на панели инструментов или откройте меню Файл и выберите пункт Открыть. On the toolbar, click Open, or on the File menu, click Open. В диалоговом окне Открыть выберите файл, который требуется открыть. In the Open dialog box, select the file you want to open. Открытый файл появится в новой вкладке. The opened file appears in a new tab.

Закрытие вкладки сценария To close a script tab

На вкладке файла, которую нужно закрыть, щелкните значок закрытия (X) или откройте меню File (Файл) и выберите Close (Закрыть). Click the Close icon (X) of the file tab you want to close or select the File menu and click Close.

Если файл был изменен с момента последнего сохранения, будет предложено сохранить или отменить изменения. If the file has been altered since it was last saved, you’re prompted to save or discard it.

Отображение пути к файлу To display the file path

На вкладке файла наведите курсор на его имя. On the file tab, point to the file name. Появится подсказка с полным путем к файлу сценария. The fully qualified path to the script file appears in a tooltip.

Запуск сценария To run a script

Нажмите кнопку Выполнить сценарий на панели инструментов или откройте меню Файл и выберите пункт Выполнить. On the toolbar, click Run Script, or on the File menu, click Run.

Выполнение части сценария To run a portion of a script

  1. Выберите часть сценария в области сценариев. In the Script Pane, select a portion of a script.
  2. Нажмите кнопку Выполнить выделенный фрагмент на панели инструментов или откройте меню Файл и выберите пункт Выполнить выделенный фрагмент. On the File menu, click Run Selection, or on the toolbar, click Run Selection.

Остановка выполняемого сценария To stop a running script

Есть несколько способов остановить выполняемый скрипт. There are several ways to stop a running script.

  • На панели инструментов щелкните Остановить операцию. Click Stop Operation on the toolbar
  • Нажмите CTRL + BREAK . Press CTRL + BREAK
  • В меню Файл выберите Остановить операцию. Select the File menu and click Stop Operation.

Нажатие клавиш CTRL + C также сработает, если нет выделенного текста. В противном случае нажатие клавиш CTRL + C приведет к копированию выделенного текста. Pressing CTRL + C also works unless some text is currently selected, in which case CTRL + C maps to the copy function for the selected text.

Написание и редактирование текста в области сценариев How to write and edit text in the Script Pane

В области скриптов текст можно копировать, вырезать, вставлять, искать и заменять. You can copy, cut, paste, find, and replace text in the Script Pane. Также можно отменить и повторить последнее выполненное действие. You can also undo and redo the last action you just performed. Для этого используются те же клавиши, как и во всех других приложениях Windows. The keyboard shortcuts for these actions are the same shortcuts used for all Windows applications.

Ввод текста в области сценариев To enter text in the Script Pane

  1. Установите курсор в область сценариев, щелкнув кнопкой мыши любую ее часть или выбрав пункт Перейти в область сценариев в меню Вид. Move the cursor to the Script Pane by clicking anywhere in the Script Pane, or by clicking Go to Script Pane in the View menu.
  2. Создайте сценарий. Create a script. Цветовая подсветка синтаксиса и заполнение нажатием клавиши TAB обеспечивают более широкие возможности для редактирования в интегрированной среде скриптов Windows PowerShell. Syntax coloring and tab completion provide a richer editing experience in Windows PowerShell ISE.
  3. Подробную информацию о заполнении нажатием клавиши TAB, помогающем при вводе кода, см. в статье How to Use Tab Completion in the Script Pane and Console Pane (Использование заполнения нажатием клавиши TAB в областях сценариев и консоли). See How to Use Tab Completion in the Script Pane and Console Pane for details about using the tab completion feature to help in typing.

Поиск текста в области сценариев To find text in the Script Pane

  1. Чтобы найти текст в любой части скрипта, нажмите клавиши CTRL + F или выберите Find in Script (Найти в сценарии) в меню Edit (Правка). To find text anywhere, press CTRL + F or, on the Edit menu, click Find in Script.
  2. Чтобы найти текст после курсора, нажмите клавишу F3 или выберите Найти следующее в сценарии в меню Правка. To find text after the cursor, press F3 or, on the Edit menu, click Find Next in Script.
  3. Чтобы найти текст до курсора, нажмите клавиши SHIFT + F3 или выберите Find Previous in Script (Найти предыдущее в сценарии) в меню Edit (Правка). To find text before the cursor, press SHIFT + F3 or, on the Edit menu, click Find Previous in Script.

Поиск и замена текста в области сценариев To find and replace text in the Script Pane

Нажмите клавиши CRTL + H или в меню Edit (Правка) выберите Replace in Script (Заменить в сценарии). Press CTRL + H or, on the Edit menu, click Replace in Script. Введите текст, который нужно найти, и замещающий текст, затем нажмите клавишу ВВОД . Enter the text you want to find and the replacement text, then press ENTER .

Переход к определенной строке текста в области сценариев To go to a particular line of text in the Script Pane

В области сценариев нажмите клавиши CTRL + G или выберите Go to Line (Перейти к строке) в меню Edit (Правка). In the Script Pane, press CTRL + G or, on the Edit menu, click Go to Line.

Введите номер строки. Enter a line number.

Копирование текста в области сценариев To copy text in the Script Pane

В области сценариев выделите текст, который требуется скопировать. In the Script Pane, select the text that you want to copy.

Нажмите клавиши CTRL + C , щелкните значок Copy (Копировать) на панели инструментов или выберите Copy (Копировать) в меню Edit (Правка). Press CTRL + C or, on the toolbar, click the Copy icon, or on the Edit menu, click Copy.

Вырезание текста в области сценариев To cut text in the Script Pane

  1. В области сценариев выделите текст, который требуется вырезать. In the Script Pane, select the text that you want to cut.
  2. Нажмите клавиши CTRL + X , щелкните значок Cut (Вырезать) на панели инструментов или выберите Cut (Вырезать) в меню Edit (Правка). Press CTRL + X or, on the toolbar, click the Cut icon, or on the Edit menu, click Cut.

Вставка текста в области сценариев To paste text into the Script Pane

Нажмите клавиши CTRL + V , щелкните значок Paste (Вставить) на панели инструментов или выберите Paste (Вставить) в меню Edit (Правка). Press CTRL + V or, on the toolbar, click the Paste icon, or on the Edit menu, click Paste.

Отмена действия в области сценариев To undo an action in the Script Pane

Нажмите клавиши CTRL + Z , щелкните значок Undo на панели инструментов или выберите Отменить в меню Правка. Press CTRL + Z or, on the toolbar, click the Undo icon, or on the Edit menu, click Undo.

Повторное выполнение действия в области сценариев To redo an action in the Script Pane

Нажмите клавиши CTRL + Y , щелкните значок Повторить на панели инструментов или выберите Повторить в меню Правка. Press CTRL + Y or, on the toolbar, click the Redo icon, or on the Edit menu, click Redo.

Сохранение сценария How to save a script

Звездочка рядом с именем скрипта обозначает, что файл не был сохранен после изменения. An asterisk appears next to the script name to mark a file that hasn’t been saved since it was changed. После сохранения звездочка исчезает. The asterisk disappears when the file is saved.

Сохранение сценария To save a script

Нажмите клавиши CTRL + S , щелкните значок Сохранить на панели инструментов или выберите Сохранить в меню Файл. Press CTRL + S or, on the toolbar, click the Save icon, or on the File menu, click Save.

Сохранение сценария с определенным именем To save and name a script

  1. В меню Файл выберите команду Сохранить как. On the File menu, click Save As. Появится диалоговое окно Сохранить как. The Save As dialog box will appear.
  2. В поле Имя файла введите имя файла. In the File name box, enter a name for the file.
  3. В поле Тип файла выберите тип файла. In the Save as type box, select a file type. Например, в поле Тип сохраняемого файла выберите «Скрипты PowerShell ( *.ps1 )». For example, in the Save as type box, select ‘PowerShell Scripts ( *.ps1 )’.
  4. Выберите команду Сохранить. Click Save.

Сохранение сценария в кодировке ASCII To save a script in ASCII encoding

По умолчанию интегрированная среда сценариев Windows PowerShell сохраняет новые файлы сценариев ( .ps1 ), файлы данных сценариев ( .psd1 ) и файлы модулей сценариев ( .psm1 ) в кодировке Юникод (BigEndianUnicode). By default, Windows PowerShell ISE saves new script files ( .ps1 ), script data files ( .psd1 ), and script module files ( .psm1 ) as Unicode (BigEndianUnicode) by default. Чтобы сохранить сценарий в другой кодировке, например ASCII (ANSI), используйте методы Save или SaveAs объекта $psISE.CurrentFile. To save a script in another encoding, such as ASCII (ANSI), use the Save or SaveAs methods on the $psISE.CurrentFile object.

Следующая команда сохраняет новый сценарий в кодировке ASCII и с именем MyScript.ps1: The following command saves a new script as MyScript.ps1 with ASCII encoding.

Следующая команда заменяет текущий файл сценария на файл с таким же именем, но в кодировке ASCII: The following command replaces the current script file with a file with the same name, but with ASCII encoding.

Следующая команда возвращает кодировку текущего файла: The following command gets the encoding of the current file.

Интегрированная среда скриптов Windows PowerShell поддерживает следующие параметры кодировки: ASCII, BigEndianUnicode, Unicode, UTF32, UTF7, UTF8 и Default. Windows PowerShell ISE supports the following encoding options: ASCII, BigEndianUnicode, Unicode, UTF32, UTF7, UTF8, and Default. Значение параметра Default зависит от системы. The value of the Default option varies with the system.

Интегрированная среда скриптов Windows PowerShell не изменяет кодировку файлов скриптов при использовании команд «Сохранить» или «Сохранить как». Windows PowerShell ISE doesn’t change the encoding of script files when you use the Save or Save As commands.

Источник статьи: http://docs.microsoft.com/ru-ru/powershell/scripting/windows-powershell/ise/how-to-write-and-run-scripts-in-the-windows-powershell-ise?view=powershell-7


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии