Глава 1. начало работы с powershell

Содержание:

Как запустить скрипт PowerShell?

Есть несколько различных способов запуска скрипта, ниже приведены основные:

  1. Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:\Scripts\test.ps1, или перейти в папку скрипта командой cd C:\Scripts и запустить его командой .\test.ps1)Оболочку можно найти и запустить множеством способов. Один из способов — через меню «Пуск». Для Windows 7 — нужно зайти во «Все программы» — «Стандартные» — «Windows PowerShell» и запустить оболочку «Windows PowerShell». Для Windows 10 — нужно найти группу на букву «W» и в ней вы найдете «Windows PowerShell».
  2. Запустить «Интегрированную среду сценариев Windows PowerShell ISE» — это программа — среда разработки, позволяющая редактировать и отлаживать скрипты PowerShell, которая так же есть по-умолчанию вместе с самим PowerShell. Запустив ее, нужно просто нажать кнопку «Открыть» или зайти в меню Файл — Открыть и выбрать нужный скрипт, затем нажать F5 или кнопку «Выполнить скрипт».Найти Windows PowerShell ISE можно там же, где и оболочку PowerShell — в меню «Пуск».
  3. Запустить стандартную коммандную строку и в ней написать:powershell -file <имя_скрипта> (пример: powershell -file myscript.ps1)

Если вы раньше не запускали скрипты PowerShell, то скорее всего, вы получите сообщение: Не удается загрузить файл <имя_скрипта>, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений. Связано это с тем, что из соображений безопасности и недопущения случайного выполнения вредоносного кода, все скрипты должны быть подписаны цифровой подписью.

Установка нескольких версий модуля

Чтобы установить несколько версий одного модуля, выполните следующую процедуру.

  1. Создайте каталог для каждой версии модуля. Включите номер версии в имя каталога.
  2. Создайте манифест модуля для каждой версии модуля. В качестве значения ключа ModuleVersion в манифесте укажите номер версии модуля. Сохраните файл манифеста (.psd1) в каталоге для версии модуля.
  3. Добавьте путь к корневой папке модуля в значение переменной среды PSModulePath, как показано в следующих примерах.

Чтобы импортировать определенную версию модуля, пользователь может использовать параметры или командлета Import-Module.

Например, если модуль Fabrikam доступен в версиях 8.0 и 9.0, структура каталогов модуля Fabrikam может выглядеть следующим образом:

Установщик добавляет оба пути к модулю в значение переменной среды PSModulePath.

После выполнения этих действий параметр ListAvailable командлета Get-Module получает оба модуля Fabrikam. Чтобы импортировать определенный модуль, используйте параметры или командлета Import-Module.

Если оба модуля, которые содержат командлеты с одинаковыми именами, импортируются в один сеанс, в этом сеансе будут доступными командлеты, импортированные последними.

Включение или выключение выполнения скрипта Windows PowerShell

Чтобы включить или выключить выполнение сценария Windows PowerShell с помощью редактора групповой политики, выполните следующие действия:

  1. Ищи gpedit.msc в поле поиска на панели задач.
  2. Нажмите на Изменить групповую политику в результатах поиска.
  3. Идти к Windows PowerShell в Конфигурация компьютера.
  4. Дважды щелкните на Включите выполнение скрипта.
  5. Выберите Включено вариант.
  6. Выберите Политика исполнения из раскрывающегося списка.
  7. Выберите Неполноценный возможность выключить выполнение скрипта.
  8. Нажмите на Подать заявление и Ok.

Давайте подробно рассмотрим эти шаги.

Сначала вам нужно будет открыть редактор локальной групповой политики на своем компьютере. Для этого найдите в поле поиска на панели задач и нажмите Изменить групповую политику в результатах поиска. После открытия этого инструмента перейдите по следующему пути –

Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell

в Windows PowerShell в папке вы увидите настройку под названием Включите выполнение скрипта. Дважды щелкните по нему и выберите Включено вариант.

