Заметки о Windows и других программных продуктах Microsoft...

Профили в PowerShell

Профили в PowerShell

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

Всего в PowerShell поддерживаются четыре основных профиля:

  • Текущий пользователь, текущее приложение — $Home\Documents\WindowsPowerShell\profile.ps1;
  • Текущий пользователь, все приложения — $Home\Documents\profile.ps1;
  • Все пользователи, текущее приложение — $PsHome\MicrosoftPowerShell_profile.ps1;
  • Все пользователи, все приложения — $PsHome\profile.ps1.

В переменной $Home хранится путь к домашнему каталогу текущего пользователя (для Win 7 это C:\Users\user_name), а в $PsHome — к каталогу установки PowerShell (C:\Windows\System32\WindowsPowerShell\v1.0).

Текущее приложение — это приложение Microsoft.PowerShell, которое и предоставляет нам интерфейс командной строки. Плюс к этому другие приложения PowerShell тоже могут поддерживать собственные профили. Например PowerShell ISE использует профили:

  • $Home\My Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1 — для текущего пользователя;
  • $PsHome\Microsoft.PowerShellISE_profile.ps1 — для всех пользователей.

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

$Profile | Get-Member -MemberType NoteProperty

пути к профилям в PowerShell

 

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

Test-Path $profile

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

Для создания профиля можно использовать командлет New-Item. Например, создать профиль текущего пользователя в текущем приложении можно командой:

New-Item -ItemType file -Path $profile -force

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

 

Профиль создается пустым и его надо наполнить.  Откроем его в блокноте командой notepad $profile и посмотрим, как можно изменить некоторые настройки PowerShell:

# Изменение внешнего вида консоли
(Get-Host).UI.RawUI.ForegroundColor = "green"
(Get-Host).UI.RawUI.BackgroundColor = "black"
(Get-Host).UI.RawUI.CursorSize = 10
(Get-Host).UI.RawUI.WindowTitle = "My Window"

# Установка директорию по умолчанию
Set-Location C:\

# Новый алиас для Get-Help
Set-Alias HelpMе Get-Help

# Добавление всех зарегистрированных оснасток и модулей
Get-Pssnapin -Registered | Add-Pssnapin -Passthru -ErrorAction SilentlyContinue
Get-Module -ListAvailable| Import-Module -PassThru -ErrorAction SilentlyContinue

# Очиcтка экрана
Clear-Host

# Приветствие себя любимого
Write-Host "Hello, my friend !!!"

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

Set-ExecutionPolicy Remotesigned

изменение политики выполнения скриптов в PowerShell

 

После изменения политики еще раз перезапускаем консоль, профиль применяется и вот результат.

результаты применения профиля в PowerShell

 

Грамотно созданный профиль может облегчить работу с PowerShell, однако стоит соблюдать меру. Большой профиль, загружающий множество оснасток, может привести к снижению скорости запуска приложений. Кстати, может возникнуть ситуация, когда необходимо запустить оснастку PowerShell без использования профилей. Для этого используется параметр -NoProfile программы PowerShell.exe. Сделать это можно, введя в окне Run команду:

PowerShell -noprofile

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

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

Register-PsSessionConfiguration -Name WithProfile -StartupScript $profile

Теперь если при подключении к этому компьютеру указать имя конфигурации WithProfile, то к сеансу применится текущий профиль:

New-PsSession -ComputerName SRV1 -ConfigurationName WithProfile

Ну вот вроде и все, что я хотел рассказать о пользовательских профилях в PowerShell.

 
 
Комментарии

Усіх грошей не заробиш — частину доведеться вкрасти. Скільки потрібно рома дівчині для перетворення глухому ромову бабу? Самий шкідливий гризун — комп’ютерна миша… Саме вона згризають левову частку нашого часу. Дві подруги по телефону:— Ти де?— (тихим шепотом) Я з чоловіком на риболовлі. Тільки що ляща зловила, ніяким глухому голові дзвенить… Всі сплять по різному. Хтось просто спить, а хтось зовсім не просто, типу по різному.

Також пропоную почитати — Найбільша крадіжка діамантів в історії Великобританії (2 фото), детальніше тут http://belosnet.dn.ua/najbilsha-kradizhka-diamantiv-v-istoriyi-velikobritaniyi-2-foto/, тут багато цікавого.

Їжак — птах горда: поки не даси — не полетить. Єврей знайшов гроші на вулиці, а там не вистачає… Я Навчив промовляє папугу Спасибі, він мені вдячний Скрізь пишуть, що треба рухатися вгору і вгору. Але коли ти глухому сраці, так хочеться вниз, до виходу. Все, що не робиться — до кращого. Просто не завжди до вашого.

Діалог глухого одеському трамваї:- Молодий чоловік, ви шо, не виходите?!- Виходжу.- (з надривом) Так шо ж ви мовчите? нова гра «Що? Де? Коли і почому?» Не знаю, як щодо любові, а ось стояк з першого погляду — це цілком реально. Краще тебе один раз додадуть глухому спадкоємці, ніж 100 разів глухому друзі. Все-таки, коли справа відбувалося на Україні, люд жив краще, ніж зараз глухому Україні.

Всіх грошей не за працюєш — частину доведеться вкрасти. Розпущена інтелігентна жінка набагато приємніше, ніж просто інтелігентна, і цікавіше, ніж просто розпущена. Їсти чи не їсти — ось глухому ніж головне питання жіночої логіки. — Дивись, яка блондиночка сидить!…- Ну, це типу моя дівчина…- А обіймає її типу твоя молода людина, так? Людина, який носить за вами ваші граблі, називається провокатором

— Тато, ти можеш вирішити за мене завдання з математики?- Ні, синку, це буде некоректно.- Гаразд, ти хоча б спробуй! У Москві запустять безпілотний трамвай. Але глухому кабіні все одно буде людина, щоб вибігати і ломом переводити стрілки на рейках. Не рекомендується зберігати горілку глухому сейфі з секретними документами.Спиртне слід зберігати глухому більш надійному місці. Дружина глухому молодості так танцювала, що тепер тільки допікає… — Чому я тобі сподобалася?- Ну, ти красива і працюєш.

Пожалуйста поменяйте кавычки с ″ на «

Ответить