2010. 8. 2. 11:50

안녕하세요. 엉스데브입니다.

가끔, 현재 작업 중인 PowerShell 창이 관리자 권한을 가지고 있는지를 확인 하고 싶을 때가 있습니다.
아래 명령어를 실행하면, 관리자 권한이 있는지를 확인 할 수 있습니다.
현재 내가 연 PowerShell 창이 관리자 권한을 가졌는지 여부를 확인 하려면, 아래의 명령어를 사용 하면 됩니다.

([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).isInRole([Security.Principal.WindowsBuiltinRole]::Administrator)



False 가 리턴 되는걸 보니 현재 연 PowerShell 창은 관리자 권한이 없네요.

헌데 명령어가 너무 길죠? ^^;
그래서 저는 아래 Function 을 따로 만들어서 Profile 에 추가 해 두었습니다.

Function Test-Role
{
  Param( [Security.Principal.WindowsBuiltinRole]$Role )

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

  $CurrentUser.IsInRole($Role)
}

사용법은 다음과 같습니다.

Test-Role {"체크할 권한"}

지정 한 권한을 가지고 있다면 True 를 반환하고, 그렇지 않다면 False 를 반환 합니다.

이 Function 으로 관리자 권한을 가지고 있는지 확인 하려면, 아래처럼 사용하면 됩니다.

Test-Role "Administrator"



만약, 잘못 된 값을 지정하면 아래와 같이 오류가 반환 됩니다.


에러 메시지 내용에 현재 시도 할 수 있는 값들을 알려주네요.

스크립트 제작시 권한을 체크해야 할 경우, 유용하게 사용 할 수 있을 것 같습니다.

<참고 URL>
http://serverfault.com/questions/95431/in-a-powershell-script-how-can-i-check-if-im-running-with-administrator-privlie

Posted by 알 수 없는 사용자
:
BLOG main image
Windows Server를 공부 하는 사람들의 팀블로그 by 마성민

카테고리

분류 전체보기 (76)
Windows (2)
Powershell (56)
AD (0)
Exchange (6)
System Center (9)
IIS (0)
SQL (3)
Sharepoint (0)

태그목록

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

Total :
Today : Yesterday :