- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在用 C 为 Windows 编写一个类似服务器的小程序(使用 MinGW/GCC,在 Windows 7 上测试),它最终应该作为使用 LocalSystem 帐户的服务运行。我正在创建一个套接字,并使用 Windows 套接字 bind()
、listen()
和 accept()
来监听传入连接。如果我从命令行运行应用程序(即不是作为服务,而是作为普通用户),我从外部 IP 连接到它没有问题。但是,如果我使用 LocalSystem 帐户将程序作为服务运行,我只能从我自己的 PC 连接到该服务,使用 127.0.0.1
或我的本地地址 192.168.1.80
(我在一个小型本地网络中的路由器后面)。使用我的本地地址的外部 IP 或同一本地网络中的其他 PC 现在都无法连接,即使没有作为服务运行也没有问题。
现在,我听说当作为 LocalSystem 或 LocalService 运行时,网络处理方式不同甚至无法访问(?),或者服务无法同时访问桌面和网络(注意:我的服务不是交互式的)时间出于安全考虑。本质上,我需要找出问题所在/如何监听服务中的连接。作为 NetworkService 运行是否与作为 LocalSystem 运行相同,但具有网络访问权限?肯定有服务器可以作为后台服务运行,那么他们是怎么做到的呢?
更新: 关闭防火墙的建议似乎是正确的——在 Windows 防火墙中添加异常(exception)后我可以连接。我想我没有考虑防火墙,因为当你正常使用套接字运行应用程序时,你会得到一个提示,要求添加一个异常(exception),这在第一次运行服务时不会发生。有没有比手动将规则添加到防火墙更好的方法来处理这个问题? LocalSystem 是否有权向防火墙本身添加规则,或者我是否必须在安装期间以某种方式执行此操作?
最佳答案
LocalSystem 和 LocalService 帐户已限制网络登录权限,但据我所知它不应该影响套接字连接。
但是,Windows 防火墙将处于事件状态,如果您将可执行文件移动到新目录以作为服务安装,它可能不再符合您为测试制定的规则。
关于c - Windows 服务 : Listening on socket while running as LocalSystem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10942916/
有没有办法在ServiceDefinition.csdef或其他地方执行此操作,而无需转到IIS并手动调整? 我尝试了 executionContext="elevated" for webrole,
试图解决它,但到目前为止所有的努力都是徒劳的。工作流程如下 作为 LocalSystem 运行的 Windows 服务使用 CreateProcessAsUser(...) 创建子服务带有当前登录用户
我试图通过 NtAllocateUuids 或简单地调用 UuidCreateSequential 获取 Uuid,但 Windows 无法为我的笔记本电脑获取以太网或 token 环硬件地址。因此,
我有一个在 Windows XP 及以下系统上作为 LocalSystem 运行的进程。我正在尝试找到一种方法让它启动另一个进程来模拟另一个用户而不必提供用户密码。 原则上这应该是可能的,因为 Loc
我正在使用 Windows Server v1.0 的服务总线。我有一个在 LocalSystem (NT AUTHORITY\SYSTEM) 帐户或 NetworkService (NT AUTHO
背景 我们需要从 Windows 服务运行 GUI 应用程序,设置为“作为本地系统登录”(并且不启用与桌面交互)。 GUI 应用程序采用一个命令行参数,执行一项特定任务,然后自行终止。它是一个 GUI
我们有一个从命令行安装 SQL Server Express 的应用程序,并通过参数 SQLACCOUNT="NT AUTHORITY\SYSTEM"将服务帐户指定为 LocalSystem 帐户。
我正在尝试配置我的 PostgreSql 数据库(“mydb”)以便为 Windows“LocalSystem”帐户提供登录权限。 我在我的数据库中创建了一个名为 LocalSystem 的用户 SQ
当服务作为本地系统运行时,是否可以从作为 Windows 托管服务托管的 WCF 服务在远程服务器上生成进程? 我需要人们能够在他们自己的帐户上下文下在远程服务器上执行操作(基本上就像 PSExec
我是 Windows 服务编程的新手。在编写 Windows 服务时,我对设置帐户类型的内容感到困惑。 在编写服务时,如何选择或确定我们需要设置的账户类型? 最佳答案 我们通常创建特殊的窗口(本地用于
我在与 Windows 服务相关的问题上苦苦挣扎。 在我的项目中,我想使用 c# 代码更改 sql 服务“LOG ON AS”本地系统。 最佳答案 在 C# 中你可以这样做: var process
我正在尝试使用此代码以 LocalSystem 帐户的身份启动一个进程 ProcessStartInfo _startInfo = new ProcessStartInfo(commandNa
我正在尝试按照 Windows SDK 中的说明编写我的第一个服务应用程序。我使用以下代码安装了该服务: SC_HANDLE schs=CreateService(sch,
如何使用 Win32 API 在与 LocalSystem 帐户不同的帐户下安装服务? 我正在使用以下代码来安装该服务。我想在不同的帐户下安装此服务。最后两个参数采用用户名和密码,但是当我给出时它会抛
我正在用 C 为 Windows 编写一个类似服务器的小程序(使用 MinGW/GCC,在 Windows 7 上测试),它最终应该作为使用 LocalSystem 帐户的服务运行。我正在创建一个套接
我创建了一项服务,仅当该用户登录(信息亭用户)时,该服务才会在特定用户的桌面上显示某种启动屏幕。 一旦输入有效的代码,该启动屏幕就会将该信息告知服务,并且服务将进入休眠状态 x 时间(取决于代码)。
我正在设置 Selenium Grid。每个版本的浏览器都有一台单独的机器。 每个节点都作为系统服务启动,在 LocalSystem 帐户上运行,并启用与用户桌面的交互。 这是必需的,因为当没有与用户
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
由于某些限制,我们必须将服务作为 LocalSystem 运行。我已经生成证书并将它们放在以下商店中: 证书(本地计算机)证书 - 服务(SQL Server (MSSQLSERVER))证书 - 服
我有一个 .NET c# 服务在 Windows10 64 位上作为 LocalSystem 运行。它的工作是改变位于 下的“ProxyEnable”和“ProxyServer”值 HKEY_CURR
我是一名优秀的程序员,十分优秀!