gpt4 book ai didi

c# - 从远程计算机调用 Windows 服务

转载 作者:行者123 更新时间:2023-11-30 13:52:59 25 4
gpt4 key购买 nike

我将编写一个 Windows 服务来将用户添加到计算机(没有权限的用户,即仅用于身份验证)。 (作为旁注,我计划使用 this method 。)

我希望能够从另一台计算机调用此 Windows 服务。

这是怎么做到的?这是一项艰巨的任务吗?我是否最好只创建一个 Web 服务并将其托管在 IIS 中?

我在调用计算机的 IIS 中托管了一些 WCF 服务(它们将调用建议的 Windows 服务)。我发现在 IIS 中托管有点问题,所以我宁愿没有第二个 IIS 实例来管理,除非我需要。

(我将使用 Visual Studio 2008 SP1、C# 和 Windows Server 2003(用于调用方和服务主机)。

感谢帮助

最佳答案

如果您正在考虑在 IIS 中托管 Web 服务只是为了与同一台机器上的 NT 服务通信,那么在这种情况下肯定麻烦多于它的值(value)。

正如其他答案所表明的那样,您可以使用所需的操作创建 WCF 服务,并将其托管在您要与之交互的同一 NT 服务中。您可以使用证书或用户帐户轻松保护它,以确保它仅由正确的人/机器控制。

如果您需要控制 NT 服务本身,可以使用现有的程序,例如 sc.exe远程启动、停止、配置或查询 NT 服务的状态。

但是,您可能需要考虑寻找一种解决方案,而无需创建自定义 NT 服务和自定义 WCF 服务来与之交互。如果这样做,Net User 命令(抱歉没有链接 - 新用户限制)或 AddUsers(请参阅 kb 199878/en-us)实用程序可能就足够了。如果您的远程“ Controller ”可以直接针对目标机器调用这些命令,您可能不必创建任何自定义软件来满足此需求。此外,您在目标机器上需要维护和管理的软件也会更少。您只会使用内置的操作系统功能和管理实用程序。

最后,您需要考虑安全方面,NT 服务和 IIS 通常在非常受限的帐户下运行,许多审计员会对任何以足够的权限运行以在本地创建或修改用户的服务感到愤怒,尤其是在其他机器上。您需要确保永远不会使用该服务来创建拥有超过您指定的“身份验证”权限的用户。

编辑:net user 命令可能无法对另一台机器的本地用户起作用,但请检查一下。 pspasswd与 PsExec 一起创建用户,应该远程执行您需要的操作。

关于c# - 从远程计算机调用 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1075267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com