После этого выберите в раскрывающемся списке политику выполнения. Вы увидите эти три варианта:

  • Разрешить только подписанные скрипты
  • Разрешить локальные сценарии и удаленные подписанные сценарии
  • Разрешить все скрипты

Если вы хотите отключить выполнение скрипта в Windows PowerShell, выберите Неполноценный вариант.

В любом случае нажмите Подать заявление и Ok чтобы сохранить изменение.

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

Включение или отключение выполнения скрипта Windows PowerShell с помощью реестра

Чтобы включить или отключить выполнение сценария Windows PowerShell, выполните следующие действия:

  1. Нажмите Win + R.
  2. Тип regedit и нажмите Войти кнопка.
  3. Нажать на да кнопка.
  4. Идти к Окна внутри Ключ HKLM.
  5. Щелкните правой кнопкой мыши Windows> New> Key.
  6. Назовите это как PowerShell.
  7. Щелкните правой кнопкой мыши PowerShell> Новое значение DWORD (32-разрядное).
  8. Назовите это как EnableScripts.
  9. Дважды щелкните по нему, чтобы установить данные значения как 1.
  10. Щелкните правой кнопкой мыши PowerShell> Создать> Строковое значение.
  11. Назовите это как ExecutionPolicy.
  12. Дважды щелкните по нему, чтобы установить данные значения, как указано ниже.

Если вы хотите узнать больше, продолжайте читать.

Для начала нажмите Win + R, тип и ударил Войти кнопка. Если вы видите приглашение UAC, нажмите на да кнопку, чтобы открыть редактор реестра на вашем компьютере. После этого перейдите по следующему пути –

HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows

Щелкните правой кнопкой мыши Windows, выберите Создать> Ключ, и назовите это как PowerShell.

Вам нужно будет создать значение DWORD (32-битное) и строковое значение в PowerShell ключ. Для этого щелкните правой кнопкой мыши PowerShell> Создать> Значение DWORD (32 бита) и назовите это как EnableScripts.

Дважды щелкните EnableScripts, чтобы установить Данные значения в качестве 1 или же . Если вы хотите включить эту функцию, сделайте ее 1. В противном случае пусть будет .

Теперь вам нужно будет установить политику выполнения. Для этого щелкните правой кнопкой мыши PowerShell> Создать> Строковое значение, и назовите его ExecutionPolicy.

После этого дважды щелкните по нему и введите Данные значения как сказано ниже

  • AllSigned: Разрешить только подписанные скрипты
  • RemoteSigned: Разрешить локальные сценарии и удаленные подписанные сценарии
  • Без ограничений: Разрешить все скрипты

Наконец, нажмите кнопку Ok кнопку, чтобы сохранить изменение.

Вот и все! Надеюсь, это поможет.

Использование групповая политика для управления политикой выполнения

Для управления политикой выполнения компьютеров предприятия можно использовать параметр групповая политика включить выполнение скрипта . Параметр групповая политика переопределяет политики выполнения, заданные в PowerShell во всех областях.

Включить параметры политики выполнения сценария следующим образом:

  • Если отключить выполнение скрипта, скрипты не будут выполняться. Это эквивалентно Restricted политике выполнения.

  • Если включить выполнение скрипта, можно выбрать политику выполнения. Параметры групповая политика эквивалентны следующим параметрам политики выполнения.

    Групповая политика Политика выполнения
    Разрешить все скрипты Unrestricted
    Разрешить локальные скрипты и удаленные подписанные скрипты RemoteSigned
    Разрешить только подписанные скрипты AllSigned
  • Если параметр включить выполнение скрипта не настроен, он не будет действовать. Политика выполнения, заданная в PowerShell, вступает в силу.

Файлы Повершеллексекутионполици. adm и Повершеллексекутионполици. ADMX добавляют политику выполнения сценария включения в узлы Конфигурация компьютера и Конфигурация пользователя в групповая политика Editor по следующим путям.

