我有一个用MVC C#编写的网页。我想在此页面中的用户操作上运行一些批处理文件(在远程PC上)。我有以下功能在远程PC上运行批处理文件:
public bool runBatch(string address, string batchFile, string pwd, string username) {
try {
string AppPath = address;
string strFilePath = AppPath + batchFile;
Process proc = new Process();
proc.StartInfo.FileName = strFilePath;
proc.StartInfo.UserName = username;
proc.StartInfo.Domain = "localdomain";
System.Security.SecureString secret = new System.Security.SecureString();
foreach (char c in pwd)
secret.AppendChar(c);
proc.StartInfo.Password = secret;
proc.StartInfo.UseShellExecute = false;
proc.Start();
while (!proc.HasExited) {
proc.Refresh();
Thread.Sleep(1000);
}
proc.Close();
return true;
} catch (Exception ex) {
return false;
throw ex;
}
}
我将这个函数称为:
var run = runBatch("X.X.X.X:\\\\C:Users\\Admin\\Desktop\\", "ping.bat", "****", "Admin");
我的电脑在同一个IP域,我多次检查用户名和密码,但是我收到了错误
用户名和密码不正确
我真的很困惑。任何人帮助我吗?
答案 0 :(得分:0)
由于一些朋友帮我解决了这个问题,我会回答,也许这可以节省另一个人的时间。我的代码的问题是我以错误的方式提供文件地址。我必须这样称呼它:
var run = runBatch(@"\\x.x.x.x\C$\Users\Admin\Desktop\", "ping.bat", "****", "Admin");
另一件需要记住的事情是,流程可以在我们提供的路径上看到共享文件夹!