【发布时间】:2013-07-24 11:40:39
【问题描述】:
这是我尝试以管理员权限运行 cmd.exe 的代码。但是,我得到的请求操作需要提升。如果我通过我的 Windows 使用“以管理员身份运行”运行 cmd.exe,它可以工作,但是,通过 vb,它不会。这是我的代码。
Try
Dim process As New Process()
process.StartInfo.FileName = "cmd.exe "
process.StartInfo.Verb = "runas"
process.StartInfo.UseShellExecute = False
process.StartInfo.RedirectStandardInput = True
process.StartInfo.RedirectStandardOutput = True
process.StartInfo.RedirectStandardError = True
process.StartInfo.CreateNoWindow = True
process.Start()
process.StandardInput.WriteLine("route add 8.31.99.141 mask 255.255.255.255 " & cmdorder)
process.StandardInput.WriteLine("exit")
Dim input As String = process.StandardOutput.ReadToEnd
process.Close()
Dim regex As Regex = New Regex("(ok)+", RegexOptions.IgnoreCase) ' wa requested
' txtLog.AppendText(input)
Return regex.IsMatch(input)
谢谢。
【问题讨论】:
-
runasparam 使这个过程请求权限升级。这是完全正确的行为。尝试使用管理工具中的psexec。
标签: vb.net