सारांश:सी # में शैल कमांड आउटपुट कैप्चर कैसे करें?
- दूरस्थ मशीन पर क्वेरी रजिस्ट्री
- कब्जा उत्पादन
- जरूरतों आवेदन में उपयोग करने के लिए कोई तिथि नहीं में होने की
- अब तक केवल स्थानीय मशीन पर क्वेरी कर सकता है इस्तेमाल किया सभी तरीकों
- किसी भी आशा की बहुत सराहना की जाती है
पूर्ण समस्या:
मुझे csharp में कमांडलाइन कमांड चलाने और इसके आउटपुट को कैप्चर करने का कोई तरीका ढूंढना होगा। मुझे पता है कि पर्ल में यह कैसे करना है, नीचे कोड है जो मैं पर्ल में उपयोग करूंगा।
#machine to check
my $pc = $_[0];
#create location of registry query
my $machine = "\\\\".$pc."\\HKEY_USERS";
#run registry query
my @regQuery= `REG QUERY $machine`;
सीएसआरएपी में ऐसा करने के तरीके पर कोई सुझाव स्वागत होगा। अब तक Ive रजिस्ट्रीकी MyKey = 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");
}
[साथ सी # nslookup खोल उत्पादन कैप्चरिंग] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/353601/capturing-nslookup-shell-output-with-c) –
आप का प्रयास किया था 'RegistryKey.OpenRemoteBaseKey '? http://msdn.microsoft.com/en-us/library/8zha3xws.aspx –
पावरशेल एक बेहतर विकल्प होगा। – TrueWill