Calcweb.ru

Информационный портал
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое профили PowerShell и как они создаются

Использование файлов профилей PowerShell

date17.11.2021
useritpro
directoryPowerShell, Windows 10, Windows Server 2016
commentsОдин комментарий

Профиль PowerShell это по сути обычный PowerShell скрипт (PS1), который запускается вместе с PowerShell и чаще всего используется как логон-скрипт для настройки среды. В PowerShell профиль вы можете добавить собственные функции, команды, псевдонимы, импортировать необходимые PowerShell модули, задать переменные окружения, изменить внешний вид и настройки консоли PowerShell. Все элементы в профиле автоматически будут доступны в каждой новой PowerShell сессии.

В Windows PowerShell есть несколько путей для хранения профилей. В следующей таблице все пути перечислены в порядке приоритета (сначала идет профиль с наивысшим приоритетом):

Если вы хотите выполнить настройку сессии PowerShell для всех пользователей компьютера, нужно использовать файл $PROFILE.AllUsersAllHosts . Для настройки PowerShell профиля только для текущего пользователя, сохраняйте настройки в $PROFILE.CurrentUserCurrentHost .

Чтобы найти свой PowerShell профиль, достаточно выполнить команду $Profile . По умолчанию путь к PowerShell профилю пользователя выглядит так: C:UsersusernameDocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1

  • В Windows PowerShell переменная окружения $Home ссылается на каталог профиля текущего пользователя (C:Usersusername). $PsHome – указывает на каталог установки PowerShell (C:WindowsSystem32WindowsPowerShellv1.0).
  • В новых версиях PowerShell Core 7.x переменная $PSHome ссылается на C:Program FilesPowerShell7. профиль хранится в файле /opt/microsoft/powershell/profile.ps1 или /usr/local/microsoft/powershell/7/profile.ps1.

У PowerShell ISE есть собственные файлы профилей:

$PsHomeMicrosoft.PowerShellISE_profile.ps1Все пользователи
$HomeDocumentsWindowsPowerShellMicrosoft.PowerShellISE_profile.ps1Текущий пользователь

Свои файлы профилей есть и у Visual Studio Code (при использовании в качестве редактора для PowerShell скриптов):

$PSHOMEMicrosoft.VSCode_profile.ps1Все пользователи
$HomeDocumentsPowerShellMicrosoft.VSCode_profile.ps1Текущий пользователь

Все пути к профилям содержаться в переменные окружения $PROFILE.

$PROFILE | Get-Member -Type NoteProperty

Чтобы обратится к конкретному профилю (например, к профилю текущего пользователя):

Чтобы проверить, создан ли профиль текущего пользователя, выполните:

Test-Path -Path $PROFILE.CurrentUserCurrentHost

В данном примере файл профиля PowerShell для текущего пользователя не создан (False).

PS1 файлы профилей PowerShell

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

if (!(Test-Path -Path $PROFILE)) <
New-Item -ItemType File -Path $PROFILE -Force
>

Вы можете отредактировать с помощью любого текстового редактора. Например, вы можете отредактировать файл профиля с помощью:

  • Блокнота: notepad $profile
  • PowerShell ISE: ise $profile.CurrentUserCurrentHost
  • Visual Studio Code: code $profile.CurrentUserCurrentHost

Попробуем настроить наш PowerShell профиль. Настроим цвет, заголовок консоли (выведем версию PowerShell), изменим каталог PowerShell по-умолчанию, выведем имя компьютера в строке PS:

function CustomizePSConsole <
$Host.ui.rawui.foregroundcolor = «cyan»
$hostversion=»$($Host.Version.Major)`.$($Host.Version.Minor)»
$Host.UI.RawUI.WindowTitle = «This is PowerShell $hostversion»
Set-Location ‘C:PS’
Clear-Host
>
CustomizePSConsole

Выведем имя компьютера в строке PS:

function Prompt
<
$env:COMPUTERNAME + «|» + (Get-Location) + «> «
>

Можно, например, подключить сетевой диск:

New-PSDrive –Name “Tools” –PSProvider “FileSystem” –Root “\FS01Tools”

добавляем функции в профиль PowerShell Microsoft.PowerShell_profile.ps1

Если вы часто используете PowerShell для управления тенатом Azure или Microsoft 365, можно при каждом запуске консоли запрашивать, нужно ли сразу подключиться к облачному сервису. Следующий скрипт, если вы ответите Y, запросит ваш пароль и подключит вас к вашему тенанту Exchange Online:

$connectM365= Read-Host «Connect to Exchange Online? (Y/N)»
If ($connectM365 -eq «Y»)<
$LiveCred = Get-Credential
Connect-ExchangeOnline –Credential $LiveCred
>

В конце профиля можно добавить строку Clear-Host для очистки консоли. Сохраните файл профиля Microsoft.PowerShell_profile.ps1 и перезапустите консоль PowerShell. При следующем запуске все настройки из профиля автоматически применяться для вашей консоли и ее вид измениться.

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

Если вы хотите, чтобы ваш профиль PowerShell применялся и к удаленным сессиям, используйте команду:

Invoke-Command -Session $s -FilePath $PROFILE

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Как работать в Powershell с модулями и профилями и повторно использовать данные

Работа с профилями и модулями Powershell и повторное использование данных

Работая в Powershell можно столкнутся с неудобствами, когда вам всегда нужна какая-то переменная или функция (созданная вами), но после закрытия консоли (сессии) эти данные всегда исчезают. При открытии консоли вы либо копируете старый код либо печатаете все заново. Обойти эти проблемы можно использовав встроенные методы работы в Powershell: профили, модули и переменные окружения. Каждый из этих методов имеет свои отличия, но все они решают проблему с излишними действиями.

Читайте так же:
Как удалить Avast с компьютера полностью

Навигация по посту

Профили

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

Создание

Каждый профиль пользователя хранится в файле ".ps1" и путь до него можно посмотреть используя встроенную переменную:

Расположение профиля пользователя в Powershell

Вы можете открыть этот файл и вписать в него любую команду. Я использую команду, которая проверит соединение с DNS сервером Google:

Скрипт срабатывающий при открытии консоли Powershell

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

Скрипт срабатывающий при открытии консоли Powershell

Отмечу, что это не самый удачный пример т.к. эта команда занимает существенное время на выполнение. Вы вряд ли захотите ждать 4-5 секунд для запуска консоли.

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

Загрузка Powershell с переменной

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

Использование функции при загрузке консоли Powershell

Типы профилей

Если посмотреть содержание переменной $Profile более детально, то мы увидим 4 типа профилей:

Типы профилей для работы в Powershell

В выведенной информации можно увидеть понятие 'host'. Под "хостом" подразумевается программа, которая хостит Powershell. Это может быть стандартная консоль, редактор ISE, VisualStudio и т.д.

Мы так же увидим следующие профили:

  • AllUsersAllHosts — профиль для всех пользователей и для всех хостов;
  • AllUsersCurrentHost — профиль для всех пользователей и только для текущего хоста;
  • CurrentUserAllHosts — профиль для текущего пользователя и для всех хостов;
  • CurrentUserCurrentHost — профиль для текущего пользователя и только для этого хоста.

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

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

Запуск средства разработки Powershell ISE и обычной консоли был следующий:

Разница профилей в Powershell

Как видно, в ISE, отображаются не все профили. Связано это с тем, что консоль Powershell и редактор ISE — это разные хосты. Мы можем увидеть немного отличающиеся профили если запустить эту команду в ISE:

Профили редактора ISE в Powershell

Так же вы можете увидеть дополнительные профили если используете Powershell Core 6/7, VisualStudio и т.д..

Профиль при удаленном подключении

Прямых способов использования профилей при удаленном подключении нет. Есть косвенный способ, который заключается в возможности использования файлов со скриптами в команде "Invoke-Command". Следующий пример демонстрирует такую возможность:

На самом деле эта команда выглядит следующим образом:

Как отправлять письма используя Powershell Send-MailMessage

Модули

Модуль Powershell — это файл формата "*.psm1" объединяющий в себе одну или несколько функций (команд). Powershell проверяет папки с модулями и выводит основную информацию о них. Когда вам нужно использовать какую-то команду, то Powershell повторно обращается к файлу модуля для ее выполнения.

Отличие модуля от профиля в том, что профиль загружает все в оперативную память сразу, а модуль по требованию (обращению).

Каждая команда (функция) Powershell относится к какому-то модулю. Увидеть модули можно с помощью нескольких команд, одна из них следующая:

Команды и модули Powershell

Эти модули находятся в определенных директориях. Пути до этих директорий описаны в переменной глобального окружения и вывести ее можно так:

Список путей для создания модулей Powershell

Вы можете поместить свой модуль в любую директорию, но в основном они делятся на следующие:

  • В папке "Windows" — хранятся модули, которые относятся к самому Powershell. Они появляются при установке Windows и могут быть написанные на других языках;
  • В "Program Files" — лежат модули, которые устанавливаются отдельно (например из какого-то репозитория);
  • "Users" — обычно пустой и подразумевается, что в нем лежат ваши личные модули.

Какие модули и где находятся можно увидеть с помощью следующей команды:

Читайте так же:
Обзор новой Windows 10: универсальная система на все случаи жизни

Список модулей и их расположения Powershell

Создание

Что бы создать модуль вам нужно создать папку и файл по одному из путей полученных раннее. Папка и файл должны иметь одинаковые имена. Для примера я создал файл модуля и папку с названием "MyModule" по следующему пути:

В этот файл я поместил следующую функцию:

При открытии новой консоли Powershell мы сможем сразу использовать эту команду:

Использование созданного модуля Powershell

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

Манифесты и справки

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

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

Пример манифеста можно увидеть на примере "AppLocker" и следующей команды:

Вывод манифеста модуля Powershell

Манифест подразумевает создание дополнительного файла по тому же пути что и сам модуль. Название модуля, папки и файла манифеста должны совпадать. Расширение манифеста должно быть psd1. Т.е. используя предыдущий пример мой файл манифеста и модуль будут иметь следующие пути:

В этом файл нужно поместить массив с вашими значениями следующего формата:

Ключи заранее определены и вы не можете использовать произвольные. Манифест можно создать скопировав его у существующего модуля (путь указан в ModuleBase со скриншота выше) либо использовать команду New-ModuleManifest. Эту команду можно использовать как генератор шаблона, так и используя ключи:

Создание шаблона манифеста пользователя Powershell

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

Справка в Powershell описывает работу не модуля, а функции/команды. Справку можно увидеть в следующем примере:

Создание справки Powershell

Самой важной частью справки, на мой взгляд, является раздел с примерами:

Создание справки Powershell и описания

Сама справка описывается внутри модуля у каждой функции отдельно. Обычно используется следующий шаблон:

Удаленное выполнение модулей

Самый тривиальный способ передать команду — это использование Invoke-Command:

Минус этого способа в том, что у вас может быть с 10-ок модулей, которые вы захотите использовать. В Powershell есть интересный способ импортировать модули с удаленного компьютера на локальный. Для этого мы должны создать сессию с New-PSSession, а затем импортировать с этой сессии модули. В примере ниже я импортировал модуль "ActiveDirectory" не имея его на локальном компьютере:

Импорт модуля с удаленного хоста в Powershell

Изменение PSModulePath и добавление сетевого хранилища модулей

Еще одна не очевидная возможность — это создание сетевого пути для хранения модулей. Это может пригодится, если вы создаете свои модули в команде или используете их на множестве компьютерах. Что бы вы их могли читать — вам нужно будет изменить переменную окружения "PSModulePath" добавив в нее путь формата:

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

Этот путь можно занести в переменные окружения обычным способом через GUI либо с помощью следующих команд Powerhsell:

Использование модуля по сетевому пути Powershell

Новое значение в PSModulePath появится после перезапуска консоли.

Переменные окружения

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

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

Чтение

Для получения переменных окружения вы можете использовать 2 способа. Первый — через встроенную переменную $env. Так это будет выглядеть на примере переменной Path:

Читайте так же:
Создание дампов оперативной памяти в Windows

Вывод переменных окружения Powershell

Еще один способ заключается в том, что в Powershell переменные окружения располагаются как отдельный раздел в который вы можете перейти и вывести все значения:

Вывод переменных окружения Powershell

Открыть значение любой переменно можно так же как и любой другой файл:

Переменные окружения делятся на несколько типов: machine -> user -> process, .

  • machine — относится к ОС и эти переменные может прочитать любой пользователь;
  • user — относятся к конкретному пользователю. Эти значения перезаписывают значения machine;
  • process — динамические переменные, которые создаются при запуске процесса. Они являются совмещением user + machine.

Используя способы выше вы видите только динамические переменные. Если у вас есть 2 одинаковых переменных на пользовательском и системном уровне вы можете использовать метод .NET для получения конкретной переменной:

Вывод системных переменных окружения Powershell используя метод .NET

Либо вы можете все переменные окружения конкретного типа:

Создание

Переменную окружения, которая будет жить в рамках одной сессии Powershell, можно создать следующей командой:

Создание временной переменной окружения Powershell

При закрытии консоли, переменна созданная выше, будет удалена. Исправить это можно использовав методы .NET. В следующем примере мы создадим переменную типа "Machine", но уже постоянную:

Создание постоянной системной переменной окружения в Powershell используя .NET

Аналогичное действие, но для пользовательских переменных:

Создание постоянной пользовательской переменной окружения в Powershell используя .NET

Изменение и удаление

Изменить переменную окружения, на текущую сессию, можно следующими способом:

Профили Windows PowerShell

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

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

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

Основные сведения о профилях

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

    %windir%system32WindowsPowerShellv1.0profile.ps1

Действие этого профиля распространяется на всех пользователей и все оболочки.

Действие этого профиля распространяется на всех пользователей, но только на одну оболочку — Microsoft.PowerShell.

Действие этого профиля распространяется только на текущего пользователя и на все оболочки.

Действие этого профиля распространяется только на текущего пользователя и только на оболочку Microsoft.PowerShell.

Создание профиля

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

Для сохранения и обеспечения доступности во всех сеансах добавьте в профиль Windows PowerShell постоянно используемые переменные, псевдонимы, функции и команды.

Можно также создавать и распространять профили для обеспечения согласованного представления оболочки Windows PowerShell в крупных средах.

Автоматически профили Windows PowerShell не создаются. Чтобы создать профиль, создайте текстовый файл с одним из указанных выше имен в указанном месте. Обычно при работе с оболочкой Windows PowerShell используется профиль, специфичный для пользователя и оболочки, который называется пользовательским профилем. Данные о расположении этого профиля хранятся в переменной $profile.

Для вывода пути к профилю Windows PowerShell введите команду:

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

Если профиль существует, эта команда вернет True, в противном случае — False.

Для создания файла профиля Windows PowerShell введите следующую команду:

Чтобы открыть профиль в Блокноте, введите следующую команду:

Чтобы создать какой-либо из других профилей, например профиль, действие которого распространяется на всех пользователей и все оболочки, введите следующую команду:

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

Читайте так же:
Что такое СберПрайм

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

Если не заключить имя файла в кавычки, Блокнот дополнит его расширением TXT и оболочка Windows PowerShell не сможет распознать файл.

В профиле обычно хранятся псевдонимы, функции и переменные, используемые чаще всего. Очень полезной является функция, открывающая профиль в любимом текстовом редакторе пользователя. Например, следующая команда создает функцию pro, которая открывает пользовательский профиль в Блокноте:

Грамотно созданный профиль может упростить использование оболочки Windows PowerShell и администрирование системы.

about_Profiles

Описание создания и использования профиля PowerShell.

Подробное описание

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

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

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

В этом разделе объясняется, как использовать параметр " Непрофиль " консоли powershell (PowerShell.exe) для запуска PowerShell без профилей. Кроме того, в нем объясняется воздействие политики выполнения PowerShell на профили.

Файлы профиля

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

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

Пути к профилю включают следующие переменные:

  • $PSHOME Переменная, в которой хранится каталог установки для PowerShell.
  • $Home Переменная, в которой хранится домашний каталог текущего пользователя.

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

ОписаниеПуть
Все пользователи, текущий узел$PSHOME Microsoft.VSCode_profile.ps1
Текущий пользователь, текущий узел$Home [мои] документы PowerShell
Microsoft.VSCode_profile.ps1

В справке PowerShell профиль "CurrentUser, текущий узел" является профилем, который чаще всего называется "вашим профилем PowerShell".

в Windows расположение папки документы можно изменить с помощью перенаправления папок или OneDrive. Мы не рекомендуем перенаправлять папку «документы» в сетевую папку или включить ее в OneDrive. Перенаправление папки может привести к сбою сценариев профиля и сбою загрузки модулей.

Переменная $PROFILE

$PROFILE Автоматическая переменная сохраняет пути к профилям PowerShell, доступным в текущем сеансе.

Чтобы просмотреть путь к профилю, отобразите значение $PROFILE переменной. Можно также использовать $PROFILE переменную в команде для представления пути.

$PROFILE Переменная хранит путь к профилю "текущий пользователь, текущий узел". Другие профили сохраняются в свойствах заметки $PROFILE переменной.

например, $PROFILE переменная имеет следующие значения в консоли Windows PowerShell.

ОписаниеИмя
Текущий пользователь, текущий узел$PROFILE
Текущий пользователь, текущий узел$PROFILE.CurrentUserCurrentHost
Текущий пользователь, все узлы$PROFILE.CurrentUserAllHosts
Все пользователи, текущий узел$PROFILE.AllUsersCurrentHost
Все пользователи, все узлы$PROFILE.AllUsersAllHosts

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

Чтобы просмотреть текущие значения $PROFILE переменной, введите:

Переменную можно использовать $PROFILE во многих командах. например, следующая команда открывает профиль "текущий пользователь, текущий узел" в Блокнот:

Следующая команда определяет, был ли создан профиль "все пользователи, все узлы" на локальном компьютере:

Создание профиля

Чтобы создать профиль PowerShell, используйте следующий формат команды:

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

В этой команде If инструкция не позволяет перезаписывать существующий профиль. Замените значение <profile-path> заполнителя на путь к файлу профиля, который необходимо создать.

чтобы создать профили "все пользователи" в Windows Vista и более поздних версиях Windows, запустите PowerShell с параметром " запуск от имени администратора ".

Изменение профиля

любой профиль PowerShell можно открыть в текстовом редакторе, например Блокнот.

чтобы открыть профиль текущего пользователя в текущем ведущем приложении PowerShell в Блокнот, введите:

Чтобы открыть другие профили, укажите имя профиля. Например, чтобы открыть профиль для всех пользователей всех ведущих приложений, введите:

Чтобы применить изменения, сохраните файл профиля и перезапустите PowerShell.

Выбор профиля

Если вы используете несколько ведущих приложений, помещайте элементы, используемые во всех ведущих приложениях, в $PROFILE.CurrentUserAllHosts профиль. Размещение элементов, относящихся к ведущему приложению, например команды, устанавливающей цвет фона для ведущего приложения, в профиле, характерном для этого хост-приложения.

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

  • Хранение общих элементов в $PROFILE.AllUsersAllHosts профиле
  • Хранение элементов, относящихся к ведущему приложению, в $PROFILE.AllUsersCurrentHost профилях, относящихся к ведущему приложению
  • Хранение элементов для конкретных пользователей в пользовательских профилях

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

Как использовать профиль

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

Команды и элементы, относящиеся к сеансу, включают переменные, привилегированные переменные, псевдонимы, функции, команды (кроме Set-ExecutionPolicy) и модули PowerShell, добавленные в сеанс.

Чтобы сохранить эти элементы и сделать их доступными во всех будущих сеансах, добавьте их в профиль PowerShell.

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

Как запустить профиль

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

Вот несколько советов, которые помогут вам приступить к работе.

Добавьте команды, упрощающие открытие профиля

Это особенно полезно, если используется профиль, отличный от профиля "текущий пользователь, текущий узел". Например, добавьте следующую команду:

Добавление функции, которая перечисляет псевдонимы для любого командлета

Настройка консоли

Добавление настраиваемой командной строки PowerShell

Дополнительные сведения о командной строке PowerShell см. в разделе about_Prompts.

Параметр параметра непрофиля

Чтобы запустить PowerShell без профилей, используйте параметр PowerShell.exe, программу, запускающую PowerShell.

Для начала откройте программу, в которой можно запустить PowerShell, например Cmd.exe или PowerShell. Можно также использовать диалоговое окно выполнить в Windows.

Чтобы получить полный список параметров PowerShell.exe, введите:

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

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

Set-ExecutionPolicy Команда задает и изменяет политику выполнения. Это одна из нескольких команд, которые применяются во всех сеансах PowerShell, поскольку значение сохраняется в реестре. Его не нужно задавать при открытии консоли, и нет необходимости хранить Set-ExecutionPolicy команду в профиле.

Профили и удаленные сеансы

Профили PowerShell не запускаются автоматически в удаленных сеансах, поэтому команды, добавленные профилями, отсутствуют в удаленном сеансе. Кроме того, $PROFILE Автоматическая переменная не заполняется в удаленных сеансах.

Чтобы запустить профиль в сеансе, используйте командлет Invoke-Command .

Например, следующая команда запускает профиль "текущий пользователь, текущий узел" с локального компьютера в сеансе $s .

Следующая команда запускает профиль "текущий пользователь, текущий узел" с удаленного компьютера в сеансе $s . Так как $PROFILE переменная не заполнена, команда использует явный путь к профилю. Мы используем оператор "точка с точкой", чтобы профиль выполнялся в текущей области на удаленном компьютере, а не в собственной области.

После выполнения этой команды команды, которые профиль добавляет в сеанс, будут доступны в $s .

голоса
Рейтинг статьи
Ссылка на основную публикацию