для Windows XP и Windows Server 2003:

для Windows Vista и более поздних версий Windows:

Политики, заданные в узле Конфигурация компьютера, имеют приоритет над политиками, заданными в узле Конфигурация пользователя.

Дополнительные сведения см. на веб-сайте about_Group_Policy_Settings.

Приоритет политики выполнения

При определении действующей политики выполнения для сеанса PowerShell оценивает политики выполнения в следующем порядке очередности.

Как запустить скрипт PowerShell с помощью ярлыка?

Осуществить такую задачу можно двумя способами:

  1. Создать bat/cmd файл, в котором прописать команду для запуска скрипта (с параметрами вы ознакомились выше)
  2. Создать ярлык на PowerShell, который можно найти в папке c:\Windows\System32\WindowsPowerShell\v<версия>\ и в свойствах ярлыка в поле «Объект» дописать необходимые параметры.

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

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

Бэкап, удаление и восстановление задач планировщика с Powershell

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

Резервное копирование

Для бэкапа мы можем использовать команду Export-CliXml. Для этого нам нужно будет получить задачу и использовать конвейер:

Для экспорта в Powershell так же есть ‘Export-ScheduledTask’, но нет аналогичной команды импорта. Что бы импортировать такие файлы-задачи мы можем использовать только GUI. Из-за этого она не приведена в примере выше. 

Удаление, отключение и включение

При удалении задачи, по умолчанию, запрашивается подтверждение. Что бы этого не было добавляется ключ ‘Confirm’:

Если требуется только отключить задачу используйте Disable:

Включение:

Восстановление

Восстановление выполняется в несколько шагов. Первое — мы должны выполнить импорт XML документа в Powershell:

На одном из сайтов я прочитал, что следующий параметр нужно изменять на «Interactive», так как без него не будет работать задача, но у меня этот параметр не изменялся при экспорте:

Этот параметр связан со входом пользователя через GUI. Аналогичное название в интерфейсе планировщика задач «Выполнять только для пользователей, вошедших в систему». Если этот параметр у вас отличается — вы сможете изменить его так:

Далее нам нужно зарегистрировать эту задачу определяя каждый из параметров отдельно:

Вам так же будет интересно:

Политики выполнения PowerShell

принудительное применение этих политик выполняется только на платформах Windows. Ниже перечислены политики выполнения PowerShell.

AllSigned

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

Bypass

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

RemoteSigned

  • политика выполнения по умолчанию для компьютеров Windows server.
  • Сценарии могут выполняться.
  • Требуется цифровая подпись от доверенного издателя для сценариев и файлов конфигурации, загружаемых из Интернета, которые включают программы электронной почты и мгновенные сообщения.
  • Не требует цифровых подписей для сценариев, которые записываются на локальном компьютере и не загружаются из Интернета.
  • Запускает скрипты, скачанные из Интернета и не подписанные, если скрипты разблокированы, например с помощью командлета.
  • Риски запуска неподписанных скриптов из источников, отличных от Интернета, и подписанных сценариев, которые могут быть вредоносными.

Restricted

  • политика выполнения по умолчанию для клиентских компьютеров Windows.
  • Разрешает отдельные команды, но не разрешает сценарии.
  • Предотвращает запуск всех файлов скриптов, включая файлы форматирования и конфигурации ( ), файлы скриптов модуля ( ) и профили PowerShell ( ).

Undefined

  • В текущей области не задана политика выполнения.
  • если политика выполнения во всех областях имеет значение Undefined , то действующая политика выполнения предназначена Restricted для Windows клиентов и RemoteSigned для Windows Server.

Unrestricted

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

Примечание

В системах, которые не отличают пути UNC от Интернет-путей, сценарии, определяемые путем UNC, могут быть запрещены для выполнения с политикой выполнения RemoteSigned .

