如何通过编程判断Mac OS X计算机是否绑定到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中查询一些内容,但没有成功。。。我会继续努力,但我希望这里有人能分享一些知识。

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

Swift

import Foundation
import OpenDirectory
let mySession = ODSession.default()
do {
    print(try mySession?.nodeNames())
}
catch {
    print("error: (error)")
}

目标-C

#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;
}

最新更新