WindowsIdentity.GetCurrent().Name 这个可以得到当前登录用户
我想要的是以admin用户运行程序(无界面提示),而不是以当前用户运行
@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
);
参考这个:http://www.cnblogs.com/Interkey/p/RunAsAdmin.html
我之前用过
我看了下,这个是提示用管理员运行(非管理员下),我想要的是让程序直接以admin运行(我知道admin密码),请教该如何选取admin用户
@Dawnlight: runas 可以指定用户名和密码的,我不记得设哪个属性了
@沧海一杰: 这个不是我想要的答案,我的问题是,在域用户环境中,域用户不具有本机管理员权限,但是我知道本机的管理员用户名和密码,如果让程序运行
@Dawnlight: 不管你要用哪个帐户运行,你只要提供帐号和密码就可以,跟域不域没有关系,域用户也一样
@沧海一杰: 这个还是需要用户自己手工输入管理员用户名和密码吧,我需要的是不需要用户输入,直接把用户名和密码写死在程序里,让用户感觉不出来
@Dawnlight: 用RUN AS方式运行程序时,就可以指定用户名和密码参数,不需要用户输入呀
@沧海一杰: 非常感谢,这个应该可以,不过你再别人的回复下,分好像没办法分给你,你单独回复下吧
学习了!
找相关的以管理员身份运行的批处理命令 运行程序时 让它先运行批处理
建议做成安装包 然后快捷方式里面可以设定为以管理员身份运行 对普通小白用户这样处理就很简单方便了
这个只对win7以上系统有效,xp不行
可用身份模拟来解决这个问题。具体可以GOOGLE一下,有很多现成的代码。
相关的API:
我知道一个提权方式!但是不是很推荐!
[C#]解决程序Vista/Win7下因UAC导致的读写错误 - 牧 童 - 博客园
http://www.cnblogs.com/boyliupan/archive/2011/01/17/1937518.html
使用这个文章里的方法,就可以提权了!
@冲杀: 这个不是我想要的答案,我的问题是,在域用户环境中,域用户不具有本机管理员权限,但是我知道本机的管理员用户名和密码,如果让程序运行