Использование блоков скриптов с отложенной привязкой с параметрами

Типизированный параметр, который принимает входные данные конвейера ( ) или ( ), позволяет использовать блоки скриптов с отложенной привязкой для параметра.
В блоке скрипта с отложенной привязкой можно ссылаться на перенаправленный объект, используя переменную конвейера .

В более сложных командлетах блоки скриптов с отложенной привязкой позволяют повторно использовать один из переданных объектов для заполнения других параметров.

Примечания к блокам скриптов отложенной привязки в качестве параметров:

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

  • Параметр не должен быть нетипизированным, а тип параметра не может быть или .

  • Если используется блок скрипта отложенной привязки без предоставления входных данных конвейера, возникает ошибка.

Регистрация задачи в планировщике

Теперь, после выполнения минимальных требований в виде ‘action’ и ‘trigger’, мы должны объединить эти объекты. Это делается с помощью команды ‘Register-ScheduledTask’. Дополнительно мы можем определить название и описание создаваемого объекта:

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

TaskPath указывает где была создана задача. В примере выше это произошло в корне планировщика:

Вы можете использовать аналогичный параметр для регистрации задачи в другой директории:

Способа узнать путь два:

  1. Через графический интерфейс;
  2. Через команду ‘Get-ScheduledTask’ (будет рассмотрена ниже).

В powershell есть еще одна команда, которая может участвовать в создании задач «New-ScheduledTask». Основное отличие такой команды в том, она не регистрирует (добавляет) задачу в сервис планировщика. Если бы мы использовали обе команды это бы выглядело так:

в этом разделе

Примечание

Примеры ведущих приложений, которые создают пользовательские интерфейсы узлов, см. в разделе примеры пользовательских узлов.

Пример Runspace01 В этом примере показано, как использовать класс System. Management. Automation. PowerShell для синхронного выполнения командлета Get-Process и вывода его выходных данных в окне консоли.

Пример Runspace02 В этом примере показано, как использовать класс System. Management. Automation. PowerShell для синхронного выполнения командлетов Get-Process и Sort-Object . Результаты этих команд отображаются с помощью System. Windows. Элемент управления Forms. DataGridView .

Пример Runspace03 В этом примере показано, как использовать класс System. Management. Automation. PowerShell для синхронного выполнения скрипта и для решения неустранимых ошибок. Скрипт получает список имен процессов, а затем извлекает эти процессы. Результаты выполнения скрипта, включая вызванные им устранимые ошибки, отображаются в окне консоли.

Пример Runspace04 В этом примере показано, как использовать класс System. Management. Automation. PowerShell для выполнения команд и перехвата ошибок, возникающих при выполнении команд. Выполняются две команды, и последняя получает недопустимый аргумент параметра. В результате объекты не возвращаются, и возникает ошибка завершения.

Пример Runspace05 В этом примере показано, как добавить оснастку в объект System. Management. Automation. пространства. Initialsessionstate , чтобы командлет оснастки был доступен при открытии пространства выполнения. Оснастка предоставляет Get-Procный командлет (определяемый образцом GetProcessSample01), который выполняется синхронно с помощью объекта System. Management. Automation. PowerShell .

Пример Runspace06 В этом примере показано, как добавить модуль в объект System. Management. Automation. пространства. Initialsessionstate , чтобы модуль загружался при открытии пространства выполнения. Модуль предоставляет Get-Procный командлет (определяемый образцом GetProcessSample02), который выполняется синхронно с помощью объекта System. Management. Automation. PowerShell .

Пример Runspace07 В этом примере показано, как создать пространство выполнения, а затем использовать это пространство выполнения для синхронного выполнения двух командлетов с помощью объекта System. Management. Automation. PowerShell .

Пример Runspace08 В этом примере показано, как добавить команды и аргументы в конвейер объекта System. Management. Automation. PowerShell и как выполнять команды синхронно.

Пример Runspace09 В этом примере показано, как добавить скрипт в конвейер объекта System. Management. Automation. PowerShell и как запустить скрипт в асинхронном режиме. События используются для обработки выходных данных скрипта.

Пример Runspace10 В этом примере показано, как создать начальное состояние сеанса по умолчанию, как добавить командлет в System. Management. Automation. пространствей. Initialsessionstate, как создать пространство выполнения, которое использует исходное состояние сеанса, и как выполнить команду с помощью объекта System. Management. Automation. PowerShell .

Пример Runspace11 В этом примере показано, как использовать класс System. Management. Automation. проксикомманд для создания команды прокси, которая вызывает существующий командлет, но ограничит набор доступных параметров. Прокси-команда затем добавляется в начальное состояние сеанса, который используется для создания ограниченного пространства выполнения. Это означает, что пользователь может получить доступ к функциям командлета только с помощью прокси-команды.

Как разрешить выполнение неподписанного скрипта PowerShell?

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

Set-ExecutionPolicy RemoteSigned -Scope Process

2. При запуске из стандартной коммандной строки использовать параметр -executionpolicy, т.е. запускать скрипт так:

powershell -executionpolicy RemoteSigned -file <имя_скрипта>

Оба способа устанавливают политику только для текущего сеанса, при этом, политика безопасности выполнения скриптов PowerShell, прописанная в реестре, не будет изменена и останется прежней. Если вы хотите поменять политику безопасности выполнения скриптов «на постоянно», то используйте такой способ:

3. Разрешить запуск навсегда: запустить оболочку PowerShell от имени «Администратора», затем выполните команду:

Set-ExecutionPolicy RemoteSigned

Однако, я бы не рекомендовал такой способ, чтобы не подвергать ваш компьютер возможным угрозам, т.к. так вы разрешаете выполнение скриптов всем и всегда.

Примечание: Если скрипт был загружен из интернета, то чтобы избежать запроса на подтверждение запуска, нужно вместо RemoteSigned использовать Bypass — полное отключение любых запросов и предупреждений.

Область политики выполнения

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

Допустимые значения для Scope : MachinePolicy , UserPolicy, Process , CurrentUser и LocalMachine. Хранилище LocalMachine используется по умолчанию при задании политики выполнения.

Scope Значения перечислены в порядке приоритета. Политика, которая имеет приоритет, вступает в силу в текущем сеансе, даже если более ограничивающая политика была установлена на более низком уровне приоритета.

Дополнительные сведения см. в разделе Set-ExecutionPolicy.

Process

Process Область влияет только на текущий сеанс PowerShell. Политика выполнения сохраняется в переменной среды , а не в реестре. При закрытии сеанса PowerShell переменная и значение удаляются.

CurrentUser

политика выполнения распространяется только на текущего пользователя. Он хранится в подразделе реестра HKEY_CURRENT_USER .

LocalMachine

Политика выполнения влияет на всех пользователей на текущем компьютере. Он хранится в подразделе реестра HKEY_LOCAL_MACHINE .

Определение общих и частных функций

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

Если вы не следуете рекомендациям и у вас есть только файл , единственный вариант для вас — использовать командлет .

В предыдущем примере для пользователей модуля доступна только функция , при этом функция доступна для других функций в самом модуле.

Если вы добавили в модуль манифест модуля (а это необходимо), советую указать отдельные функции, которые вам нужно экспортировать, в раздел FunctionsToExport манифеста модуля.

Нет необходимости использовать оба в файле и в разделе FunctionsToExport манифеста модуля. Достаточно использовать один из них.

Используем Invoke-Command для параллельного запуска команд на нескольких компьютерах

Командлет Invoke-Command можно использовать для параллельного выполнения команд на нескольких удаленных компьютерах.

В самом просто случае имена компьютеров, на которых нужно выполнить команды указываются через запятую:

Invoke-Command server1, server2, server3 -ScriptBlock {get-date}

