2012-05-06 20 views

回答

2

通過指定該清單,告訴Windows(Vista或7),如果標準用戶(管理員以及啓用UAC)嘗試執行此應用程序,則應出現UAC提示。沒有提升,這個應用程序將無法按預期工作。

Windows Vista和Windows 7都可以正確處理這個問題,因此這就是UAC設計的原因。

對於Windows XP,標準用戶需要手動使用runas以admin身份執行您的應用程序,而管理員用戶可以直接運行它。在Windows XP上沒有UAC,它可以回溯到Windows開發人員熟悉的老行爲。

爲了測試Windows XP中,你應該使用Windows XP模式,http://www.microsoft.com/windows/virtual-pc/download.aspx

+0

由於某種原因,我沒有想過XP模式。謝謝你的建議。從你的回答中,我瞭解到管理員可以在用戶到達他們的機器之前預先啓動應用程序。該應用程序實際上應該在後臺運行,並與脫機考試收集用戶交互。 –

+0

就你而言,我強烈建議你重新考慮你的應用程序的體系結構。您應該可以將依賴管理員憑據的部分移動到Windows服務中,同時將標準用戶友好的部分留在適用於標準用戶的應用程序中。然後,應用程序可以通過進程間通信與服務對話。 UAC的設計顯然會強制執行這種代碼清理,因爲開發人員傾向於過度使用管理憑證。 –

+0

謝謝。我最初開發了一項服務,但放棄了這個想法,因爲部分核心要求是收集服務不允許的信息,例如與桌面進行交互。因此,需要一個令人討厭的管理員專用的WinForms應用程序誕生了。 –

2

Windows XP不處理requestedPrivileges節點,並且沒有任何種類的UAC機制。

UAC和設置requestedExecutionLevel的能力都是在Windows Vista中引入的。


Windows XP的標準帳戶是嚴格的,並且沒有提供管理任務的高程機制來執行再次登錄。

因此,處理由於缺少XP權限而導致錯誤的最佳做法只是顯示有意義的錯誤消息。

+0

什麼標準和管理員帳戶在XP。他們有這些。換句話說,你是說我不需要(或不能)實現任何東西來使我的應用程序XP友好? –

+0

在XP(及NT的早期版本)下,標準用戶帳戶嚴格爲:管理級任務必須通過以管理員身份單獨登錄才能執行。 –

+0

數字。我從未在XP中使用過標準帳戶。謝謝。 –

1

是的,該清單可確保屬於管理員組的用戶在Vista上正常提升,並在接受UAC提示時提升。

它沒有做的是給用戶不是屬於該組的權限。就像它在XP中完成的方式一樣,但也可以在以後的版本中完成。網站管理員可能會爲用戶提供受限帳戶。沒關係,他們肯定不應該運行你的程序。管理員不希望他們。檢查你是否給出了合理的診斷。 WindowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator)讓你檢查.NET。

+0

是的,我瞭解並確保現在的流程具有足夠的權限。你似乎對XP提出的建議是我未知的行爲。管理員應用程序在進行交互式考試時實際記錄了各種用戶操作。我猜你會建議我作爲應用程序開發人員應該首先推薦客戶端不要在這種情況下使用XP? –

+0

除非我誤解了你的答案,否則Lex的回答表明,該應用程序可以以管理員模式運行,同時不給予用戶管理員權限(這也是我想要的)。只有他們或aadmin將不得不手動使用RUNAS發射條件。你的想法? –

+0

@RaheelKhan,你好像誤解了我。你過去是否曾經使用過馬奈? http://support.microsoft.com/kb/294676和http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/runas.mspx?mfr=true對於標準用戶在Windows XP上,他/她必須通過runas以管理員身份啓動應用程序。這需要管理員憑據。 –

相關問題