首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 以管理員權限運行 CMD 命令:ProcessStartInfo.Verb = "runas"

     編輯:程式設計綜合問答

核心代碼

var info = new ProcessStartInfo(@"C:\Windows\System32\cmd.exe") {
    UseShellExecute = true,   // 必須為 true 才能使用 Verb
    Verb = "runas",           // 請求 UAC 提權
    Arguments = "/c attrib -s \"C:\\path\\to\\file\"", // /c 執行命令後退出
    WindowStyle = ProcessWindowStyle.Hidden // 可選:隱藏窗口
};
Process.Start(info);

關鍵點

  • UseShellExecute = true 是使用 Verb 的前提(默認 false 時需重定向流,無法提權)。
  • Verb = "runas" 觸發 UAC 彈窗(或自動提權若策略允許)。
  • 命令參數用 /c 執行完畢退出,/k 保留窗口調試。

帶參數的替代寫法

Arguments = $"/c attrib -s \"{path}\""; // 字符串插值,注意轉義

若需無感提權(無 UAC 彈窗),需將程序清單設置 requireAdministrator 或編寫 Windows 服務。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved