Сводка:
- реестр запросов на удаленной машине
- захватывать вывод для использования в приложении
- должен быть в csharp
- до сих порвсе используемые методы могут запрашивать только на локальном компьютере
- любая надежда приветствуется
Полная версия:
Мне нужно найти способ выполнить команду командной строкив csharp и захватить его вывод.Я знаю, как сделать это в Perl, ниже приведен код, который я использовал бы в Perl.
#machine to check
my $pc = $_[0];
#create location of registry query
my $machine = "\\\\".$pc."\\HKEY_USERS";
#run registry query
my @regQuery= `REG QUERY $machine`;
Любые предложения о том, как сделать это в csharp, будут приветствоваться.До сих пор я пытался использовать метод RegistryKey OurKey = Registry.Users, и он прекрасно работает, но я не могу запросить реестр на удаленной машине.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
РЕШЕНИЕ: (Спасибо @Robaticus)
private void reg(string host)
{
string build = "QUERY \\\\" + host + "\\HKEY_USERS";
string parms = @build;
string output = "";
string error = string.Empty;
ProcessStartInfo psi = new ProcessStartInfo("reg.exe", parms);
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
psi.UseShellExecute = false;
System.Diagnostics.Process reg;
reg = System.Diagnostics.Process.Start(psi);
using (System.IO.StreamReader myOutput = reg.StandardOutput)
{
output = myOutput.ReadToEnd();
}
using (System.IO.StreamReader myError = reg.StandardError)
{
error = myError.ReadToEnd();
}
Output.AppendText(output + "\n");
}