我正在用 python 编写一个 Windows 服务,并且我正在使用密钥环模块来安全地存储我需要定期和持久使用的凭据。这意味着密钥环使用本地系统用户凭据存储密码。
我所做的只是使用 2 个基本的密钥环功能:get_password(SERVICE_NAME, username, password)
和
set_password(SERVICE_NAME, username)
. 我没有按照我的理解预先配置密钥环,并且看到它会自动配置其后端。
当我在 Windows Server 2008 及更高版本上运行它时,一切正常。但是当我在 Windows Server 2003 上运行它时,我得到了这个讨厌的错误:
error: (1312, 'CredWrite', 'A specified logon session does not exist. It may already have been terminated.')
我认为它与用于运行我的服务的本地系统用户的登录会话有关,尽管它很奇怪,因为我知道它是一种超级管理员超级用户的形式,应该有权做任何事情它想在系统中。但是当我将用户的登录凭据更改为本地管理员时,一切正常。
我需要更改我的服务配置以使其正常工作吗?或者更改本地系统用户的安全策略?还是我应该要求用户使用本地管理员凭据运行此服务?