Psexec在c#代码中返回拒绝访问错误

时间:2016-03-16 13:37:03

标签: c# asp.net psexec

我尝试通过psexec工具尝试启动远程命令,它在命令提示符下成功运行。但是在c#中,我得到以下输出错误:

  

访问被拒绝

。 这是我的命令:

  

psexec \ servername -u xxxxxxx -p xxxxxxxxxx -h -w“E:\”cmd / C   “(dir)”^> file.txt的

这是我的c#来源:

ProcessStartInfo PSI = new ProcessStartInfo();
PSI.FileName = "cmd.exe";
PSI.RedirectStandardInput = true;
PSI.RedirectStandardOutput = true;
PSI.RedirectStandardError = true;
PSI.UseShellExecute = false;
PSI.CreateNoWindow = true;
PSI.WindowStyle = ProcessWindowStyle.Hidden;
PSI.Arguments = "psexec " + @"\\servername -u xxxxxx -p xxxxxxxxx -h -w "+"\"E:\\\\\" "+"cmd /C " +"\""+"(dir)"+ "\" " +"^> file.txt" ;
p.Start();
p.WaitForExit();
output = p.StandardOutput.ReadToEnd().ToString();
error = p.StandardError.ReadToEnd().ToString();

2 个答案:

答案 0 :(得分:0)

对不起,我还没有发表评论!

阅读你的c#+ psexec代码,看起来像是发送的 psexec \servername -u xxxxxxx -p xxxxxxxxxx -h -w "E:\\" cmd /C "(dir)" ^> file.txt命令提示符

"psexec " + @"\\servername -u xxxxxx -p xxxxxxxxx -h -w "+"\"E:\\\" "+"cmd /C " +"\""+"(dir)"+ "\" " +"^> file.txt";不应以psexec \servername -u xxxxxxx -p xxxxxxxxxx -h -w "E:\" cmd /C "(dir)" ^> file.txt结尾吗?

为了测试我建议你创建一个字符串,它将接收这些值,然后显示它,只是为了确保正确的命令被设置。

另一件事是PSI.UseShellExecute = false;,我知道一些命令代码必须将此设置为false才能正常工作,但我不知道psexec,您是否已经尝试将其设置为true?

答案 1 :(得分:0)

如果运行您的代码的服务器在域下,那么您需要将域与用户名一起添加。

因此,-u标志将为-u your_domain_name\username