Eu acho que vou responder a minha própria pergunta. Para minhas necessidades, foi em perl, mas deve ser bastante óbvio como fazer o mesmo em um script de shell direto. Eu só precisava pegar as credenciais da máquina do ActiveDirectory.plist
sub get_LDAPEntries
{
my ($LDAPServer, $LDAPPort, $LDAPsearchbase, $LDAPfilter) = @_;
my $kerbID = '/usr/libexec/PlistBuddy /Library/Preferences/DirectoryService/ActiveDirectory.plist -c "print :'AD Computer Kerberos ID'"';
chomp $kerbID;
my $password = '/usr/libexec/PlistBuddy /Library/Preferences/DirectoryService/ActiveDirectory.plist -c "print :'AD Computer Password'"';
chomp $password;
my $LDAPSession = Net::LDAP->new($LDAPServer, port=>$LDAPPort);
$LDAPSession->bind($kerbID, password => $password) or die("Could not connect to LDAP server.");
my $results = $LDAPSession->search(base=>$LDAPsearchbase,filter=>$LDAPfilter);
$results->code && die "There was an error in the LDAP search: " . $results->error;
$LDAPSession->unbind;
my @LDAPEntries = $results->entries;
return @LDAPEntries;
}
Atualização: Isso só funciona no Snow Leopard (10.6). Lion (10.7) armazena a senha do AD no keychain e você precisará usar o utilitário de linha de comando "security" para acessá-la ... o que é francamente meio problemático devido à saída da senha para o stderr enquanto o resto do consulta é enviada para stdout. Eu vou decretar o apoio do Leão como fora do escopo :-P