1 Invoke-Command server1,server2,server3-ScriptBlock{get-date}

Список компьютеров можно поместить в переменную (массив):

$servers = @(″server1″,″server2″,″server3″)
Invoke-Command -ScriptBlock { get-date} -ComputerName $servers

1
2

$servers=@(″server1″,″server2″,″server3″)

Invoke-Command-ScriptBlock{get-date}-ComputerName$servers

Или получить из текстового файла:

Invoke-Command -ScriptBlock {Restart-Service spooler} -ComputerName(Get-Content c:\ps\servers.txt)

1 Invoke-Command-ScriptBlock{Restart-Service spooler}-ComputerName(Get-Contentc\ps\servers.txt)

Также можно получить список компьютеров в ADс помощью командлета Get-ADComputer из модуля AD PowerShell:

Чтобы выполнить команду на всех Windows Server в домене, исопльзуйте такой код:

$computers = (Get-ADComputer -Filter ‘operatingsystem -like «*Windows server*» -and enabled -eq «true»‘).Name
Invoke-Command -ComputerName $computers -ScriptBlock {get-date} -ErrorAction SilentlyContinue

1
2

$computers=(Get-ADComputer-Filter’operatingsystem -like «*Windows server*» -and enabled -eq «true»‘).Name

Invoke-Command-ComputerName$computers-ScriptBlock{get-date}-ErrorAction SilentlyContinue

Если компьютер выключен, или недоступен, благодаря параметру SilentlyContinue скрипт не будет остановлен и продолжит выполнение на других компьютерах.

Чтобы понять с какого компьютера получены результаты, нужно использовать специальную переменную окружения PSComputerName.

$results = Invoke-Command server1, server2, server3 -ScriptBlock {get-date}
$results | Select-Object PSComputerName, DateTime

1
2

$results=Invoke-Command server1,server2,server3-ScriptBlock{get-date}

$results|Select-ObjectPSComputerName,DateTime

При запуске команды через Invoke-Command на нескольких компьютерах она выполняется параллельно. В Invoke-Command есть ограничение на максимальное количество компьютеров, которыми можно управлять одновременно (ограничение на количество одновременных PSSession). Оно определяется параметром ThrottleLimit (по умолчанию 32). Если вам нужно выполнить команду одновременно более чем на 32 компьютерах (например, на 128), используйте параметр –ThrottleLimit 128 (но это вызывает повышенную нагрузку на ваш компьютер).

Для запуска команд на удаленных компьютерах через Invoke-Command в фоновом режиме используется специальный атрибут 
–AsJob. В этом случае результат выполнения команды не возвращается в консоль. Чтобы получить результаты нужно использовать командлет 
Receive-Job.

Общие параметры конфигурации

ExecutionPolicy

Важно!

эта конфигурация применима только на платформах Windows.

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

Для конфигураций AllUsers этот параметр задает политику выполнения LocalMachine .
Для конфигураций CurrentUser этот параметр задает политику выполнения CurrentUser .

Примечание

Командлет изменяет этот параметр в файле конфигурации ALLUSERS при вызове с параметром и изменяет его в файле конфигурации CurrentUser при вызове с помощью .

Где:

  • Указывает идентификатор текущего узла PowerShell. Для обычной среды PowerShell Core это . В любом сеансе PowerShell его можно обнаружить с помощью .
  • Указывает на допустимое имя политики выполнения.

В следующем примере для политики выполнения PowerShell задается значение .

в Windows соответствующие разделы реестра можно найти в разделах и .

PSModulePath

Переопределяет параметры для этого сеанса PowerShell. Если конфигурация предназначена для текущего пользователя, задает путь к модулю CurrentUser . Если конфигурация предназначена для всех пользователей, задает путь к модулю ALLUSERS .

Предупреждение

