sergey vasin

The IT blog

Разбираемся с использованием профилей PowerShell – Hey, Scripting Guy! Blog

leave a comment »

Резюме: Microsoft Scripting Guy, Ed Wilson рассказывает о профилях Windows PowerShell.

Microsoft Scripting Guy, Ed Wilson на связи. Сегодня я опубликую еще один отрывок из моей новой книги Windows PowerShell 3.0 Step by Step, которая сейчас доступна для предзаказа. Это будет выдержка из главы, посвященной профилям и их расположениям.

6 различных профилей PowerShell

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

Описание Путь
Текущий пользователь, текущий хост – консоль $Home\[My ]Documents\WindowsPowerShell\Profile.ps1
Текущий пользователь, все хосты $Home\[My ]Documents\Profile.ps1
Все пользователи, текущий хост – консоль $PsHome\Microsoft.PowerShell_profile.ps1
Все пользователи, все хосты $PsHome\Profile.ps1
Текущий пользователь, текущий хост – ISE $Home\[My ]Documents\WindowsPowerShell\Microsoft.P owerShellISE_profile.ps1
Все пользователи, текущий хост — ISE $PsHome\Microsoft.PowerShellISE_profile.ps1

Разбираемся с шестью различными профилями Windows PowerShell

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

Заметка: Профиль Windows PowerShell (любой их шести) – это скрипт Windows PowerShell. Он обладает особым именем и расположен в особом месте, но это просто скрипт. В этом отношении он сродни старому доброму autoexec.bat. Так как профиль Windows PowerShell – это скрипт, перед его использованием вам нужно изменить политику выполнения (Execution Policy).

Знакомимся с переменной $profile

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

PS C:\> $profile

C:\Users\ed.IAMMRED\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Если я запрошу эту переменную из Windows PowerShell ISE, я получу следующий вывод.

PS C:\Users\ed.IAMMRED> $profile

C:\Users\ed.IAMMRED\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1

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

Заметка: Эти три буквы могут доставить нам некоторые неудобства. Если вы указываете что-либо в профиле консоли Windows PowerShell, это будет недоступно в Windows PowerShell ISE.

Несколько профилей переменной $profile

Вы можете передать переменную $profile командлету Get-Member и увидеть дополнительные свойства, присутствующие в переменной.

PS C:\> $PROFILE | Get-Member -MemberType noteproperty | select name

Name

—-

AllUsersAllHosts

AllUsersCurrentHost

CurrentUserAllHosts

CurrentUserCurrentHost

Если вы запрашиваете переменную $profile из консоли Windows PowerShell, свойства AllUsersCurrentHost и CurrentUserCurrentHost относятся к консоли Windows PowerShell. Если же запрос происходит из Windows PowerShell ISE, свойства AllUsersCurrentHost и CurrentUserCurrentHost относятся к Windows PowerShell ISE.

Используем переменную $profile для получения путей к остальным профилям

Когда вы запрашиваете переменную $profile, по умолчанию она возвращает путь к профилю текущего пользователя, текущего хоста. Если вы передадите переменную командлету Format-List, она по-прежнему возвратит путь к профилю текущего пользователя, текущего хоста.

PS C:\> $PROFILE | Format-List *

C:\Users\ed.IAMMRED\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Это может сбить с толку, так как командлет Get-Member показывает существование нескольких профилей и нескольких свойств. Чтобы увидеть пути ко всем профилям, нужно использовать параметр –Force.

$PROFILE | Format-List * -Force

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

01

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

$PROFILE.CurrentUserAllHosts

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

02

Проверяем существование определенного профиля

Для определения того, существует ли конкретный профиль используйте командлет Test-Path и нужный вид переменной $profile. Например, для определения существования профиля текущего пользователя, текущего хоста вы можете использовать переменную $profile без дополнительных модификаций, либо вы можете указать свойство currentusercurrenthost.

PS C:\> test-path $PROFILE

True

PS C:\> test-path $PROFILE.CurrentUserCurrentHost

True

PS C:\>

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

PS C:\> test-path $PROFILE.AllUsersAllHosts

False

PS C:\> test-path $PROFILE.AllUsersCurrentHost

False

PS C:\> test-path $PROFILE.CurrentUserAllHosts

False

PS C:\>

Автор:

Ed Wilson, Microsoft Scripting Guy

Оригинал:

http://blogs.technet.com/b/heyscriptingguy/archive/2013/01/04/understanding-and-using-powershell-profiles.aspx


Страницы в социальных сетях:

Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell


Реклама

Written by Сергей Васин

Январь 7, 2013 в 12:57

Опубликовано в HeyScriptingGuyBlog, PowerShell

Tagged with

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s