以管理员身份从vb.net内启动批处理文件

时间:2012-07-16 10:44:28

标签: vb.net runas

在我的应用程序中,我需要运行批处理文件作为管理员才能运行 到目前为止我正在使用它,但我不记得如何使用runas功能,它允许它以管理员权限运行。

process.start("filelocation.bat")

任何帮助都会被贬低。

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

您可以尝试使用此代码:

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)

这有点复杂,因为您需要在使用此代码之前获取输入值(userName,Password,domain),并且密码是SecureString,您需要以专用方式构建

Dim securePassword as New Security.SecureString()
For Each c As Char In userPassword
    securePassword.AppendChar(c)
Next c

答案 2 :(得分:0)

    Imports System.Diagnostics
    Imports System.Security

&#39;很好的例子。只是添加名称空间