Хобрук: Ваш путь к мастерству в программировании

Вызов службы Windows с удаленного компьютера

Я собираюсь создать службу Windows для добавления пользователей на компьютер (пользователей без прав, то есть только для аутентификации). (В качестве примечания я планирую использовать этот метод.)

Я хочу иметь возможность вызывать эту службу Windows с другого компьютера.

Как это сделать? Это сложная задача? Может, мне лучше просто создать веб-службу и разместить ее в IIS?

У меня есть несколько служб WCF, размещенных в IIS на вызывающем компьютере (они будут вызывать предлагаемую службу Windows). Я обнаружил, что хостинг в IIS несколько проблематичен, поэтому я бы предпочел не иметь второго экземпляра IIS для управления, если в этом нет необходимости.

(Я буду использовать Visual Studio 2008 SP1, C # и Windows Server 2003 (как для вызывающего абонента, так и для узла службы).

Спасибо за помощь


Ответы:


1

Если вы думаете о размещении веб-службы в IIS только для связи с NT-службой на том же компьютере, это определенно доставит больше хлопот, чем в данном случае.

Как указывалось в других ответах, вы можете создать службу WCF с необходимыми вам операциями и разместить ее в той же службе NT, с которой вы хотите взаимодействовать. Вы можете легко защитить это с помощью сертификатов или учетных записей пользователей, чтобы убедиться, что им управляют только нужные люди / машины.

Если вам нужно управлять самой NT-службой, существуют существующие программы, такие как sc .exe для удаленного запуска, остановки, настройки или запроса состояния NT-службы.

Однако вы можете рассмотреть возможность поиска решения без накладных расходов на создание настраиваемой службы NT и настраиваемой службы WCF для взаимодействия с ней. В этом случае может быть достаточно команд Net User (извините, нет ссылки - ограничение для нового пользователя) или утилиты AddUsers (см. Kb 199878 / en-us). Если ваш удаленный «контроллер» может вызывать эти команды непосредственно на целевой машине, возможно, вам не придется создавать какое-либо специальное программное обеспечение для решения этой проблемы. Кроме того, у вас будет меньше программного обеспечения для обслуживания и администрирования на целевой машине. Вы бы просто использовали встроенные возможности ОС и административные утилиты.

Наконец, вам нужно будет подумать об аспекте безопасности, NT-службы и IIS обычно запускаются под очень ограниченными учетными записями, многие аудиторы будут переключаться на любую службу, работающую с достаточным разрешением для создания или изменения пользователей локально, и особенно на других машинах. . Вы захотите убедиться, что сервис никогда не может использоваться для создания пользователей, у которых есть больше, чем указанное вами разрешение «аутентификации».

Изменить: команда net user может не работать против локальных пользователей другого компьютера, но проверьте. pspasswd, который вместе с PsExec для создания пользователей должен делать то, что вам нужно. удаленно.

02.07.2009
  • Спасибо DanO. Это настоящая ссылка для тех, кто последует после: support.microsoft.com/default.aspx / kb / 251394 03.07.2009

  • 2

    Просто разместите службу WCF в службе Windows. После этого вы сможете позвонить ему удаленно.

    02.07.2009

    3

    Вы можете разместить службу WCF внутри службы Windows. Взгляните на привязку TCP (класс NetTcpBinding ). И клиент, и сервер должны будут использовать WCF, но это не похоже на проблему с вашей реализацией.

    Кроме того, раздел «Хостинг в службах Windows» в этой статье MSDN обеспечивает пошаговое руководство по процессу

    02.07.2009
  • Спасибо за дополнительную информацию и ссылки на статью MSDN. 02.07.2009

  • 4

    Если служба Windows публикует интерфейс удаленного взаимодействия, доступ к нему можно получить через этот интерфейс удаленного взаимодействия.

    В остальном это то же самое, что доступ к любому другому процессу, запущенному на удаленном компьютере, за исключением того, что могут быть некоторые инструменты (например, sc) со встроенной поддержкой выполнения на удаленном компьютере (за исключением осложнений с брандмауэром).

    Применяются любые механизмы IPC; сокеты, веб-сервисы, удаленное взаимодействие и т. д.

    02.07.2009
  • набор команд сетевых служб также обычно поддерживает удаленные цели 02.07.2009
  • Мне нравится эта идея. Но удаленное управление также несколько сложно (я делал это только один раз). Я попробую запустить WCF в службе Windows, у меня не получается. 02.07.2009

  • 5

    Вы можете открыть службу WCF прямо из службы Windows. Когда вы запускаете службу Windows, вы можете не только запускать другие фоновые процессы, но и создать экземпляр ServiceHost ‹T› для реализации службы. Это позволит вам не только предоставить доступ к WCF, но и избежать дополнительного экземпляра IIS, как вы запрашивали, и предоставить конечные точки TCP, именованных каналов и WsHttp. Это должно дать вам некоторую гибкость в области настройки производительности, поскольку похоже, что эта служба будет использоваться внутри вашей сети, а не извне.

    02.07.2009

    6

    Вы можете создать службу WCF, которая будет взаимодействовать с вашей службой Windows на удаленном компьютере. Разместите компонент WCF в IIS (или как хотите, чтобы вы могли с ним взаимодействовать), а затем вызовите компонент WCF со своего удаленного компьютера.

    02.07.2009
    Новые материалы

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

    Обзор 20 основных и современных методов работы с массивами в JavaScript
    Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

    Да, но я чувствую необходимость указать, что это или не единственные два.
    Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.