ShS's Blog

Just another sysadmin's weblog

Posts Tagged ‘Profile’

Делимся своими профилями PowerShell

Posted by shs на 2009/12/28

Решил присоединиться к благородному движению по публикации профилей PowerShell. ;)

Собственно, вот он, мой профиль:

# Еще один алиас для get-help (мне так удобнее)
Set-Alias gh get-Help
#from PSCX
$IsElevated=$false
foreach ($sid in [Security.Principal.WindowsIdentity]::GetCurrent().Groups) {
    if ($sid.Translate([Security.Principal.SecurityIdentifier]).IsWellKnown([Security.Principal.WellKnownSidType]::BuiltinAdministratorsSid)) {
        $IsElevated=$true
    }
}
# Формируем приглашение командной строки и заголовок окна PoSh
Function Prompt  {
    #Поменяем заголовок окна
    (Get-Host).UI.RawUI.WindowTitle="PS # $env:computername # $env:userdomain\$env:username  #  $(Get-Location)"
    #Определяем значение переменной $PromptStr, которая будет содержать приглашение командной строки
    $HistoryCount=(Get-History -Count 1).Id+1
    if ($NestedPromptLevel) {$PromtStr="PS($HistoryCount)>nested($NestedPromptLevel)>"} else {$PromtStr="PS($HistoryCount)>"}
    #Если мы работаем с правами лок. админа, то текст приглашения командной строки - красный
    #иначе - зеленый
    if ($isElevated) {$PromptColor = "Red"} else {$PromptColor = "Green"}
    #Выводим на экран приглашение командной строки
    Write-Host $PromtStr -ForegroundColor $PromptColor -NoNewline
    #
    " "
    #
    ##############################################################################################
    #### Синхронизируем текущую папку хостового приложения (PowerShell.exe) и 
    #### текущую папку "внутри" хостового приложения, 
    #### которая может быть установлена при помощи set-location
    #### http://xaegr.wordpress.com/2009/05/14/prompt/ 
    #
    [Environment]::CurrentDirectory=(Get-Location -PSProvider FileSystem).ProviderPath
}
#
#############################################################################################
"Добавление всех зарегистрированных оснасток..."
#
get-pssnapin -registered | add-pssnapin -passthru -ErrorAction SilentlyContinue
"... и модулей...`n"
Get-Module -ListAvailable| Import-Module -PassThru -ErrorAction SilentlyContinue
"...готово`n"
#
#
##############################################################################################
#### Установим кодовую страницу передачи данных по конвейеру
#### для native applicatition (не командлетов, таких как findstr, dsquery, etc.)
#### http://blogs.msdn.com/powershell/archive/2006/12/11/outputencoding-to-the-rescue.aspx ###
#
$OutputEncoding = [Console]::OutputEncoding
#

Ничего оригинального, но мне нравится ;)

Поясню чуть более подробно содержимое некоторых частей моего профиля.  Читать далее…

Posted in PowerShell, Scripts | Отмечено: , , | Leave a Comment »