此命令: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没有成功...我将继续努力,但我希望有人在这里有一些知识可以分享。
答案 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;
}