Как программно определить, связан ли компьютер Mac OS X с доменом Active Directory? - PullRequest
3 голосов
/ 23 февраля 2012

Эта команда: 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 Ответ

1 голос
/ 23 февраля 2012

Без аутентификации узла вы должны по крайней мере увидеть, связан ли AD, путем просмотра активных подключаемых модулей OD - он должен включать 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...