飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3245|回复: 1

基于图形用户界面的RunAs 程序(GUI RunAs)

[复制链接]
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-7-15 05:30:01 | 显示全部楼层 |阅读模式
    本帖最后由 whypro 于 2010-7-15 05:42 编辑

    基于图形用户界面的RunAs 程序(GUI RunAs)

    作者:Zhefu Zhang
    编译:VCKBASE



    原文出处:GUI-Based RunAs

    下载源代码

    环境:VC6 SP5,VS 2005,Win2k+,Platform SDK
      为了在另一个用户上下文中启动程序,Win2k 提供了一个命令行程序工具——RunAs。在网上(如www.codeguru.com)也能找到同样功能的程序和代码。有人要求我为这个工具做一个图形用户界面的版本。本文就是为此而写的。为了不“重新发明轮子”,我的工作是基于前人的基础 来实现的。

    本文程序具有良好的图形用户界面,免得你在命令行输入太多的参数,如图所示:

    除此之外,你还可以:
    • 在界面中选择目标桌面,在这个目标桌面上运行你想要的程序。我提供了一个桌面列表供选择,双击即可;
    • 密码编辑框左边的按钮用来检查用户名/密码是否正确;
    • 使用用户名右边的按钮可以从本地机器的用户名列表中选择用户,双击即可;
      CreateProcessAsUser 和LogonUser 需要如下四个特权: SeIncreaseQuotaPrivilege;SeAssignPrimaryTokenPrivilege;SeChangeNotifyPrivilege;SeTcbPrivilege;默认情况下,管理员不需要这些特权。你可以按对话框底下的 Privilege 按钮,在弹出的对话框中选择启用这些特权(只需要做一次重新注销,重新登陆即可)。如果你不喜欢这个图形用户界面的程序,请使用 Martyn Brown 提供的控制台命令行程序——CmdAsUser
    • 如果不输入用户名和密码,程序将以“SYSTEM”账号启动。

      有一个常用程序的清单,你可以选择作为“RunAs”的程序,其内部代码使用LSA 系列 API来处理账号特权,使用LogonUser 和CreateProcessAsUser 完成工作。当你要求以“SYSTEM”账号启动时,要稍微费一些事情——打开系统进程,通过添加 TOKEN_DUPLICATE、TOKEN_ASSIGN_PRIMARY、TOKEN_QUERY权限来调整其令牌并重新打开。

    最后,感谢《Programming Server-Side Applications for Mircosoft Windows 2000》一书的作者,我的程序框架代码借鉴了本书的例子。

    使用说明补充:按“Privilege”确认添加了需要的特权后,一定要RelLog(注销/重新登录)一次使之生效。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2012-6-5 17:03:56 | 显示全部楼层
    好贴,绝对要支持下!!~~
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表