我想從我的VB程序運行cmd.exe中的shadow命令,但由於某種原因,它不會運行命令我嘗試了幾個不同的東西全部哪些沒有工作。我能夠將命令保存到批處理文件,然後成功執行它,但我更願意直接將參數/命令傳遞給命令提示符並執行此操作。基本上,我有一個用戶運行我創建的另一個程序來提取會話ID和服務器名稱(然後我只是把服務器號碼結束)。他們得到一個4位數字的密碼,其實前兩個是sessionid,後兩個是服務器號碼(我們所有的服務器都被命名爲smdts-(一個數字),所以我只關心他們的服務器號碼)然後我拿四位數的代碼並將其插入我的影子管理程序。這裏是我當前的代碼,不工作:VB.NET無法在命令提示符下運行shadow命令
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim SessId As String
Dim PassCode As String
Dim ServNum As String
Dim Prc As Process
PassCode = TextBox2.Text
SessId = PassCode.Substring(0, 2)
ServNum = PassCode.Substring(PassCode.Length - 2)
Dim fileargs As String = " shadow" + " " & SessId + " " + "/server:smdts-" + ServNum
Dim Pinfo = New System.Diagnostics.ProcessStartInfo
Pinfo.FileName = "cmd.exe"
Pinfo.Arguments = fileargs
Pinfo.ErrorDialog = False
Pinfo.UseShellExecute = False
Pinfo.CreateNoWindow = False
Pinfo.WindowStyle = ProcessWindowStyle.Normal
Pinfo.RedirectStandardOutput = False
Pinfo.RedirectStandardInput = True
Pinfo.RedirectStandardError = False
Prc = New Process
Prc.StartInfo = Pinfo
Prc.Start()
End Sub
什麼工作(我不希望使用批處理文件):
Public Class Form1
Public pathvar As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal)
Dim SessId As String
Dim PassCode As String
Dim ServNum As String
PassCode = TextBox2.Text
SessId = PassCode.Substring(0, 2)
ServNum = PassCode.Substring(PassCode.Length - 2)
Dim fileargs As String = " shadow" + " " & SessId + " " + "/server:smdts-" + ServNum
Dim Streamwriter As StreamWriter
Streamwriter = File.CreateText(pathvar + "\ShadowBatch.bat")
Streamwriter.WriteLine(fileargs)
Streamwriter.Close()
Shell(pathvar + "\ShadowBatch.bat")
End Sub
爲什麼第一個例子任何幫助不工作將非常感激!謝謝!
湯姆ķ
使用決明子,它可以在純粹的C#中做到這一點。 – SLaks