积极答复者
如何降低权限运行另一程序(或线程)

问题
答案
-
可以用较低的权限启动一个新的进程。
在创建一个Process对象的时候,可以指定ProcessStartInfo对象,里面可以设置用户名和密码。如下所示:
Dim objStartInfo As New System.Diagnostics.ProcessStartInfo()With objStartInfo
.FileName = "notepad"
.UserName = "test"
.Password = New System.Security.SecureString()
End WithDim objProcess As New System.Diagnostics.Process()
objProcess.StartInfo = objProcess
Call objProcess.Start()
MCPD (Windows & Web)- 已标记为答案 Kaedei 2009年4月23日 10:10
全部回复
-
可以用较低的权限启动一个新的进程。
在创建一个Process对象的时候,可以指定ProcessStartInfo对象,里面可以设置用户名和密码。如下所示:
Dim objStartInfo As New System.Diagnostics.ProcessStartInfo()With objStartInfo
.FileName = "notepad"
.UserName = "test"
.Password = New System.Security.SecureString()
End WithDim objProcess As New System.Diagnostics.Process()
objProcess.StartInfo = objProcess
Call objProcess.Start()
MCPD (Windows & Web)- 已标记为答案 Kaedei 2009年4月23日 10:10
-
您好!这样是可以的,但是如果不知道当前用户的密码怎么办?
你要以该用户的名义来执行一个进程,自然需要知道他的密码啊!.UserName = "test"
.Password = New System.Security.SecureString()如果不知道用户的密码,就无法产生一个相应的SecureString,在执行时会提示“用户名或密码不对”……
***** 本人目前处于努力学习模式,希望大家多多伸手帮助~ *****
MCPD (Windows & Web)在提升权限的时候,用.Verb="runas",然后激活UAC就可以提升到管理员权限了,所以我在想是不是也有类似的方法用降低权限启动另一个程序。在XP下有一个软件叫DropMyRights,那个软件在运行时也没有提示要输入密码啊
***** 本人目前处于努力学习模式,希望大家多多伸手帮助~ ***** -
您好!这样是可以的,但是如果不知道当前用户的密码怎么办?
你要以该用户的名义来执行一个进程,自然需要知道他的密码啊!.UserName = "test"
.Password = New System.Security.SecureString()如果不知道用户的密码,就无法产生一个相应的SecureString,在执行时会提示“用户名或密码不对”……
***** 本人目前处于努力学习模式,希望大家多多伸手帮助~ *****
MCPD (Windows & Web)在提升权限的时候,用.Verb="runas",然后激活UAC就可以提升到管理员权限了,所以我在想是不是也有类似的方法用降低权限启动另一个程序。在XP下有一个软件叫DropMyRights,那个软件在运行时也没有提示要输入密码啊
***** 本人目前处于努力学习模式,希望大家多多伸手帮助~ *****
我查看了下DropMyRight的文档。觉得你可以利用DropMyRight。
使用DropMyRight的时候,将安全运行的可执行路径作为命令行参数。那麽你就可以创建一个Process对象,把FileName的值设置为DropMyRight,然后把命令行参数作为你需要运行的exe!
MCPD (Windows & Web)