Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从用户操作网页在远程PC上执行批处理文件_C#_Batch File_Process_Powershell Remoting - Fatal编程技术网

C# 从用户操作网页在远程PC上执行批处理文件

C# 从用户操作网页在远程PC上执行批处理文件,c#,batch-file,process,powershell-remoting,C#,Batch File,Process,Powershell Remoting,我有一个用MVC编写的网页。我想在这个页面的用户操作上运行一些批处理文件(在远程PC上)。我有以下功能在远程PC上运行批处理文件: public bool runBatch(字符串地址、字符串批处理文件、字符串pwd、字符串用户名){ 试一试{ 字符串AppPath=地址; 字符串strFilePath=AppPath+batchFile; Process proc=新流程(); proc.StartInfo.FileName=strFilePath; proc.StartInfo.UserNa

我有一个用MVC编写的网页。我想在这个页面的用户操作上运行一些批处理文件(在远程PC上)。我有以下功能在远程PC上运行批处理文件:

public bool runBatch(字符串地址、字符串批处理文件、字符串pwd、字符串用户名){
试一试{
字符串AppPath=地址;
字符串strFilePath=AppPath+batchFile;
Process proc=新流程();
proc.StartInfo.FileName=strFilePath;
proc.StartInfo.UserName=用户名;
proc.StartInfo.Domain=“localdomain”;
System.Security.SecureString secret=新的System.Security.SecureString();
foreach(pwd中的字符c)
秘密。附录字符(c);
proc.StartInfo.Password=secret;
proc.StartInfo.UseShellExecute=false;
proc.Start();
当(!进程已退出){
proc.Refresh();
睡眠(1000);
}
过程关闭();
返回true;
}捕获(例外情况除外){
返回false;
掷骰子;
}
}
我这样称呼这个函数:

var run = runBatch(@"\\x.x.x.x\C$\Users\Admin\Desktop\", "ping.bat", "****", "Admin");
var run=runBatch(“X.X.X.X:\\\\C:Users\\Admin\\Desktop\\”、“ping.bat”、“****”、“Admin”);
我的电脑在同一个IP域中,我多次检查用户名和密码,但我发现一个错误

用户名和密码不正确


我真的很困惑。有人能帮我吗?

当一些朋友帮我回答这个问题时,我会回答,这样也许可以为下一个问题节省时间。我的代码的问题是,我以错误的方式提供了文件adrress,并且。我不得不这样称呼它:

var run = runBatch(@"\\x.x.x.x\C$\Users\Admin\Desktop\", "ping.bat", "****", "Admin");

另一件需要记住的事情是,进程可以在我们给出的路径上看到共享文件夹

一些朋友帮我回答这个问题,我会回答的,这样也许可以节省时间再问一个问题。我的代码的问题是,我以错误的方式提供了文件adrress,并且。我不得不这样称呼它:

var run = runBatch(@"\\x.x.x.x\C$\Users\Admin\Desktop\", "ping.bat", "****", "Admin");

另一件需要记住的事情是,进程可以在我们给出的路径上看到共享文件夹

X.X.X.X:\\C:Users\Admin\Desktop\ping.bat
不是有效的UNC路径,更不用说通过UNC路径调用远程脚本仍会在本地主机而不是远程主机上运行。此外,该用户是远程主机上的本地帐户还是域帐户?那么,我如何在远程PC上为批处理文件提供路径??用户是本地帐户。这是电脑的管理员帐户。我现在能做什么?假设X.X.X.X是来自远程桌面的IP,您想访问正确的UNC路径是:
\\\\X.X.X\\$c\\users\\Admin\\desktop
$c
是由windows自动创建的网络共享,默认情况下处于活动状态,并创建对systemdrive的访问。@geisterfurz007我尝试了您所说的,但得到了相同的错误!!:(UNC路径的结构是
\\server\share[\path]
,在您的情况下是
\\x.x.x.x\C$\Users\Admin\Desktop\ping.bat
。本地帐户的域是该主机的计算机名,而不是“localdomain”。但这仍然会在本地计算机(即Web服务器)上运行批处理文件,而不是在远程计算机上运行批处理文件。)(
x.x.x.x
).
X.X.X.X:\\C:Users\Admin\Desktop\ping.bat
不是有效的UNC路径,更不用说通过UNC路径调用远程脚本仍然会在本地主机上运行,而不是在远程主机上运行。此外,用户是远程主机上的本地帐户还是域帐户?因此,如何在远程PC上为批处理文件提供路径?用户是一个本地帐户cal帐户。这是电脑的管理员帐户。我现在能做什么?假设X.X.X.X是来自远程桌面的IP,您想访问正确的UNC路径是:
\\\\X.X.X\\\$c\\users\\admin\\desktop
$c
是由windows自动创建的网络共享,默认情况下处于活动状态并创建对sy的访问stemdrive@geisterfurz007我试过你说的,但是我得到了同样的错误!!:(UNC路径的结构是
\\server\share[\path]
,在你的例子中是
\\x.x.x.x\C$\Users\Admin\Desktop\ping.bat
。本地帐户的域是该主机的计算机名,而不是“localdomain”。但仍会在本地计算机(即Web服务器)上运行批处理文件,而不是在远程计算机上(
x.x.x.x
)。