예제 #1
0
 public static void AdminOrQuit()
 {
     if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
     {
         if (!Elevation.IsAdministrator())
         {
             Log.Warning(Strings.Get("Err_RunAsAdmin"));
         }
     }
     else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
     {
         if (!Elevation.IsRunningAsRoot())
         {
             Log.Warning(Strings.Get("Err_RunAsRoot"));
         }
     }
     else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
     {
         if (!Elevation.IsRunningAsRoot())
         {
             Log.Warning(Strings.Get("Err_RunAsRoot"));
         }
     }
 }
        public static void Main(string[] args)
        {
            Logger.Setup(true, true);

            try
            {
                if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
                {
                    if (!Elevation.IsAdministrator())
                    {
                        Log.Fatal("Must run as administrator.");
                        Log.CloseAndFlush();
                        Environment.Exit(-1);
                    }
                    var user     = System.Guid.NewGuid().ToString().Substring(0, 10);
                    var password = System.Guid.NewGuid().ToString().Substring(0, 10);
                    var cmd      = string.Format("user /add {0} {1}", user, password);
                    ExternalCommandRunner.RunExternalCommand("net", cmd);

                    Log.Information("Created user {0} with password {1}", user, password);

                    var serviceName = System.Guid.NewGuid();
                    var exeName     = "AsaDemoService.exe";

                    cmd = string.Format("create {0} binPath=\"{1}\"", serviceName, exeName);
                    ExternalCommandRunner.RunExternalCommand("sc.exe", cmd);

                    Log.Information("Created service {0} for not-present exe {1}", serviceName, exeName);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }
        }