我正在開發需要管理權限(WMI調用,註冊表訪問等)的公司的iventory軟件。爲了方便起見,我不希望UAC提示用戶執行該應用程序(是的,即使用戶不需要,我也必須強制應用程序運行),並且我無法通過GPO禁用UAC(將是完美的,但屁股疼痛)。我首先嚐試使用另一個進程(C#上的Processinfo)將AD管理帳戶憑據傳遞給清單軟件,但UAC提示仍然存在。經過幾次研究,我發現如果使用本地管理員憑證,它不會給我任何惱人的提示,但由於我公司的環境很混亂,除了標準化之外,還有許多站點具有不同的憑據。有沒有人有任何想法我可以做到這一點? (使用.net C#)。使用C調用另一個進程時避免UAC提示
-1
A
回答
1
我已經完成了這個使用Task Scheduler Managed Wrapper。確保您在設置任務時提供本地管理員組憑據。我的代碼如下:
using (TaskService ts = new TaskService())
{
try
{
//Create a new task definition and assign properties
TaskDefinition td = ts.NewTask();
td.Principal.RunLevel = TaskRunLevel.Highest;
td.RegistrationInfo.Description = "Paulos Task";
td.Triggers.Add(new TimeTrigger() { StartBoundary = Convert.ToDateTime("01-01-2003 00:00:01") });
// Create an action that will launch PauloApp whenever the trigger fires
td.Actions.Add(new ExecAction("PauloApp.exe", "", Environment.ExpandEnvironmentVariables(@"%ProgramFiles%\Paulo")));
td.Settings.DisallowStartIfOnBatteries = false;
td.Settings.StopIfGoingOnBatteries = false;
ts.RootFolder.RegisterTaskDefinition("PaulosTask", td,
TaskCreation.CreateOrUpdate, "Administrators", null,
TaskLogonType.Group);
// Register the task in the root folder
Microsoft.Win32.TaskScheduler.Task t = ts.FindTask("PaulosTask");
if (t != null)
t.Run();
else
//could not find PaulosTask
}//end try
catch (Exception e)
{
}
}//end using
+0
我是否需要提供本地憑據,還是可以使用具有管理權限的域憑證? – Paulo
+0
我只使用本地管理員組進行過測試。我想你也可以使用域憑據,但如果你這樣做了,我會認爲你部署你的應用的每個系統都需要你的域名Windows用戶名作爲本地系統上的Windows管理員存在? – Krondorian
相關問題
- 1. 如何避免「被另一個進程使用的」當在C#中使用File.Copy
- 2. 如何在運行PowerShell腳本時避免UAC提示
- 3. 如何避免使用goto進行一系列提示?
- 4. 以process.start身份運行vbs作爲避免UAC的另一個用戶
- 5. 如何避免在第二輪程序中使用UAC?
- 6. 避免使用C#
- 7. 避免UAC在遠景
- 8. 如何避免文件被另一個進程在vb.net中使用
- 9. 如何避免調用一個春天
- 10. 如何從另一個活動調用TabActivity getTabHost()?避免NullPointerException
- 11. 從另一個進程顯示系統菜單(使用WinForms,c#)
- 12. 使用UAC進行權限提升
- 13. 啓動應用程序時顯示UAC提示
- 14. 如何在使用Crystal報表時避免登錄提示?
- 15. 在另一個進程上調用SetProcessDEPPolicy?
- 16. 使用`$ this`或者在同一個PHP類中調用另一個方法時避免它更好嗎?
- 17. c:如何從另一個進程調用進程回調函數
- 18. 避免JDBC調用
- 19. 避免調用DAO.getAll()
- 20. 避免複製文件時發生錯誤,另一個進程寫入文件
- 21. 避免進程關閉使用python子進程模塊
- 22. 使用UAC部署C#應用程序
- 23. 如何避免在關閉程序Form1時顯示另一個窗體?
- 24. 調用另一個類的線程(C#)
- 25. 避免「Microsoft Excel」提示
- 26. 在另一個腳本中使用變量以避免NameError
- 27. 如何避免進程從C#應用程序竊取焦點?
- 28. 如何在使用IIS時避免進行多個SSL協商
- 29. Delphi:需要時提示UAC提升
- 30. System.Diaganostics.Process(當一個進程在內部使用另一個進程時)
改爲使用服務或計劃任務。 –
想象一下,您找到了繞過UAC的方法。現在推斷所有病毒/惡意軟件編寫者都在不斷地瞄準windows。這不是您的不便之處,它保護用戶。 –
「是的,我必須強制應用程序運行,即使用戶不想要」 - 我的意思是,這是UAC存在的全部原因。 – Rob