我对windows服务编程很陌生。在编写windows服务时,我对如何设置帐户类型感到困惑。
如何选择或如何确定在编写服务时需要设置的帐户类型?
发布于 2014-05-27 09:25:31
LocalSystem
LocalSystem帐户是服务控制管理器使用的预定义本地帐户。安全子系统无法识别此帐户,因此不能在调用LookupAccountName函数时指定其名称。
它在本地计算机上拥有广泛的特权,并在网络上充当计算机。它的令牌包括NT授权\ system和BUILTIN\Administrators SID;这些帐户可以访问大多数系统对象。所有区域设置中的帐户名都是.\LocalSystem。还可以使用名称、LocalSystem或ComputerName\LocalSystem。此帐户没有密码。如果在调用CreateService或ChangeServiceConfig函数时指定了CreateService帐户,则将忽略所提供的任何密码信息。
NetworkService
NetworkService帐户是服务控制管理器使用的预定义本地帐户。安全子系统无法识别此帐户,因此不能在调用LookupAccountName函数时指定其名称。它在本地计算机上拥有最小的特权,并在网络上充当计算机。
可以在调用CreateService和ChangeServiceConfig函数时指定此帐户。请注意,此帐户没有密码,因此您在此调用中提供的任何密码信息都将被忽略。虽然安全子系统本地化了这个帐户名,但SCM不支持本地化名称。因此,您将从LookupAccountSid函数中收到此帐户的本地化名称,但是当您调用CreateService或ChangeServiceConfig时,该帐户的名称必须是NT权限\NetworkService,无论区域设置如何,或者可能发生意外的结果。
在NetworkService帐户上下文中运行的服务将计算机的凭据显示给远程服务器。默认情况下,远程令牌包含每个用户组和经过身份验证的用户组的SID。用户SID是从SECURITY_NETWORK_SERVICE_RID值创建的。
NetworkService帐户在HKEY_USERS注册表项下有自己的子项。因此,HKEY_CURRENT_USER注册表项与NetworkService帐户相关联。
https://stackoverflow.com/questions/1301080
复制相似问题