C#Net使用显示2种不同的东西

时间:2015-03-23 15:18:54

标签: c# windows command prompt

核心问题是,当以编程方式运行命令提示符以从网络使用中删除连接时,显示的结果与在同一上下文中不同,用户打开命令提示符并运行net use。

这是删除连接的代码:

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/K net use delete \\IPAddrofserver";
process.StartInfo = startInfo;
process.Start();

所以会发生什么是以编程方式成功删除连接,但是如果我打开cmd提示并运行net use,我会看到刚刚删除的连接。此连接保持打开状态会导致程序出错。 Whoami表明正在使用同一个用户。那为什么会有区别?

1 个答案:

答案 0 :(得分:0)

我认为当您(使用Active Directory的用户)使用CMD和您的应用程序实例(svchost?或任务计划程序?)时,它是一个不同的实例,除非您指定自己的凭据(域,用户名和密码) ProcessStartInfo,然后我认为您可以作为用户与您的CMD实例很好地同步。