我正在尝试创建一个连接到其他计算机的应用程序,以删除来自不同计算机的用户列表。我使用PSexec
工具并尝试通过执行命令格式命令行使用c#访问该工具。我找到了一个使用进程并执行多个命令的代码但是一旦我选择PSexec.exe
作为FileName
而没有识别命令
这是代码
ProcessStartInfo processStartInfo = new ProcessStartInfo("PSexec.exe");
processStartInfo.WorkingDirectory = @"C:\PSTools";
processStartInfo.RedirectStandardInput = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.UseShellExecute = false;
Process process = Process.Start(processStartInfo);
if (process != null)
{
process.StandardInput.WriteLine("psexec \\2E01-Computer net localgroup administrators testuser/delete");
process.StandardInput.WriteLine("ipconfig /all");
process.StandardInput.Close(); // line added to stop process from hanging on
richTextBox1.Text = process.StandardOutput.ReadToEnd();
}
如果我使用cmd.exe
来获得结果,它可以正常工作。
ProcessStartInfo processStartInfo = new ProcessStartInfo("CMD.exe");
通过使用cmd.exe执行opconfig我得到了这个结果:
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\Users>ipconfig
Windows IP Configuration
Wireless LAN adapter Local Area Connection* 12:
Media State . . . . . . . . . . . :
Connection-specific DNS Suffix . :
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . :
IPv4 Address. . . . . . . . . . . :
Subnet Mask . . . . . . . . . . . :
Default Gateway . . . . . . . . . :
Ethernet adapter Ethernet:
Media State . . . . . . . . . . . :
Connection-specific DNS Suffix . :
Tunnel adapter isatap.{}:
Media State . . . . . . . . . . . :
Connection-specific DNS Suffix . :
Tunnel adapter Local Area Connection* 14:
Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . :
Link-local IPv6 Address . . . . . :
Default Gateway . . . . . . . . . : ::
但是如果我将FileName传递给Psexec将不会得到任何结果,如下所示
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\PSTools>ipconfig
C:\PSTools>
有时它会使任何结果退缩。