我想从cmd.exe中执行“查询会话”的结果,并使用VB.NET将它们存储在字符串变量中。我一直在寻找两天,我无法运行命令,一旦命令运行,我将尝试保存结果。
VisualStudio似乎执行cmd.exe而不是C:\ Windows \ System32中的cmd.exe。
Dim process As System.Diagnostics.Process = New System.Diagnostics.Process
process.StartInfo.FileName = "C:\Windows\system32\cmd.exe"
process.StartInfo.Arguments = "/K query session"
process.StartInfo.UseShellExecute = True
process.StartInfo.CreateNoWindow = True
process.StartInfo.RedirectStandardOutput = False
process.Start()
process.WaitForExit()
它返回错误:'query'未被识别为内部或外部命令, 可操作程序或批处理文件。
答案 0 :(得分:0)
这似乎是一个许可问题。您需要将管理员用户的用户名和密码传递给您的命令
.....
process.StartInfo.UserName = "yourAdminUser"
process.StartInfo.Password = GetPassword()
.....
Public Function GetPassword() as String
Dim ss = new SecureString()
ss.AppendChar("p")
ss.AppendChar("a")
ss.AppendChar("s")
ss.AppendChar("s")
return ss
End Function
N.B。 SecureString class需要引用System.Security.dll
并导入名称空间System.Security