Example #1
0
        private static int restartAsAdmin(XS.ScriptContext context, string[] args, bool hidden)
        {
            context.WriteLine(XS.OutputType.Info, "** Administrative privileges are required to run this script.\n** Please confirm to continue.");

            int n = AppDomainLoader.RunWithElevatedContext(
                delegate(XS.ScriptContext ctx)
            {
                XS.ScriptContextScope.DefaultContext = ctx;
                try
                {
                    return(MainWithContext(ctx, args));
                }
                finally
                {
                    XS.ScriptContextScope.DefaultContext = null;
                }
            }, hidden);

            if (n == -1)
            {
                throw new XS.ScriptRuntimeException("An error occured while granting administrative privileges.");
            }
            if (n != 0)
            {
                throw new XS.ScriptRuntimeException("An error occured during script execution.");
            }
            return(0);
        }