我正在编写一个 Windows服务,它将使用系统配置文件名称与数据库配合使用。对于此功能,我有一个 Postgres SQL Server 。
我想在运行服务之前为Windows 系统配置文件创建信任身份验证。
为此,我将运行一些控制台应用程序,该应用程序将在 pg_hba.conf 文件中编写所需信息,如身份验证方法,并使用系统配置文件创建角色名字。顺便说一句,Postgres可以识别其他语言符号非常酷(虽然不确定所有语言符号)。
问题是如何找到Windows系统配置文件的 已翻译 名称的?导致不同语言的每个Windows具有不同的系统配置文件名称: system ,система, sistema 等。
答案 0 :(得分:3)
因此,使用WinAPI解决了问题:
#include <windows.h>
<...>
static const DWORD MAX_BUFF_SIZE = 256;
SID_IDENTIFIER_AUTHORITY auth = SECURITY_NT_AUTHORITY;
PSID pSid = NULL;
SID_NAME_USE use;
wchar_t buffName[MAX_BUFF_SIZE]; // Here would be name
DWORD buffNameSize = MAX_BUFF_SIZE;
wchar_t buffDomain[MAX_BUFF_SIZE];
DWORD buffDomainSize = MAX_BUFF_SIZE;
AllocateAndInitializeSid(&auth, 1, SECURITY_LOCAL_SYSTEM_RID, 0, 0, 0, 0, 0, 0, 0, &pSid);
LookupAccountSid(NULL, pSid, buffName, &buffNameSize, buffDomain, &buffDomainSize, &use);
FreeSid(pSid);
<...>
答案 1 :(得分:1)