Không biết mật khẩu làm cho mọi thứ trở nên phức tạp, nhưng có lẽ giải pháp là: có thể tạm thời xóa mật khẩu của người dùng không? (Và sau đó đặt lại nó thành bất cứ điều gì trước đây.)
Khi bắt đầu:
Đầu tiên, lấy cửa sổ đăng nhập để hiển thị. Chỉ cần đăng xuất người dùng hiện tại, sử dụng chuyển đổi người dùng nhanh hoặc sử dụng SSH:
cd "/ Hệ thống / Thư viện / CoreService / Menu Extras / User.menu / Nội dung / Tài nguyên /"
sudo ./CGSession -suspend
Hoặc, để chuyển sang một người dùng cụ thể ngay lập tức, có thể sẽ hiển thị cửa sổ đăng nhập (điều này đột nhiên không còn hoạt động trên 10.5 Leopard của tôi):
sudo ./CGSession -switchToUserID 501
Những gì hiển thị bây giờ phụ thuộc một chút vào Tùy chọn hệ thống, nhưng giả sử đó là biểu tượng của người dùng và tên của họ. Để kích hoạt tên, chúng ta phải nhập các chữ cái đầu tiên. Sau đó, sau khi trả về, dấu nhắc mật khẩu hiển thị. Ngoài ra người ta có thể chọn bất kỳ tên (như bằng cách nhấn mũi tên Down) và sau đó nhấn Option-Return to được nhắc nhở cho cả bất kỳ tên truy cập và mật khẩu của mình. Tôi không biết làm thế nào người ta có thể biết màn hình nào được hiển thị, nhưng hãy để dành màn hình đó sau ...
Vì vậy, để chọn tên người dùng (ngẫu nhiên) đầu tiên và nhấn Option-Return, nhập tên người dùng cụ thể, nhấn Return và nhập mật khẩu:
sudo osascript -e 'nói với ứng dụng "Sự kiện hệ thống"
mã khóa 125
tổ hợp phím trở lại bằng cách sử dụng tùy chọn xuống
tổ hợp phím "tên người dùng"
độ trễ 1.0
tổ hợp phím trở lại
độ trễ 1.0
tổ hợp phím "mật khẩu"
độ trễ 1.0
tổ hợp phím trở lại
kết thúc
Ở trên cho thấy một số lỗi, mà theo như tôi có thể nói không giới hạn việc sử dụng:
osascript [285]: 3891612: (connectAndCheck) Các ứng dụng không đáng tin cậy không phải là
được phép kết nối hoặc khởi chạy Window Server trước khi đăng nhập.
_RegisterApplication (), FAILED để thiết lập kết nối mặc định tới
WindowServer, _CGSDefaultConnection () là NULL.
Ngoài ra, sử dụng tập lệnh cụ thể về ngôn ngữ từ " Script cửa sổ Đăng nhập thông qua Apple Remote Desktop " (có thể một ngày nào đó các nhận xét tại trang web đó sẽ hiển thị một giải pháp tốt hơn):
nói quá trình "SecurityAgent"
đặt giá trị của trường văn bản 1 của nhóm 1 của cửa sổ 1 thành "tên người dùng"
đặt giá trị của trường văn bản 2 của nhóm 1 của cửa sổ 1 thành "mật khẩu"
kết thúc
nhấp vào nút "Đăng nhập" của cửa sổ 1 của quy trình ứng dụng "SecurityAgent"
Nhưng vấn đề chính là: điều này vẫn cần mật khẩu . Tuy nhiên: rõ ràng không cần mật khẩu khi người dùng có mật khẩu trống. Trên thực tế, đối với mật khẩu trống, chỉ cần nhấp vào biểu tượng người dùng là tất cả những gì cần thiết. Vì vậy, nếu việc gửi tổ hợp phím bằng AppleScript là chấp nhận được, thì có thể "tất cả" còn lại để tìm ra:
Có thể tạm thời xóa mật khẩu của người dùng, để cho phép bắt đầu (hoặc tiếp tục lại) phiên mà không biết mật khẩu đó ...?
Người ta có thể làm cho AppleScript chống lỗi không? Giống:
- Làm thế nào để nói nếu cửa sổ đăng nhập là có thể nhìn thấy? (có
stat -f%Su /dev/console
thể có thể giúp, vì điều đó mang lạiroot
trong khi cửa sổ đăng nhập được hiển thị)
- Làm thế nào để biết đó đăng nhập cửa sổ được hiển thị? (Giống như: một biểu tượng hiển thị và tên đăng nhập hoặc danh sách thả xuống hoặc có thể chỉ là một dấu nhắc mật khẩu nếu ai đó được chọn để chuyển sang một số người dùng cụ thể?)
- Loại bỏ sự chậm trễ.
- Còn thông báo lỗi đó thì sao?
(Lưu ý khi kiểm tra: khi sử dụng Chia sẻ màn hình, có vẻ như cài đặt tùy chọn Khi điều khiển máy tính: Mã hóa mật khẩu và tổ hợp phím chỉ giữ lại kết nối khi cửa sổ đăng nhập được hiển thị hoặc sau khi người dùng đăng nhập thành công. Khi sử dụng Mã hóa tất cả mạng dữ liệu sau đó máy Mac của tôi cần thiết lập lại kết nối Chia sẻ màn hình mỗi khi đăng nhập được hiển thị hoặc người dùng được chuyển đổi.)