如何在成员计算机未使用C连接到DC时获取其名称
发布时间:2020-12-16 07:03:07 所属栏目:百科 来源:网络整理
导读:我通常会通过调用以下命令获取Active Directory网络上成员计算机的可分辨名称: TCHAR buff[256];buff[0] = 0;DWORD dwSz = SIZEOF(buff);GetComputerObjectName(NameFullyQualifiedDN,buff,dwSz); 但是当该成员计算机当前未连接到DC时会出现问题.例如,如果
我通常会通过调用以下命令获取Active Directory网络上成员计算机的可分辨名称:
TCHAR buff[256]; buff[0] = 0; DWORD dwSz = SIZEOF(buff); GetComputerObjectName(NameFullyQualifiedDN,buff,&dwSz); 但是当该成员计算机当前未连接到DC时会出现问题.例如,如果我将我的工作笔记本电脑带回家,它将无法访问我们工作的本地AD,并且GetComputerObjectName将失败. (我相信错误代码为1355或ERROR_NO_SUCH_DOMAIN.) 所以我的问题是,有没有办法在这种情况下获得成员计算机的专有名称? 解决方法
如果你不介意我说,我认为你想要做的事情有些缺陷.
仅当成员计算机连接到域时,FQDN才真正有效.如果您已脱机登录计算机(从您的描述中我认为必须如此),则不再将计算机视为在域上具有FQDN. 毕竟,当你离线时,一些狡猾的系统管理员可能会在AD中移动机器的帐户,以便下次从它登录域时,它的FQDN已经改变. 您引用的注册表项确实提供了FQDN,但是,当机器处于脱机状态时,我认为应该将其视为最后记录值的缓存. 如果我是你,我将处理GetComputerObjectName()抛出的异常,并使用像gethostname()这样的东西. 干杯,伊恩. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |