본문으로 바로가기

관리자 권한 상승

category 개발언어/C# 2017. 5. 24. 12:57

C#, 프로그램 실행 시 관리자 권한 상승
자동으로 관리자권한을 얻어서 실행할 수 있게 하기
Program.cs  수정을 하면 된다.

using System;
/* 관리자 권한 상승------*/
using System.Security.Principal;
using System.Diagnostics;
/* ---------------------*/
namespace adminTest
{
static class Program
{
[STAThread]
static void Main()
{
   /* 관리자 권한 상승을 위한 코드 */
   if (/* Main 아래에 정의된 함수 */IsAdministrator() == false)
   {
      try
      {
       ProcessStartInfo procInfo = new ProcessStartInfo();
       procInfo.UseShellExecute = true;
       procInfo.FileName = Application.ExecutablePath;
       procInfo.WorkingDirectory = Environment.CurrentDirectory;
       procInfo.Verb = "runas";
       Process.Start(procInfo);
      }
      catch (Exception ex)
      {
        System.console.writeline(ex.Message.ToString());
      }
      return;
  }

}
/* 관리자 권한 상승함수*/
public static bool IsAdministrator()
{
   WindowsIdentity identity = WindowsIdentity.GetCurrent();
   if (null != identity)
   {
     WindowsPrincipal principal = new WindowsPrincipal(identity);
     return principal.IsInRole(WindowsBuiltInRole.Administrator);
   }
   return false;
}
}
}