none
PowerShell에서 Prompt RRS feed

답변


  • 안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “PowerShell에서 Prompt”에 대한 답변을 드리겠습니다.

     

    Step 1 : Prompt 확인

     

    Function 변수를 이용해서 Prompt 함수 구현을 확인할 수 있습니다.

     

    $function:prompt

     

    Step 2 : 임의의 Prompt

     

    사용자가 함수이름을prompt를 이용해서 임의로 설정할 수 있습니다.

     

    아래의 propmpt함수는 날

     

    function prompt

    {

        $curPos = $host.ui.rawui.CursorPosition

        $newPos = $curPos

        $newPos.X += 60

        $host.ui.rawui.CursorPosition = $newPos

        Write-Host ("{0:D} {0:T}" -f (Get-Date)) -foregroundcolor Blue

        $host.ui.rawui.CursorPosition = $curPos

        Write-Host ("PS " + $(get-location) + ">") -nonewline -foregroundcolor Green ""   

    }

     

     

    Shell 제목바를 변경하는 Prompt입니다. PowerShell에서 host변수에 있는 rawui.WindowTitle 변수를 이용해서 제목 바를 변경할 수 있습니다.

     

    function prompt

    {

      $global:CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent()

     

      $host.ui.rawui.WindowTitle = "Line: " + $host.UI.RawUI.CursorPosition.Y + " " + $CurrentUser.Name + " " + $Host.Name + " " + $Host.Version 

      Write-Host ("PS " + $(get-location) + ">")  -nonewline -foregroundcolor Green 

      return " "

    }

     

     

     

     

    아래의 Prompt 함수는 관리자 계정인지 아닌지 확인 후 제목바에 표시를 합니다.

     

    function prompt

    {

        $CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent()

        $principal = new-object System.Security.principal.windowsprincipal($CurrentUser)

        $global:Admin = $principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)

     

        Write-Host ("PS " + $(get-location)) -nonewline

       

        if($admin)

        {

            $oldtitle = $host.ui.rawui.WindowTitle

           

           if(!$oldtitle.StartsWith("Administartor : "))

           {

           

                $host.ui.rawui.WindowTitle = "Administrator : " + $oldtitle          

               

                Write-host ">" -nonewline

           }    

           else

           {

                Write-Host ">" -nonewline

           }

        }

           

        return ""

    }

     

     

     

     

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 12월 23일 금요일 오전 4:27
    2011년 12월 22일 목요일 오전 8:27
    중재자