win 下如何允许普通用户以管理员权限运行特定的程序?

2018-04-24 12:09:22 +08:00
 xshoushoux

我们的办公电脑(最新的 win10 )一般是只给员工普通用户权限的(我们会维护一个 wim 预装好所有办公需要的软件),但是有些办公软件不只是安装而是每次运行都需要管理员权限(比如京东的京麦客户端,不知道他们的开发是怎么想的),所以想请教下有没有什么办法可以允许普通用户以管理员权限运行特定的程序,谢谢。

4361 次点击
所在节点    问与答
4 条回复
geelaw
2018-04-24 12:59:50 +08:00
对于这个特定的情况,你应该先调查京麦是否能打开一个网页,如果可以,且默认浏览器是 IE/Chrome 等,那么用户打开一个浏览器之后可以运行 cmd,从而等价于能够以管理员身份登录。

如果上面的考虑不是问题(比如已经确定那个程序十分安全),可以这样做:写一个程序,从磁盘上读取密码,获取管理员用户的 token 并存储在内存里,让这个程序以服务的身份运行,并监听一个固定名字的来自本机的命名管道(自然,这个管道需要被 secured )的连接,通过管道和用户通信,用户告知自己处于哪个 session,然后服务以管理员身份(比如,你可以 impersonate )在目标 session 里面建立进程。

密码文件和程序本身都需要被 secured,比如密码文件不能被普通用户读取。

再写一个用户能访问的程序,用这个程序去连接管道并给出需要的信息。
tony1016
2018-04-24 13:10:14 +08:00
一个普通程序,还要管理员权限,那还用它干啥。安全本来就是为用户服务的,那你现在不想要安全,还想给他管理员权限,了解一下 mimikatz
xshoushoux
2018-04-24 14:12:01 +08:00
@geelaw 这么复杂啊。。。有没有类似 linux 里 /etc/sudoers 那种配置方法啊。。。
forcecharlie
2018-04-24 15:33:32 +08:00
按照题主的描述,普通用户应该没有加入 Administrators 组,方法有几种,一是应用转 UWP,二是实现一个服务,然后实现一个启动器,启动器启动时与服务通讯,让服务启动 京麦。但这种方法与前面 @geelaw 所说的一样,只要京麦能够打开其他进程,就会导致权限泄露,也就等价于管理员身份登录。


当然还有一种方法,如果京麦是通过修改 manifest 文件实现的管理员权限启动,你就可以修改 manifest,然后使用 Windows SDK mt 命令修改京麦的清单,但是如果京麦在代码中会去检测自身权限,这种修改就可能会失败,另外一些管理员权限的操作也是不能做的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/449387

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX