Сервер RPC недоступен. При звонке Managementscope.Connect.

StackOverflow https://stackoverflow.com/questions/4240945

  •  27-09-2019
  •  | 
  •  

Вопрос

Мне нужно дистанционно создать сервис и не преодолеть команду и запустить «SC Remotemachine Create ......» и хочу сделать это в коде C #.

Однако при запуске кода, даже если команда SC работает довольно радостно, и, таким образом, управляется удаленной системой. Контроль RUBLESCORE.CONNECT является выброс исключения с помощью «сервер RPC недоступен».

Фрагмент кода, который делает это

string machineName = "othermachine";
string path = string.Format(@"\\{0}\root\cimv2", machineName);
ManagementScope scope = new ManagementScope(path);
scope.Connect();

Поскольку это о первом шаге в путешествии, я немного застрял, куда идти дальше. Команда SC работает, так что это делает разные (кроме не используя библиотеки .NET - возможно, мне нужно ударить Winapi Serder?)

Спасибо

Это было полезно?

Решение

После того, как некоторое время задумаясь, увидев время, назначенное на эту задачу, оказавшись ошибками, я получил старую документацию API Win32 API и [DLLIMPORT] «Ed The Calles, которые мне нужно было сделать это« старомодный путь ». Будучи старой C собаки, я использовал свой путь вокруг этих звонков, удивительно, сколько возвращается даже после довольно нескольких лет использования управляемых библиотек.

Что мне нужно было сделать, должен был быть в состоянии создать сервис, запустите его, сделайте полезную работу, остановите ее и удалите ее. Создание, запуск, остановка и удаление являются механиками, и я хотел сконцентрироваться на «сделать полезную работу» частью деятельности.

Я сначала скопировал EXE Service на Admin $ Share и проверил локальный путь к этому (с нашими администратами сервера нет!).).). Сделать это, я звоню

["netapi32.dll"]NetShareGetInfo 

И тогда я использовал следующее с Advapi32.dll

  • Openscmanager.
  • CreateService
  • Startservice
  • OpenService (для того, чтобы когда я хочу остановить и удалить его - не держите ручки открытыми, так как это может занять некоторое время, чтобы сохранить себя так
  • Controlservice
  • Queryservicestatus.
  • CloseServiceHandle.

Это все работает даже через VPN-соединение.

Я могу только догадаться, что управляемая API пытается сделать гораздо больше, чем на самом деле нужно - разница во времени, которую нужно с использованием управляемого API и API Windows, и без гарантий, которые управляемый API пройдет через это разве подходящий путь вперед.

Другие советы

Очевидно, что фондовый код от MSDN не рисует всю картину. Я получаю те же результаты, что и вы.

Проверьте, что этот парень сделал.

РЕДАКТИРОВАТЬ:

Я верю, что вы пробуете его на рабочей группе, а не в домене, верно? Это трюк, рабочие группы требуют немного больше работы, чтобы пройти. Ссылка выше, похоже, имеет обходной путь. Я попробую снова из дома сегодня вечером.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top