我需要远程创建服务,而不是突破命令并运行“sc \ remotemachine create ......”并希望在C#代码中执行此操作。
但是,在运行代码时,即使sc命令工作得非常愉快,因此管理远程系统,ManagementScope.Connect调用也会抛出“RPC服务器不可用”的异常。
执行此操作的代码片段是
string machineName = "othermachine";
string path = string.Format(@"\\{0}\root\cimv2", machineName);
ManagementScope scope = new ManagementScope(path);
scope.Connect();
因为这是关于旅程的第一步,我有点被困在下一步去哪里。 sc命令有效,所以它有什么不同(除了不使用.net库之外 - 也许我需要更加努力地使用winapi?)
由于
答案 0 :(得分:2)
经过一段时间的思考,看到分配给这个任务的时间被淘汰了,我得到了旧的WIN32 api文档,[DllImport]了解了我需要这样做的电话" old老式的方式"。作为一个老C狗,我曾经知道我绕过这些电话的方式,即使在使用托管库几年之后,也会有多少回归。
我需要做的是能够创建一个servcie,启动它,做有用的工作,停止并删除它。创建,启动,停止和删除是机制,我想集中精力做有用的工作"活动的一部分。
我首先将服务的exe复制到ADMIN $共享并验证了本地路径(我们的服务器管理员没有说明!)。要做到这一点,我打电话
["netapi32.dll"]NetShareGetInfo
然后我从advapi32.dll
使用了以下内容这一切甚至可以通过VPN连接工作。
我只能猜测托管api正在尝试做的远远超过我实际需要的时间 - 使用托管api和Windows api所花费的时间差异相当大,并且无法保证托管api将获得通过它不是适合前进的方式。
答案 1 :(得分:0)
显然,MSDN的股票代码并没有描绘出整个画面。我得到的结果和你一样。
查看这个人did。
编辑:
我相信你是在工作组而不是域名上尝试的,对吧?这就是诀窍,工作组需要更多工作才能完成。上面的链接似乎有一个解决方法。今晚我将在家里再试一次。