首页 新闻 会员 周边

c#以系统中特定用户来运行某个程序

0
悬赏园豆:100 [已解决问题] 解决于 2014-10-08 13:14

我想用以系统中的某个用户(如admin)来运行某个程序(改程序可能是安装程序或者修改注册表之类的,而当前用户没有权限),请问大虾么,这个应该怎么实现,我个人觉得应该调用windows API借口,但是找了很久不知道调用哪个,希望大家给提点建议啥的,谢谢

Dawnlight的主页 Dawnlight | 初学一级 | 园豆:101
提问于:2014-01-17 16:30
< >
分享
最佳答案
0
收获园豆:70
空明流光 | 初学一级 |园豆:106 | 2014-10-08 11:23

大兄弟 我也想看看里面是啥 怎么不能访问了

敲代码带 | 园豆:0 (初学一级) | 2019-06-03 10:53
其他回答(8)
0

WindowsIdentity.GetCurrent().Name 这个可以得到当前登录用户

Yu | 园豆:12980 (专家六级) | 2014-01-17 16:44

我想要的是以admin用户运行程序(无界面提示),而不是以当前用户运行

支持(0) 反对(0) Dawnlight | 园豆:101 (初学一级) | 2014-01-17 18:07

@Dawnlight: 

 

[DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
public static extern Boolean CreateProcessWithLogonW
(
String lpszUsername,
String lpszDomain,
String lpszPassword,
Int32 dwLogonFlags,
String applicationName,
String commandLine,
Int32 creationFlags,
IntPtr environment,
String currentDirectory,
ref STARTUPINFO sui,
out PROCESS_INFORMATION processInfo
);

 

支持(0) 反对(0) Yu | 园豆:12980 (专家六级) | 2014-01-18 16:23
0

参考这个:http://www.cnblogs.com/Interkey/p/RunAsAdmin.html

我之前用过

收获园豆:10
平常心队长 | 园豆:1113 (小虾三级) | 2014-01-17 16:46

我看了下,这个是提示用管理员运行(非管理员下),我想要的是让程序直接以admin运行(我知道admin密码),请教该如何选取admin用户

支持(0) 反对(0) Dawnlight | 园豆:101 (初学一级) | 2014-01-17 18:06

@Dawnlight: runas 可以指定用户名和密码的,我不记得设哪个属性了

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2014-01-17 18:32

@沧海一杰: 这个不是我想要的答案,我的问题是,在域用户环境中,域用户不具有本机管理员权限,但是我知道本机的管理员用户名和密码,如果让程序运行

支持(0) 反对(0) Dawnlight | 园豆:101 (初学一级) | 2014-08-19 16:55

@Dawnlight: 不管你要用哪个帐户运行,你只要提供帐号和密码就可以,跟域不域没有关系,域用户也一样

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2014-08-19 21:12

@沧海一杰: 这个还是需要用户自己手工输入管理员用户名和密码吧,我需要的是不需要用户输入,直接把用户名和密码写死在程序里,让用户感觉不出来

支持(0) 反对(0) Dawnlight | 园豆:101 (初学一级) | 2014-08-20 17:42

@Dawnlight: 用RUN AS方式运行程序时,就可以指定用户名和密码参数,不需要用户输入呀

支持(0) 反对(0) 空明流光 | 园豆:106 (初学一级) | 2014-08-22 09:35

@沧海一杰: 非常感谢,这个应该可以,不过你再别人的回复下,分好像没办法分给你,你单独回复下吧

支持(0) 反对(0) Dawnlight | 园豆:101 (初学一级) | 2014-09-22 20:59
0

学习了!

大楚打码人 | 园豆:4313 (老鸟四级) | 2014-01-17 17:48
0

找相关的以管理员身份运行的批处理命令 运行程序时 让它先运行批处理

收获园豆:10
wolfy | 园豆:2636 (老鸟四级) | 2014-01-17 19:04
0

建议做成安装包 然后快捷方式里面可以设定为以管理员身份运行  对普通小白用户这样处理就很简单方便了

dotNET界面-大白 | 园豆:234 (菜鸟二级) | 2014-01-20 12:55

这个只对win7以上系统有效,xp不行

支持(0) 反对(0) Dawnlight | 园豆:101 (初学一级) | 2014-02-08 09:40
0

可用身份模拟来解决这个问题。具体可以GOOGLE一下,有很多现成的代码。

相关的API:

  • LogonUserA
  • RevertToSelf
  • CloseHandle
*凉风习习* | 园豆:88 (初学一级) | 2014-01-20 16:18
0
收获园豆:10
刘雨赣 | 园豆:221 (菜鸟二级) | 2014-01-21 15:05
0

我知道一个提权方式!但是不是很推荐!

冲杀 | 园豆:230 (菜鸟二级) | 2014-01-22 10:10

[C#]解决程序Vista/Win7下因UAC导致的读写错误 - 牧 童 - 博客园
http://www.cnblogs.com/boyliupan/archive/2011/01/17/1937518.html

使用这个文章里的方法,就可以提权了!

支持(0) 反对(0) 冲杀 | 园豆:230 (菜鸟二级) | 2014-01-22 10:11

@冲杀: 这个不是我想要的答案,我的问题是,在域用户环境中,域用户不具有本机管理员权限,但是我知道本机的管理员用户名和密码,如果让程序运行

支持(0) 反对(0) Dawnlight | 园豆:101 (初学一级) | 2014-08-19 16:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册