我正在开发需要管理权限(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. 避免UAC提示
- 2. 如何避免“被另一个进程使用的”当在C#中使用File.Copy
- 3. 如何在运行PowerShell脚本时避免UAC提示
- 4. 使用Python的子进程库避免SSH密码提示
- 5. 如何使用UAC提升Perl进程
- 6. 如何避免使用goto进行一系列提示?
- 7. 以process.start身份运行vbs作为避免UAC的另一个用户
- 8. 如何避免在第二轮程序中使用UAC?
- 9. 如何在使用ServerManager读取IIS站点时避免UAC
- 10. 避免使用C#
- 11. 避免UAC在远景
- 12. 使用c#从另一个进程调用函数
- 13. 用before_action避免进程
- 14. 避免在另一个课程中使用公共方法?
- 15. 如何避免文件被另一个进程在vb.net中使用
- 16. 在SWI-Prolog中,当调用copy_stream_data时,如何避免“|:”提示?
- 17. 避免子进程超时
- 18. 如何避免调用一个春天
- 19. 从另一个进程调用一个方法C#
- 20. 使用UAC进行权限提升
- 21. 从另一个进程显示系统菜单(使用WinForms,c#)
- 22. 避免另一个异步服务器调用jqGrid
- 23. 如何从另一个活动调用TabActivity getTabHost()?避免NullPointerException
- 24. Hightcharts使用“shared:true”避免“提示效果”工具提示
- 25. 启动应用程序时显示UAC提示
- 26. 提交提示后调用另一个提示
- 27. 如何在使用Crystal报表时避免登录提示?
- 28. 在另一个进程上调用SetProcessDEPPolicy?
- 29. 调用另一个进程的Python中
- 30. c:如何从另一个进程调用进程回调函数
改为使用服务或计划任务。 –
想象一下,您找到了绕过UAC的方法。现在推断所有病毒/恶意软件编写者都在不断地瞄准windows。这不是您的不便之处,它保护用户。 –
“是的,我必须强制应用程序运行,即使用户不想要” - 我的意思是,这是UAC存在的全部原因。 – Rob