Câu trả lời:
Có dự án hộp cát gần đây: Danh sách người dùng Drush (của John ) sẽ hoạt động cho Drupal 6 & 7 (xem GitHub ).
Sử dụng:
drush user-list
Đối với cách giải quyết khác, lệnh sau với cú pháp thay thế quy trình sẽ giúp:
drush uinf $(drush sqlq "SELECT GROUP_CONCAT(name) FROM users")
Tuy nhiên, nó có thể thất bại trong một số trường hợp (khi người dùng có một số ký tự đặc biệt trong tên của họ).
Như kenorb đã chỉ ra, có một cách giải quyết thông qua truy vấn SQL.
Và với một thay đổi nhỏ, nó trở nên mạnh mẽ hơn đối với các ký tự đặc biệt trong tên - bằng cách sử dụng "uid" (số nguyên) thay vì tên người dùng:
drush uinf $(drush sqlq "SELECT GROUP_CONCAT(uid) FROM users")
PS: Xác nhận chỉ dành cho Drupal 7.
PPS: Xin lỗi vì đã thêm câu trả lời khác, tôi chưa thể bình luận.
Đối với Drupal 8, có một lệnh Drush 9 trên Packagist , vd
drush users:list
Liệt kê tất cả người dùng Drupal theo định dạng bảng. Xem
drush users:list --help
để biết các tùy chọn lọc.
Xin lỗi ... đã viết kịch bản này cho Drupal 8 máy từ xa có bí danh; dễ dàng thích nghi với địa phương nếu cần thiết.
if [ $# -lt 1 ]
then
echo "Usage : $0 sitealias [all/disabled/enabled] [rolename]"
echo "Note: this only runs on Drupal 8 schema"
exit
fi
ARG1=$1
ARG2=${2:-all}
ARG3=${3:-nothing}
if [ "$ARG3" != "nothing" ]
then
ROLEWHERE='AND user__roles.roles_target_id="'$ARG3'"'
fi
case "$ARG2" in
enabled)
WHERECLAUSE='WHERE users_field_data.status="1" '$ROLEWHERE
;;
disabled)
WHERECLAUSE='WHERE users_field_data.status="0" '$ROLEWHERE
;;
all)
WHERECLAUSE='WHERE users_field_data.status LIKE "%" '$ROLEWHERE
;;
*)
WHERECLAUSE=''
;;
esac
QUERY='SELECT users_field_data.uid,users_field_data.name,users_field_data.mail,from_unixtime(users_field_data.login) AS "lastlogin",user__roles.roles_target_id,users_field_data.status FROM users_field_data LEFT JOIN user__roles ON users_field_data.uid = user__roles.entity_id '$WHERECLAUSE
drush $1 sqlq "$QUERY"