How can you remotely login to a remote computer using C#? -


i'm trying write small command line application c# prompt username , password used login several remote computers sitting on same network/domain , start local session.

i've tried connecting remote computer , query remote pc's operating system info following code:

connectionoptions options = new connectionoptions();  managementscope scope = new managementscope(@"\\remote_computer_name"); scope.connect();  objectquery query = new objectquery("select * win32_operatingsystem"); managementobjectsearcher searcher = new managementobjectsearcher(scope, query);  managementobjectcollection querycollection = searcher.get();  foreach (managementobject m in querycollection) {     // display remote computer information     console.writeline("computer name : {0}", m["csname"]);     console.writeline("windows directory : {0}", m["windowsdirectory"]);     console.writeline("operating system: {0}", m["caption"]);     console.writeline("version: {0}", m["version"]);     console.writeline("manufacturer : {0}", m["manufacturer"]); } 

however, returns information on local pc i'm working on , not on remote pc.

am overlooking code? , there appropriate approach accomplish trying do?

i don't have remote machine right give working example, can try this. advapi32.logonuser

example:

[dllimport("advapi32.dll")] public static extern bool logonuser(string name, string domain, string pass,  int logtype, int logpv, out intptr pht);  intptr ptr; // logonuser("username", "remotemachine", "password", 2, 0, out ptr); logonuser("username", "remotemachine", "password", 9, 0, out ptr); windowsidentity windowsidentity = new windowsidentity(ptr); var impersonationcontext = windowsidentity.impersonate();  // code goes here...  impersonationcontext.undo(); 

this logon type allows caller clone current token , specify new credentials outbound connections. new logon session has same local identifier uses different credentials other network connections. note: logon type supported logon32_provider_winnt50 logon provider. note: windows nt: value not supported.

http://www.pinvoke.net/default.aspx/advapi32.logonuser

edit

give try cassia

iterminalservicesmanager manager = new terminalservicesmanager(); using (iterminalserver server = manager.getremoteserver("servername")) {     server.open();     foreach (iterminalservicessession session in server.getsessions())     {          console.writeline("hi there, " + session.useraccount + " on session " + session.sessionid);         console.writeline("it looks logged on @ " + session.logintime +                             " , " + session.connectionstate);     } } 

Comments

Popular posts from this blog

tcpdump - How to check if server received packet (acknowledged) -