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)
}
{
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
'Powershell > 엉스데브' 카테고리의 다른 글
PowerShell 을 통한 로컬 사용자 추가 및 삭제 (0) | 2010.08.18 |
---|---|
PowerShell 용 df (disk freespace) 명령어. (1) | 2010.08.12 |
PowerShell 에서 MSSQL 접속하기. (0) | 2010.07.26 |
PowerShell 에서 사용 할 간단한 wget 명령어 (0) | 2010.07.26 |
PowerShell 을 통해 IIS 관리하기(WebAdministration 모듈) (0) | 2010.07.26 |