【发布时间】:2020-03-21 02:32:23
【问题描述】:
当用户点击一个按钮时,我希望它运行登录脚本(从服务器启动),但是每台计算机在不同的服务器上,所以我得到了服务器名称。但是netlogon.StartInfo.Arguments = slnres + @"/c \netlogon\logon.cmd"; 行没有按应有的方式工作。它应该在 PC 上运行 logon.cmd(映射网络驱动程序、打印机等),然后 CMD 应该关闭。
private void MapNetwork_Click(object sender, EventArgs e)
{
Process sln = new Process();
sln.StartInfo.UseShellExecute = false;
sln.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
sln.StartInfo.FileName = "cmd.exe";
sln.StartInfo.Arguments = "/c echo %logonserver%";
sln.StartInfo.RedirectStandardOutput = true;
sln.Start();
string slnres = sln.StandardOutput.ReadToEnd();
label1.Text = slnres;
Process netlogon = new Process();
netlogon.StartInfo.UseShellExecute = false;
netlogon.StartInfo.FileName = "cmd.exe";
netlogon.StartInfo.Arguments = slnres + @"/c \netlogon\logon.cmd";
netlogon.Start();
}
【问题讨论】:
-
您的问题没有明确说明您要解决的问题?或者不清楚。所以尝试添加你喜欢的结果(截图)
-
看来您可以通过使用System.Environment.GetEnvironmentVariable("logonserver") 大大简化您的任务。
-
我建议阅读:stackoverflow.com/help/how-to-ask 以了解如何正确提问。如果您遵循指南,您将不会有那么多的反对票,并且您会更快地得到答案。
-
感谢您帮助简化我的任务,但毕竟只是弹出并关闭。在我的家用电脑上,我应该得到错误,因为找不到 logon.cmd。下次我会检查如何提问。
-
您能描述一下您的总体目标是什么吗?你为什么要打开命令提示符?