如何用C语言获取系统的sid信息?

在Win7中,你可以在cmd中输入whoami/user来轻松获取sid信息,但是,要在程序中获得,该怎么做呢?如下(Windows API, 我服了你):

#include <stdio.h>#include <windows.h>#define MAX_NAME 256void ConvertSid(PSID pSid, LPTSTR TextualSid){PSID_IDENTIFIER_AUTHORITY psia = GetSidIdentifierAuthority(pSid);DWORD sidLen = sprintf(TextualSid, TEXT("S-%lu-"), SID_REVISION);sidLen += sprintf(TextualSid + strlen(TextualSid), TEXT("%lu"), psia->Value[5]);int i = 0;int subAuthorities = *GetSidSubAuthorityCount(pSid);for (i = 0; i < subAuthorities; i++){sidLen += sprintf(TextualSid + sidLen, TEXT("-%lu"), *GetSidSubAuthority(pSid, i));}}void GetLocalSid(LPTSTR szSid){char szUserName[MAX_NAME] = {0};DWORD nameSize = sizeof(szUserName) ;GetUserName(szUserName, &nameSize);char szUserSid[MAX_NAME] = {0};char szUserDomain[MAX_NAME] = {0};DWORD sidSize = sizeof(szUserSid);DWORD domainSize = sizeof(szUserDomain);SID_NAME_USE snu;LookupAccountName( NULL,szUserName,(PSID)szUserSid,&sidSize,szUserDomain,&domainSize,&snu);ConvertSid(szUserSid, szSid);}int main(){char szSid[MAX_NAME] = {0};GetLocalSid(szSid);printf("%s\n", szSid);return 0;}

版权声明:本文为博主原创文章,,未经博主允许不得转载。

经验是由痛苦中粹取出来的

如何用C语言获取系统的sid信息?

相关文章:

你感兴趣的文章:

标签云: