- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在通过对 CreateService
的 win32 API 调用,使用 C# 在机器上创建服务。该函数的 MSDN 页面说明了 lpServiceStartName
参数:
The name of the account under which the service should run. If the service type is SERVICE_WIN32_OWN_PROCESS, use an account name in the form DomainName\UserName. The service process will be logged on as this user. If the account belongs to the built-in domain, you can specify .\UserName.
在远程机器上,用户 myuser
属于默认本地域 WORKGROUP
。如果我通过 ".\myuser"
,一切正常。如果我传递 "WORKGROUP\myuser"
,我会得到 ERROR_INVALID_SERVICE_ACCOUNT
。
我对这种行为很好奇,因为上面的文档似乎说我可以指定.\myuser
,而不是我必须 .任何人都可以阐明这一点吗?
最佳答案
首先,我不是 Windows 帐户管理方面的专家,在这里我可能会遭到一些反对,但这是我在测试 Windows 服务登录身份时注意到的。如文档所述,如果帐户属于内置域,则可以指定“.\UserName”。内置域包括安装操作系统时创建的组和用户 (link)。因此,您可以指定“BUILTIN\UserName”而不是“.\UserName”,因为 BUILTIN 是内置域的名称。
实际上,它对“BUILTIN\Administrators”和“BUILTIN\Guests”有效,但对用户“BUILTIN\Guest”无效。如果您尝试创建一个新的本地组和本地用户并将其设置为登录身份,您仍然会以“.\UserName”的形式看到它。这在文档中可能不准确,但无论如何,对于不是内置帐户的本地用户帐户,您可以将点替换为机器名称:“MACHINE\UserName”。
关于c# - 在 lpServiceStartName 中显式指定本地域时调用 CreateService 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8811590/
我是一名优秀的程序员,十分优秀!