基于图形用户界面的RunAs程序(GUI 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(注销/重新登录)一次使之生效。

本文配套源码

时间: 2024-11-02 05:30:02

基于图形用户界面的RunAs程序(GUI RunAs)的相关文章

GTK+ 3.1.90发布 创建图形用户界面的库

GTK是Gimp ToolKit的缩写,是一个多平台的工具包,用于创建http://www.aliyun.com/zixun/aggregation/18378.html">图形用户界面的库.它的设计小型而高效,具有足够的灵活性允许程序员自由创建界面.GTK+通过标准组件库提供一些独特的功能.它采用具有OO特色的C语言开发框架,这使它在开发GUI应用程序能和操作系统紧密结合,同时具有很大简洁性,其中的很多代码只要简单的复制和更改即可完成,只用一个C源代码文件就可以创建一个LINUX下的GU

GTK+ 3.1.92发布 创建图形用户界面的库

GTK+ 3.1.92该版本Cells现在可以在GtkIconView中使用prelighted.总体的字体列表GtkFontChooser明显加快.其他小的错误是修正及翻译的更新. GTK是Gimp ToolKit的缩写,是一个多平台的工具包,用于创建http://www.aliyun.com/zixun/aggregation/18378.html">图形用户界面的库.它的设计小型而高效,具有足够的灵活性允许程序员自由创建界面.GTK+通过标准组件库提供一些独特的功能.它采用具有OO特

Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法

原文:Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我们讲了Raspberry安装Win10 IoT系统及搭建Visual Studio 2015开发环境的方法(http://www.cnblogs.com/cloudtech/p/5562120.html)

使用 Microsoft.NET Frameworks 创建基于 Windows 的应用程序(转)

摘要: :本文介绍了 Win 表单这一新的窗体程序包,借助这一程序包,开发人员能够充分利用 Microsoft Windows 操作系统所提供的 UI 功能.目录 简介 介绍 Win Forms 更好的易学易用性 布局 GDI+ 访问底层系统 结论 --------------------------------------------------------------------------------简介 目前 Web 已成了街谈巷议的话题,看起来好像 Microsoft Visual S

如何挡截基于NET平台的程序的API?

问题描述 如何挡截基于NET平台的程序的API?IAT法:NET程序只有一个mscoree.dll,而看不到user32.dll等等JMP法:一旦挡截,目标程序就出错自动退出有没有其他方法,或使用上面的方法还应注意一些什么细节? 解决方案 解决方案二:关注...解决方案三:top解决方案四:top解决方案五:.Net程序的"Hook"比普通Win32程序方便多了.通过反射机制,你可以控制它所有的行为.你可以去下ManagedSpy,这是微软的一个开源软件,拦截.Net程序事件,获取/修

《ANSYS 14热力学/电磁学/耦合场分析自学手册》——第 2 章 ANSYS基本功能 2.1 ANSYS 14.0图形用户界面的组成

第 2 章 ANSYS基本功能 2.1 ANSYS 14.0图形用户界面的组成 ANSYS 14热力学/电磁学/耦合场分析自学手册图形用户界面使用命令的内部驱动机制,使每一个GUI(图形用户界面)操作对应了一个或若干个命令.操作对应的命令保存在输入日志文件(Jobname.log)中.所以,图形用户界面可以使用户在对命令了解很少或几乎不了解的情况下完成ANSYS分析.ANSYS提供的图形用户界面还具有直观.分类科学的优点,方便用户的学习和应用. 标准的图形用户界面如图2-1所示,包括以下几个部分

基于DevExpress的Winform程序安装包的制作

在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装.安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件导致系统运行出错.本文主要介绍基于DevExpress的Winform程序安装包的制作内容,包括VS2010和VS2013/V2105的不同处理方式. 我们知道,VS2010是最后一个可以使用微软安装包制作工具的VS版本了,所以后面VS2012/2013/2015版本都需要使用第三方安装包制作工具,

24色位图,字母图片验证码识别,基于MFC对话框的程序,在线求助,高手帮帮忙

问题描述 24色位图,字母图片验证码识别,基于MFC对话框的程序,在线求助,高手帮帮忙 24色位图(如下图)字母图片验证码识别,基于MFC对话框的程序,在线求助,高手帮帮忙

压缩感知-下面的CS程序哪里出问题了

问题描述 下面的CS程序哪里出问题了 N=256; %信号长度 f1=50; %信号频率1 f2=100;%信号频率2 fs=800;%采样频率 ts=1/fs;%采样间隔 Ts=1:N;%采样序列 x=0.3*cos(2*pi*f1*Ts*ts)+0.6*cos(2*pi*f2*Ts*ts) fftx=fft(x); k=4; n=length(x) m=30; %产生一个随机的稀疏信号 x=2*(rand(1,n)-0.5); x_sparse=rand(1,n); x(x_sparse<0