C#使用管理員權限打開cmd執行命令行


最近遇到個棘手的問題,服務器遠程連不上,但是ftp可以,可能遠程連接的服務掛了或者防火牆入站規則有點問題,想要重啟,得找機房工作人員,還是挺麻煩的

想了想可以上傳個執行cmd命令的東西,然后遠程訪問觸發,執行命令添加一條入站規則,但是呢一般的命令行又不夠權限,只能以管理員權限打開才能執行這個

命令,往入站規則里面先添加一條規則:【netsh advfirewall firewall add rule name=\"allow 24897\" protocol=TCP dir=in localport=24897 action=allow】,網上找

了半天也沒找到,好不容易找着了,趕緊寫篇文記下來備用,代碼如下

   //如果iis有足夠的權限是ok 的
    public static void ExecuteCommandAsAdmin()
    {
        System.Diagnostics.Process process = new System.Diagnostics.Process();
        System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
        startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        startInfo.FileName = "cmd.exe";
        startInfo.Arguments = "/C netsh advfirewall firewall add rule name=\"allow 24897\" protocol=TCP dir=in localport=24897 action=allow&exit";
        startInfo.Verb = "runas";
        process.StartInfo = startInfo;
        process.Start();
        process.WaitForExit();
        process.Close();
    }

這段代碼執行成功的前提是iis夠權限,不然會出現拒絕訪問錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM