Eu sei como obter o DN na linha de comando:
adquery user -D "$(hostname -s)"
No entanto, quero colocar o DN em um script de adit. Se eu puder select_object {DN here}
, então eu posso fazer as outras coisas que preciso fazer.
Eu simplesmente não sei como obter o DN diretamente em adedit
.
De acordo com a página adquery
man (parte do Centrify Suite):
The adquery command is provided for backward compatibility to enable you to query Active Directory for information about users and groups from the command line on a Centrify-managed computer. You can use this command to query information for classic or hierarchical zones. In most cases, however, you should use adedit commands or scripts
to query Active Directory for information in hierarchical zones.
No entanto, não há documentação clara que eu possa encontrar sobre como traduzir os comandos adquery
em chamadas nativas dentro de adedit
.
Por exemplo:
adquery user 'hostname -s' --dump
Isso fornece uma lista de todos os atributos e valores brutos para o usuário que é o computador no qual estou executando o comando. Usando o sinalizador --attribute
, posso retornar apenas um atributo.
Com adedit
, depois de executar select_object THE_DN
, posso obter outros campos, como "descrição", executando get_object_field description
. Mas, como obter o DN em primeiro lugar?
Encontrei o guia do programador de anúncios , mas não consigo encontrar o que eu preciso lá apesar da extensa escavação e experimentação.
Até que eu tenha uma abordagem melhor, estou executando:
adedit myscript "$(adquery user -D "$(hostname -s)")"
E depois no script:
if { $argc != 1 } {
puts "format: $argv0 hostDN"
exit 1
}
set the_dn [lindex $argv 0]
bind ... (credentials here)
select_object $the_dn
(Nota: o adedit é construído sobre o Tcl, então eu marquei esta questão Tcl assim como o Active Directory. Eu não tenho a reputação de criar uma tag do Centrify.)