Настройка пути к модулю ALLUSERS или CurrentUser не приводит к изменению расположения установки с заданной областью для командлетов PowerShellGet, таких как Install-Module. Эти командлеты всегда используют пути модулей по умолчанию .

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

Этот параметр позволяет использовать переменные среды, внедряя их между символами, например, так же, как это делает команда cmd. Этот синтаксис также применим в Linux и macOS. Пример см. ниже.

Где:

абсолютный путь к каталогу модуля. Для всех пользовательских конфигураций это каталог общего модуля AllUsers. Для текущих пользовательских конфигураций это каталог модулей CurrentUser.

в этом примере показана конфигурация для Windowsной среды:

В этом примере показана Конфигурация для среды macOS или Linux.

В этом примере показано внедрение переменной среды в конфигурацию

обратите внимание, что с помощью переменной среды и разделителя каталогов это будет работать в Windows, macOS и Linux

В этом примере показано внедрение переменной среды в конфигурацию, которая будет работать только в macOS и Linux:

Примечание

Переменные PowerShell не могут быть внедрены в конфигурации.
в конфигурациях Linux и macOS учитывается регистр. Конфигурация должна использовать допустимые разделители каталогов для платформы. В macOS и Linux это означает . на Windows и будет работать.

експерименталфеатурес

Имена экспериментальных функций, которые необходимо включить в PowerShell. По умолчанию экспериментальные функции не включены. Значение по умолчанию — пустой массив.

Где:

имя экспериментальной функции, которую необходимо включить.

В следующем примере включаются экспериментальные функции псимплиЦитремотинг и Псусеаббревиатионекспансион при запуске PowerShell.

Дополнительные сведения о экспериментальных функциях см. в разделе использование экспериментальных функций.

ПОДРОБНОЕ ОПИСАНИЕ

Файл содержит параметры конфигурации для PowerShell Core. PowerShell загружает эту конфигурацию при запуске. Параметры также можно изменить во время выполнения. ранее эти параметры хранились в реестре Windows для PowerShell, но теперь содержатся в файле для включения настройки в macOS и Linux.

Предупреждение

Нераспознанные ключи или недопустимые значения в файле конфигурации игнорируются без уведомления. Если файл содержит недопустимый код JSON, PowerShell не сможет запустить интерактивный сеанс. В этом случае необходимо исправить файл конфигурации.

Конфигурация AllUsers (общая)

Файл в каталоге определяет конфигурацию всех сеансов PowerShell Core, выполняемых из этой установки PowerShell Core.

Примечание

Расположение определяется в том же каталоге, что и исполняемая System.Management.Automation.dll сборка. Это относится и к размещенным экземплярам пакета SDK для PowerShell.

Конфигурации CurrentUser (на пользователя)

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

Запуск PowerShell из командной строки

Если вы хотите запустить файл сценария в PowerShell из командной строки, вы должны изменить политику, выполнив следующие действия:

  1. Откройте Пуск.
  2. Найдите PowerShell, щелкните правой кнопкой мыши верхний результат и выберите параметр «Запуск от имени администратора».
  3. Введите следующую команду, чтобы разрешить выполнение сценариев, и нажмите Enter: Set-ExecutionPolicy RemoteSigned
  4. Введите A и нажмите Enter.
  5. Введите следующую команду для запуска скрипта и нажмите Enter: & «C: \ PATH \ TO \ SCRIPT \ first_»

В приведенной выше команде обязательно измените «PATH\TO\SCRIPT» на местоположение вашего скрипта.

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

В Windows 10 PowerShell включают четыре политики выполнения:

  • Restricted — останавливает запуск любого скрипта.
  • RemoteSigned — запускает скрипты, созданные на устройстве. Однако сценарии, созданные на другом компьютере, не будут выполняться, если они не содержат подписи доверенного издателя.
  • AllSigned — все сценарии будут выполняться, если они подписаны доверенным издателем.
  • Неограниченный — запускает любой скрипт без каких-либо ограничений.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector