Jawaban:
Saya sudah melakukan ini pada OS X, perintah yang sama ada di linux.
Menurut situs ini . Sepertinya cara untuk menghindari menambahkan nama pengguna ke file smbpasswd untuk digunakansmbpasswd -U <user> -r <IP address of DC>
NT_STATUS_IO_TIMEOUT
. Apakah ada port yang harus dibuka agar perintah ini berfungsi?
Saya menggunakan solusi yang sama dengan @JamesBarnett
, saya baru saja membuat skrip yang juga mendapatkan IP kontroler domain juga (saya tidak pernah tahu apa IP ketika saya perlu mengubah kata sandi saya) .
#!/bin/bash
USER="your.username"
DOMAIN="yourdomain.com"
smbpasswd -U $USER -r `nslookup _ldap._tcp.dc._msdcs.$DOMAIN | awk '{print $2;exit;}'`
nslookup
perintah tidak akan bekerja seperti yang diberikan, karena catatan ldap adalah tipe DNS SRV. Anda perlu melakukan: nslookup -type=SRV ...etc...
dan memfilternya dengan tepat (ini lebih rumit daripada awk sederhana), atau lebih baik lagi: $(dig SRV +noall +additional _ldap._tcp.dc._msdcs.$DOMAIN | awk '{print $5}')
mengganti seluruh nslookup antara backticks yang Anda miliki, di atas.
-a
berarti bendera "nama pengguna berikut harus ditambahkan ke file smbpasswd lokal". Mungkin halaman manual salah; tapi saya curiga.