none
[TIP][NET] 관리자 권한으로 실행하는 방법 & 관리자 권한인지 확인하는 방법 RRS feed

답변

  • 이번에는 관리자 권한으로 실행하는 방법과, 관리자 권한인지 확인하는 방법을 알아보겠습니다.

    아래 예시는 메모장을 관리자 권한으로 실행하는 방법입니다.

    SubMain()
    Dim p As NewProcess()
    p.StartInfo.FileName = "C:\Windows\System32\notepad.exe"
    p.StartInfo.UseShellExecute = True

    'Verb를 runas로 (관리자 권한으로 실행 명령)
    p.StartInfo.Verb = "runas"

    p.Start()
    End Sub

    위의 코드 내에서의 포인트는 Verb(Operation)을 "runas" 로 설정하는 것입니다.
    ShellExecute api 함수의 lpOperation 인수에 runas를 전달하는 것과 같습니다.
    아래 예시는 관리자 권한인지 확인하는 방법입니다.

    Imports System.Security.Principal '네임스페이스 추가

    SubMain()
    Dim user As WindowsIdentity =WindowsIdentity.GetCurrent()
    Dim pu As WindowsPrincipal = NewWindowsPrincipal(user)

    If pu.IsInRole("Administrators") Then
    MessageBox.Show("관리자 권한으로 실행중입니다.")
    Else
    MessageBox.Show("관리자 권한으로 실행중이 아닙니다.")
    End If
    End Sub

    C#과는 달리, VB.NET에서는 My 네임스페이스가 존재하므로, 위의 방법 외에 한 줄만으로도 바로 관리자 권한인지
    확인할 수 있습니다.

    My.User.IsInRole("Administrators")

    반환 방식은 위의 메서드와 같습니다.
    아주 추천하는 방법은 아니지만, 간편하게 사용하기에는 좋다고 생각합니다. :)

    • 답변으로 표시됨 devlife 2012년 5월 28일 월요일 오전 11:35
    2012년 5월 28일 월요일 오전 11:34