我的电脑在A域中,远程服务器在B域中,我想使用c#或任何其他编程语言或脚本从我的电脑重启服务器上的一个服务。
注意:
- 我通过VPN连接到服务器,这意味着我可以手动RDP服务器并手动重启服务。
- 我无法通过本地服务窗口下的“连接到其他计算机”操作按钮访问服务器上的服务。
- 我拥有对服务器的管理员权限。
- 我不能(不允许)向服务器添加任何组件。
- 我对远程机器拥有不同的凭据。
您首先应该尝试使用 sc
命令来确保您能够使用当前权限和凭据远程启动该服务。如果这个方法可行,可以看一下 System.ServiceProcess.ServiceController
。
当您说您是远程机器上的管理员时,我假定这意味着您正在使用不同的凭据登录。我不认为其中任何一个将允许您使用其他凭据,即命令将以 Domain A 特权执行,而这些特权很可能不足以完成您要做的事情。
runas
命令来启动程序吗?我无法找到在线文档,但我相信它应该是类似于runas /noprofile /netonly /user:<user>@<domain> <program>
的形式。 - Brenda Bell您能使用批处理文件吗?通常我会使用这样的代码:
NET USE \\computername\IPC$ /U:domainname\username password
SC \\computername START service