如何以编程方式判断Mac OS X计算机是否绑定到Active Directory域?

时间:2012-02-22 20:20:41

标签: macos active-directory

此命令:dsconfigad -show执行我需要的操作,但我需要管理员权限才能运行它。

以上命令输出我感兴趣的一些信息:

You are bound to Active Directory:
      Active Directory Forest        = xx.xxxxxx.local
      Active Directory Domain        = xx.xxxxxx.local
      Computer Account               = (computer name)

我希望能够以编程方式获得上面显示的Active Directory Domain,并且最好不必拥有sudo权限。

有什么建议吗?我浏览过Open Directory文档,对我来说如何做到这一点并不完全明显。我还尝试了一些代码示例,只是为了查询AD没有成功...我将继续努力,但我希望有人在这里有一些知识可以分享。

1 个答案:

答案 0 :(得分:1)

如果没有节点身份验证,您至少应该通过查看活动的OD插件来查看AD是否绑定 - 如果绑定了AD应该包含AD。它可能会也可能不会显示域名(通常它适用于LDAP,但我没有AD在这里测试,因此您的里程可能会有所不同):

#include <Foundation/Foundation.h>
#include <OpenDirectory/OpenDirectory.h>

int main(int ac, char **av) {
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  ODSession *mySession = [ODSession defaultSession];
  NSError *err = 0;
  NSArray *nodeNames = [mySession nodeNamesAndReturnError:&err];
  if (err) NSLog(@"error: %@", err);
  if (nodeNames) NSLog(@"nodes: %@", nodeNames);
  [pool release];
  return 0;
}