Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RPC服务器不可用。调用ManagementScope时。连接_C#_Rpc_Remote Management - Fatal编程技术网

C# RPC服务器不可用。调用ManagementScope时。连接

C# RPC服务器不可用。调用ManagementScope时。连接,c#,rpc,remote-management,C#,Rpc,Remote Management,我需要远程创建一个服务,而不是突然执行命令并运行“sc\remotemachine create…”并希望在C#代码中执行此操作 但是,在运行代码时,即使sc命令工作得很好,因此正在管理远程系统,ManagementScope.Connect调用也会引发一个异常“RPC服务器不可用” 执行此操作的代码片段是 string machineName = "othermachine"; string path = string.Format(@"\\{0}\root\cimv2", machineNa

我需要远程创建一个服务,而不是突然执行命令并运行“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?)


谢谢

很明显,MSDN的库存代码并不能说明全部情况。我得到的结果和你一样

看看这家伙干了什么

编辑:


我相信您是在工作组而不是域上尝试它,对吗?这就是诀窍,工作组需要更多的工作才能通过。上面的链接似乎有一个解决办法。今晚我会在家里再试一次。

在考虑了一会儿之后,我看到分配给这项任务的时间被消耗殆尽,我拿出了旧的WIN32 api文档,[dlliport]调用了我需要的调用,以“老式的方式”完成这项任务。作为一只老C狗,我曾经知道如何处理这些调用,令人惊讶的是,即使在使用托管库好几年后,仍然有这么多调用返回

我需要做的是能够创建一个服务,启动它,做有用的工作,停止它并删除它。创建、开始、停止和删除都是机制,我想集中精力在活动的“做有用的工作”部分

我首先将服务的exe复制到ADMIN$共享中,并验证了该共享的本地路径(与我们的服务器管理员一起,这是不确定的!)。要做到这一点,我打电话

["netapi32.dll"]NetShareGetInfo 
然后我使用了advapi32.dll中的以下命令

  • OpenSCManager
  • 创建服务
  • StartService
  • OpenService(当我想停止并删除它时-不要让句柄保持打开状态,因为这可能需要一段时间才能保持thngs的自包含性)
  • 控制服务
  • 查询服务状态
  • 关闭服务手柄
这一切即使在VPN连接中也能正常工作


我只能猜测托管api所做的远远超出了我的实际需要-使用托管api和Windows api所花费的时间相差很大,而且无法保证托管api能够通过,这不是一个合适的方法。

健全性检查:您是否尝试只连接到
其他机器
,不是root/cimv2?不,我在一个域中。如果我直接连接到办公室的局域网,代码就可以工作,但是这只是每周两天。剩下的时间我是通过VPN连接的,代码在这个链接上不起作用。SC和PSEXEC在这两个地方都工作得很好,这让我相信它们之间存在着根本性的区别——但请看下面的帖子……老实说,我遇到了另一个例外,RPC访问被拒绝,我认为这意味着,如果我能得到尽可能多的拒绝,至少有些东西工作正常。解决方法考虑得不错。这种情况改变了整个问题,现在这是一个VPN问题……直到昨天我在办公室,我的代码工作后,才真正变得清晰,而这是前一天晚上没有的。唯一的区别是JuniperVPN连接。