概要:リモートマシン上C#でシェルコマンド出力をキャプチャする方法は?
- クエリレジストリ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メソッドを使って試してみましたが、うまくいきましたが、リモートマシン上のレジストリを照会できません。
詳細情報が必要な場合はお知らせください。
SOLUTION:
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");
}
(http://stackoverflow.com/questions/353601/capturing-nslookup-shell-output-with-c) –
[C#のでnslookupをシェル出力をキャプチャ]の可能性のある重複あなたは 'RegistryKey.OpenRemoteBaseKeyを試してみました'? http://msdn.microsoft.com/en-us/library/8zha3xws.aspx –
PowerShellがはるかに優れた選択肢になります。 – TrueWill