Tidak mengetahui kata sandi membuat segalanya menjadi rumit, tetapi mungkin solusinya adalah: apakah mungkin untuk sementara mengosongkan kata sandi pengguna? (Dan setelah itu reset ke apa pun sebelumnya.)
Sebagai permulaan:
Pertama, dapatkan jendela login untuk ditampilkan. Cukup logout pengguna saat ini, gunakan pengalihan pengguna cepat, atau gunakan SSH:
cd "/ System / Library / CoreServices / Ekstra Menu / User.menu / Isi / Sumber Daya /"
sudo ./CGSession -suspend
Atau, untuk langsung beralih ke pengguna tertentu, yang mungkin akan menampilkan jendela masuk (ini tiba-tiba tidak lagi berfungsi pada Leopard 10,5 saya):
sudo ./CGSession -switchToUserID 501
Apa yang ditampilkan sekarang sedikit bergantung pada System Preferences, tetapi mari kita asumsikan itu adalah ikon dan nama pengguna. Untuk mengaktifkan nama, kita harus mengetikkan huruf pertama. Kemudian, setelah Kembali, prompt kata sandi muncul. Atau satu dapat memilih setiap nama (seperti dengan menekan Panah Bawah) dan kemudian tekan Option-Kembali ke diminta untuk kedua setiap username dan password-nya. Saya tidak tahu bagaimana orang dapat mengetahui layar mana yang ditampilkan, tetapi mari kita simpan itu untuk nanti ...
Jadi, untuk memilih nama pengguna pertama (acak) dan tekan Option-Return, ketikkan nama pengguna tertentu, tekan Return, dan ketikkan kata sandi:
sudo osascript -e 'beri tahu aplikasi "System Events"
kode kunci 125
keystroke kembali menggunakan opsi turun
keystroke "nama pengguna"
keterlambatan 1.0
kembali keystroke
keterlambatan 1.0
keystroke "kata sandi"
keterlambatan 1.0
kembali keystroke
akhiri '
Di atas menunjukkan beberapa kesalahan, yang sejauh yang saya tahu tidak membatasi penggunaan:
osascript [285]: 3891612: (connectAndCheck) Aplikasi yang tidak tepercaya tidak
diizinkan untuk terhubung atau meluncurkan Window Server sebelum masuk.
_RegisterApplication (), GAGAL UNTUK membangun koneksi default untuk
WindowServer, _CGSDefaultConnection () adalah NULL.
Atau, gunakan skrip khusus bahasa dari " Script the Login window through Apple Remote Desktop " (mungkin suatu hari komentar di situs itu akan menunjukkan solusi yang lebih baik):
beri tahu proses "SecurityAgent"
setel nilai bidang teks 1 dari grup 1 dari jendela 1 ke "nama pengguna"
setel nilai bidang teks 2 grup 1 dari jendela 1 ke "kata sandi"
akhiri saja
klik tombol "Masuk" dari jendela 1 proses aplikasi "SecurityAgent"
Tetapi masalah utamanya adalah: ini masih membutuhkan kata sandi . Namun: jelas tidak diperlukan kata sandi saat pengguna memiliki kata sandi kosong. Bahkan, untuk kata sandi kosong, cukup mengklik ikon pengguna saja yang diperlukan. Jadi, jika mengirim penekanan tombol menggunakan AppleScript dapat diterima, maka mungkin "semua" yang tersisa untuk mencari tahu:
Apakah mungkin untuk sementara mengosongkan kata sandi pengguna, untuk memungkinkan memulai (atau melanjutkan) sesi tanpa mengetahui kata sandi itu ...?
Bisakah satu membuat AppleScript-proof? Suka:
- Bagaimana cara mengetahui apakah jendela login terlihat? (mungkin
stat -f%Su /dev/console
dapat membantu, karena itu menghasilkanroot
saat jendela masuk ditampilkan)
- Bagaimana cara mengetahui jendela masuk mana yang ditampilkan? (Seperti: yang memperlihatkan ikon dan nama login, atau daftar dropdown, atau mungkin hanya prompt kata sandi jika seseorang memilih untuk beralih ke pengguna tertentu?)
- Singkirkan penundaan.
- Bagaimana dengan pesan kesalahan itu?
(Catatan untuk pengujian: saat menggunakan Berbagi Layar sepertinya mengatur preferensi Saat mengendalikan komputer: Mengenkripsi hanya kata sandi dan penekanan tombol juga mempertahankan koneksi ketika jendela login ditampilkan, atau setelah pengguna berhasil login. Saat menggunakan Enkripsi semua jaringan data maka Mac saya perlu membangun kembali koneksi Screen Sharing setiap kali login ditampilkan atau pengguna diaktifkan.)