Windows Vista 的 UAC ... 保護系統資訊的關卡:小朱的技術空間:Xuite日誌
  • 小朱
  • 一個畢業於國立屏東商技資管系,已有數年軟體發展經驗的毛頭小子,長期在網路各大論壇上游走,具有微軟MVP資格,並持有多張微軟認證,自詡為軟體技術玩家,以善用技術為本,以解決問題為目標,對企業應用系統、資料庫系統、分散式系統以及應用解決方案架構等皆有涉獵與研究,且不定期在 MSDN, RUN PC 與技術論壇中分享心得。



  • 文章分類
  • 搜尋文章
  • 關鍵字
  • 我的發燒文
  • 累積 | 今日
    loading......
  • 日曆
  • 最愛連結
  • 最新文章
  • 最新回應
  • 參觀人氣統計
  • 日誌使用資源






  • 如何使用RSS
    Powered by Xuite
    2008-03-11 14:46 Windows Vista 的 UAC ... 保護系統資訊的關卡
  • ?
  • Windows
  • 好文轉寄
  • 平均分數:0 顆星    投票人數:0
    我要評分:
    標籤 : 


    最近論壇中很多人都在問,原本的程式到了 Windows Vista 後都會無法使用,深入去問以後才知道這些程式或多或少都會在系統資料中寫入一些資料,以供程式暫存以及後續執行之用,但這個方法在 Windows Vista 中會失效,原因就是 UAC (User Account Control) 造成的。

    在 Windows Vista 的執行模型中,應用程式會執行在一個被隔離的執行環境中,而每個執行環境都有一份 Virtual Registry 與系統資訊,所有對 Registry 的讀寫都會寫到 Virtual Registry 中,不過這個 Registry 在應用程式結束後就消失,並不會回寫到系統真正的 Registry 中,也就是如果下次再讀時就讀不到。

    Windows Vista 執行程式的流程圖:


    來源:http://msdn2.microsoft.com/en-us/library/aa905330.aspx

    所以只要有存取到系統等級資訊的程式,都必須要經過 UAC 的授權(也就是使用者的明確授權)後,才可以直接存取系統資料以及 Registry Database,Visual Studio 2005 也就是因為除錯器需要存取系統資訊,所以才要用以系統管理員權限執行的方式來開啟,否則除錯器就會失效。

    那有沒有自動授權的方法?有(請參考 Reference),不過蠻麻煩的,例如建立憑證或是要求存取權等,不過如果程式改起來有困難的話,最好還是教育使用者 ...

    Reference: http://msdn2.microsoft.com/en-us/library/bb530410.aspx

    編註:Windows Server 2008 上也有 UAC,預設對 Administrator 帳戶是不受影響,Administrator 以外的帳戶就會有影響(感謝 Eric Tsai 的提供)。



    小朱 / Xuite日誌 / 回應(0) / 引用(0) / 好文轉寄
  • 回應