코딩/Windows

Powershell에서 관리자 권한으로 실행 여부 확인하기

해보^^ 2024. 10. 21. 15:47
반응형

이전 포스팅에서 Oh My Posh를 사용하여 Powershell에 테마를 적용하여 사용하고 있는데 '관리자 권한으로 실행'시 프롬프트 라인이 밀리는 현상이 발생하였다. 이걸 나름대로 해결한 방법을 정리해 본다.

Oh My Posh를 이용한 Windows Powershell 설정

 

예를 들면 다음과 같다.

정상적으로 적용된 경우
정상적으로 적용된 경우
관리자 권한으로 실행된 경우 한줄 밀림
관리자 권한으로 실행된 경우 한줄 밀림

 

그래서 Powershell의 프로파일에서 '관리자 권한으로 실행'시 우측 시간과 속도표시를 제거하기로 함

 

1. 기존 테마파일을 복사해서 '관린자 권한으로 실행'시 해당 테마를 호출하기로 함

2. 복사한 테마파일에서 우측 속성 제거후 별도의 테마파일로 저장

{
  "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
  "blocks": [
    {
      "alignment": "right",
      "segments": [
        {
          "background": "#003543",
          "foreground": "#ffffff",
          "style": "plain",
          "template": " \ue641 {{ .CurrentDate | date .Format }} ",
          "type": "time"
        },
        {
          "background": "#83769c",
          "foreground": "#ffffff",
          "properties": {
            "always_enabled": true
          },
          "style": "plain",
          "template": " \ueba2 {{ .FormattedMs }} ",
          "type": "executiontime"
        }
      ],
      "type": "rprompt"
    },
    {
      "alignment": "left",
      "segments": [
        {
          "background": "#61AFEF",
          "foreground": "#ffffff",
          "properties": {
            "display_host": false
          },
          "style": "diamond",
          "template": "{{if .Root}} \uf0e7 austin {{else}} austin {{end}}",
          "trailing_diamond": "\ue0b0",
          "type": "session"
        },
        {
          "background": "#C678DD",
          "foreground": "#ffffff",
          "powerline_symbol": "\ue0b0",
          "properties": {
            "folder_icon": "\uf115",
            "folder_separator_icon": " \ue0b1 ",
            "max_depth": 2,
            "style": "agnoster_short"
          },
          "style": "powerline",
          "template": " {{ .Path }} ",
          "type": "path"
        },
        {
          "background": "#95ffa4",
          "foreground": "#193549",
          "powerline_symbol": "\ue0b0",
          "style": "powerline",
          "template": " {{ .HEAD }} ",
          "type": "git"
        }
      ],
      "type": "prompt"
    }
  ],
  "console_title_template": "{{if .Root}} \u26a1 {{end}}austin \u2794 📁{{.Folder}}",
  "final_space": true,
  "version": 2
}

3. Powershell 프로파일에서 '관리자 권한으로 실행' 확인 후 조건문 추가

function isAdminMode() {
    return ([Security.Principal.WindowsPrincipal] `
      [Security.Principal.WindowsIdentity]::GetCurrent() `
    ).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
}

if(isAdminMode){
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\austin.omp.admin.json" | Invoke-Expression
}else{
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\austin.omp.json" | Invoke-Expression
}

4. Powershell 실행하기

관리자 권한이 아닌 경우
관리자 권한이 아닌 경우
관리자 권한으로 실행된 경우
관리자 권한으로 실행된 경우

  오른쪽 '관리자 권한으로 실행'시 우측 영역 제거

 

 

반응형

'코딩 > Windows' 카테고리의 다른 글

윈도우(Windows11) 임시파일 삭제  (0) 2024.11.07
CentOS를 Hyper-V에 설치하기  (0) 2024.10.17
Oh-My-Posh를 이용한 Windows Powershell 설정  (2) 2024.10.10