在我的应用程序中,我需要以管理员身份运行一个批处理文件才能运行。
到目前为止我正在使用它,但我不记得如何使用 runas 功能,它允许它以管理员权限运行。
process.start("filelocation.bat")
任何帮助将不胜感激。
Try
Dim procInfo As New ProcessStartInfo()
procInfo.UseShellExecute = True
procInfo.FileName = (FileLocation)
procInfo.WorkingDirectory = ""
procInfo.Verb = "runas"
Process.Start(procInfo)
Catch ex As Exception
MessageBox.Show(ex.Message.ToString())
End Try
您可以尝试使用以下代码:
Dim proc as ProcessStartInfo = new ProcessStartInfo()
proc.FileName = "runas"
proc.Arguments = "/env /user:Administrator filelocation.bat"
proc.WorkingDirectory = "your_working_dir"
Process.Start(proc)
此代码将询问管理员密码并开始执行批处理文件
编辑:这是没有 cmd 窗口的替代方法
Dim proc as ProcessStartInfo = new ProcessStartInfo()
proc.FileName = "filelocation.bat"
proc.WorkingDirectory = "your_working_dir" // <- Obbligatory
proc.UseShellExecute = False
proc.Domain = userDomain // Only in AD environments?
proc.UserName = userName
proc.Password = securePassword
Process.Start(proc)
它有点复杂,因为您需要在使用此代码之前获取输入值(用户名、密码、域),并且密码是您需要以专用方式构建的SecureString
Dim securePassword as New Security.SecureString()
For Each c As Char In userPassword
securePassword.AppendChar(c)
Next c
Imports System.Diagnostics
Imports System.Security
'很好的例子。只是添加命名空间