1. 程式人生 > >Windows應用程序運行權限設置

Windows應用程序運行權限設置

link sin blank microsoft 權限級別 相同 普通 com nbsp

  在Vista以後的windows版本中,有些時候需要提升編譯後生成程序的權限,即希望讓生成的程序以管理員身份運行。雖然在一般情況下,可以使用鼠標右鍵選擇的方式來強行以管理員身份運行,但它並沒有屏蔽普通運行方式,而且普通人通常也不會使用右鍵選擇以管理員身份運行,所以必須在生成程序時就限定程序只能以管理員方式來運行。

先簡單說一下,在Vista以後的windows版本中,微軟引入了UAC機制,它的目的是防止程序對操作系統本身進行惡意篡改。要讓程序以管理員身份運行,就需要在程序中引入UAC標註,也即讓程序顯示“UAC盾牌”。

  技術分享

  VS2008設置應用程序鏈接生成UAC設置:Linker->Manifest File

  技術分享

  

  UAC Execution Level可選參數:

0: asInvoker:應用程序將使用與啟動它的進程相同的權限運行。 可通過選擇“以管理員身份運行”將應用程序提升為更高權限。

1: highestAvailable:應用程序將使用可能的最高權限級別運行。 如果啟動該應用程序的用戶為管理員組的一個成員,則此選項與 requireAdministrator 相同。 如果可用的最高權限級別高於打開進程的級別,則系統將提示提供憑據。

2: requireAdministrator:應用程序將使用管理員權限運行。 啟動該應用程序的用戶必須是管理員組的一個成員。 如果打開進程未使用管理權限運行,則系統將提示提供憑據。

/MANIFESTUAC(將 UAC 信息嵌入到清單中)

Windows應用程序運行權限設置