小编Leo*_* Xu的帖子

如何使用C++在SYSTEM进程中获取活动用户名?

我使用了GetUserName()METHOD,但它返回的用户名是SYSTEM进程中的'SYSTEM'.如何在SYSTEM进程中获取活动用户名?这是我的代码:

void getComputerUsername(char * username,char * domainname)
{
 HANDLE hp , htoken;
 char buff[1024];
 unsigned long size = 1024;

 TOKEN_USER *tuser;
 PSID sid;
 TCHAR * user = new TCHAR[256];
 TCHAR * domain=new TCHAR[256];
 SID_NAME_USE snu;

 hp = htoken = INVALID_HANDLE_VALUE;
 hp = GetCurrentProcess();
 if(OpenProcessToken(hp, TOKEN_QUERY, &htoken))
 {
     if(GetTokenInformation(htoken, TokenUser, (void*)buff, size, &size))
 {
     tuser = (TOKEN_USER*)buff;
     sid = tuser->User.Sid;
     size = 256;
     if(LookupAccountSid(NULL, sid, user, &size, domain, &size, &snu))
     {
    int iLength = WideCharToMultiByte(CP_ACP, 0, user, -1, NULL, 0, NULL, …
Run Code Online (Sandbox Code Playgroud)

c++ windows security acl user-accounts

2
推荐指数
2
解决办法
5765
查看次数

标签 统计

acl ×1

c++ ×1

security ×1

user-accounts ×1

windows ×1