c# - 以管理员身份运行多个应用程序

标签 c# security uac admin runas

我需要向我的 C# WPF 应用程序添加一个函数来修复某些注册表项。 这将通过调用 regsvr32.exe/s mylib.dll 来完成。现在,从我看到的使用带有新 Process 对象的 runas 动词来看,这应该很容易做到。 (我的 dll 确实需要管理员权限,因为它写入了一些注册表项。)

但问题是有多个DLL,因此多次调用regsvr32.exe,不可能将所有注册都放在一个.dll中。但是,如果我只是多次 runas,用户会在我启动它时收到尽可能多的 UAC 对话框……我不希望这样。

我只想要一个对话框,我真的很想避免有一个神秘的额外 fixer.exe 文件来代替启动。现在,我只了解非常基本的 Windows 安全性知识,但难道不应该以某种方式获得“管理员” token (这让我获得 UAC 对话框)并使用它来启动不同的进程吗?

最佳答案

您可以只使用命令行参数和 shell 到您自己的 .exe 以管理员身份运行该进程。当你的应用程序加载时,检查那些命令行参数......如果它们在那里,注册你所有的 dll,然后退出。

或者,您可以编写一个批处理文件来注册所有 dll 和 shell,并具有管理员权限。

关于c# - 以管理员身份运行多个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4479349/

相关文章:

c# - 如何将RGBA css颜色格式转换为十六进制格式

c# - 固定托管 List<> 以获取指向数据的指针

c# - 我创建了一个 ListView UserControl,但是在向它添加项目时将它拖到 form1 设计器后,我什么也看不到,为什么?

php - 如何防止 PHP 中的 SQL 注入(inject)?

c# - 如何检测到 Windows VirtualStore 的文件重定向?

c# - Angular 2 Http 删除 header 以便与 Web API REST 一起使用

android - 存储 secret 凭证的安全方式

mysql - AWS EC2 安全组似乎没有申请公共(public) IP

python - 如何在 Windows 中与另一个管理员用户一起运行应用程序

windows-7 - tortoisesvn 上下文菜单和 Windows 7/Vista UAC