在我的应用程序中,我需要知道计算机是否是域的主域控制器,因此我需要知道计算机的域以调用NetGetDCName函数.
谢谢.
编辑:该问题与DCOM身份验证有关,因此如果我需要使用计算机的本地身份验证数据库,我需要知道在PDC或COMPUTER\USERNAME的情况下使用DOMAIN\USERNAME的域.
小智 13
该NetWkstaGetInfo()函数返回计算机的域名或工作组,因此不是确定计算机是否是域成员的可靠方法.
该GetComputerNameEx()功能将与ComputerNameDnsDomain参数一起使用,如下所示.如果计算机位于工作组中,或者域名的DNS名称,则返回空字符串:
DWORD bufSize = MAX_PATH;
TCHAR domainNameBuf[ MAX_PATH ];
GetComputerNameEx( ComputerNameDnsDomain, domainNameBuf, &bufSize );
Run Code Online (Sandbox Code Playgroud)
我会考虑使用NetWkstaGetInfo()并传递本地计算机名称是第一个参数.
#include <Lmwksta.h>
#include <StrSafe.h>
WCHAR domain_name[256];
WKSTA_INFO_100 info = {0};
if (NERR_Success == NetWkstaGetInfo(L"THIS-COMPUTER", 100, &info) &&
SUCCEEDED(StringCchCopy(domain_name, ARRAYSIZE(domain_name), info.wki100_langroup))) {
// use domain_name here...
}
Run Code Online (Sandbox Code Playgroud)