Tag: 远程访问

C#在单独的DNS服务器上获取远程计算机的IP

我正在开发一个实用程序,用于管理指定目录根目录下的指定域中的多台计算机(不一定是运行该应用程序的计算机所属的域)。 我遇到的问题是,一旦我从外部AD OU收集了计算机名称,由于DNS,我无法根据计算机名称进行管理。 是否可以在外部DNS服务器上执行DNS查找,前提是DNS服务器的IP和该域的凭据? 这是我用于初始化过程的代码(在同一个域中工作)。 真的很感激任何输入! private Task InitializeComputers() { try { Computers.Clear(); object cLock = new object(); PrincipalContext context = new PrincipalContext(ContextType.Domain, CurrentConfiguration.LDAPAddress, CurrentConfiguration.DirectoryRoot, ContextOptions.Negotiate, CurrentConfiguration.AdminUser, CurrentConfiguration.AdminPassword); ComputerPrincipal computer = new ComputerPrincipal(context); computer.Name = “*”; PrincipalSearcher searcher = new PrincipalSearcher(computer); PrincipalSearchResult result = searcher.FindAll(); Parallel.ForEach(result, (r) => { ComputerPrincipal principal = r as ComputerPrincipal; […]

登录失败:未知的用户名或密码错误? 但我使用正确的用户名和密码

我想在远程服务器中连接xml文件。 我写了这样的代码: string XMLPATH = @”\\10.222.54.141\c$\Data\CL\Casinolink30\BuildFiles\Logging\980\NoLog4NetFile.UnitTest.Tests.nunit-results.xml”; FileWebRequest request = (FileWebRequest)FileWebRequest.Create(XMLPATH); request.Credentials = new NetworkCredential(“administrator”, “Igtcorp123”); FileWebResponse response = request.GetResponse() as FileWebResponse; Stream stReader = response.GetResponseStream(); XmlTextReader reader = new XmlTextReader(stReader); int count = 100; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == “test-case”) { //Console.WriteLine(“testcase name:” + reader.GetAttribute(“name”)); Console.WriteLine(“testcase info”); Console.WriteLine(“name: ” […]

杀死远程机器上的进程

我正试图杀死远程机器上的进程。 但我得到错误。 我做错了什么,我该怎么做才能做到这一点? 我的代码: var iu = new ImpersonateUser(); try { iu.Impersonate(Domain, _userName, _pass); foreach (var process in Process.GetProcessesByName(“notepad”, “RemoteMachine”)) { string processPath = pathToExe; //Is set as constant (and is correct) process.Kill(); Thread.Sleep(3000); Process.Start(processPath); } } catch (Exception ex) { lblStatus.Text = ex.ToString(); } finally { iu.Undo(); } 只是为了澄清ImpersonateUser,它让我以正确的用户权限登录到远程机器。 所以问题不在那里。 当我调试并检查过程对象时,在这种情况下我找到了记事本的正确进程ID。 所以连接工作正常。 但是当我尝试杀死进程时,我收到此错误: System.NotSupportedException: […]

RDPSession ConnectToClient意外终止

我已经成功创建了一个桌面共享解决方案,其中RDPViewer连接到RDPSession。 这一切都很美妙。 然而,现在,我正试图让相反的工作:使用RDPViewer的StartReverseConnectListener方法和RDPSession的ConnectToClient方法(会话端将连接到查看器端以解决NAT /防火墙问题)。 我已按照http://msdn.microsoft.com/en-us/library/windows/desktop/aa373359%28v=vs.85%29.aspx中列出的步骤进行操作,主要是: 查看器通过调用StartReverseConnectListener方法获取其连接字符串,为bstrConnectionString,bstrUserName和bstrPassword参数传递NULL。 查看器通过调用StartReverseConnectListener方法启动反向连接侦听器,为pbstrReverseConnectString参数传递NULL,并为bstrConnectionString,bstrUserName和bstrPassword参数传递有效值。 查看器将在步骤1中获得的连接字符串发送到共享器。 使用C#2010,我在RDPSession端完成了以下操作: RDPSession session = new RDPSession(); session.Open(); session.Invitations.CreateInvitation(null, “test”, “12345”, 1); 然后,在RDPViewer方面,我做了: string reverseConnectString = axRDPViewer1.StartReverseConnectListener(null, null, null); (上面的步骤1) axRDPViewer1.StartReverseConnectListener(reverseConnectString, “test”, “12345”); (上面的步骤2) 然后,回到RDPSession端,我尝试使用从查看器获得的reverseConnectString来建立连接(我实际上将字符串保存到文件中,然后将其加载到RDPSession端): session.ConnectToClient(reverseConnectString); (上面的步骤3) 一旦我执行此方法,RDPViewer端就会断开错误1798,根据http://msdn.microsoft.com/en-us/library/aa373802%28VS.85%29.aspx ,这意味着: ServerCertificateUnpackErr 1798 无法解压缩服务器证书。 我觉得我错过了一些明显的东西,但我无法弄清楚是什么。 有什么建议? 谢谢!

如何获得使用System.Diagnostics.Process.GetProcess(string)的权限?

我正在使用Microsoft Visual Studio制作一个简单的远程任务管理器以用于体验目的。 我想使用Process.GetProcesses(string); 但有一个访问被拒绝的exception,不允许我进入远程计算机进程。 事实上它是正常的,因为我们应该使用用户名和密码进行身份validation, 但是如何 ?

如何将凭据传递给计算机,以便我可以使用Microsoft.Win32.RegistryKey.OpenRemoteBaseKey()?

如果我尝试在与我在同一域中的计算机中打开注册表(并且我的登录用户在目标计算机上具有管理员权限),则此.NET API可以正常工作。 如果它是一个具有不同的本地管理用户(我有密码)的域外机器,那就太棘手了。 在调用OpenRemoteBaseKey()之前,我尝试使用WNetUseConnection() (过去在我想要读取远程磁盘文件的情况下很好用),但没有骰子 – 我得到访问被拒绝的exception。 显然,我必须以其他方式传递证书,但如何?