Сервер RPC недоступен. При звонке Managementscope.Connect.
-
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 не рисует всю картину. Я получаю те же результаты, что и вы.
Проверьте, что этот парень сделал.
РЕДАКТИРОВАТЬ:
Я верю, что вы пробуете его на рабочей группе, а не в домене, верно? Это трюк, рабочие группы требуют немного больше работы, чтобы пройти. Ссылка выше, похоже, имеет обходной путь. Я попробую снова из дома сегодня вечером.