it-swarm-ko.tech

drush에있는 모든 사용자를 나열하는 방법?

drush를 사용하는 모든 사용자에 대한 정보를 나열하고 싶습니다.

user-information가 있지만 단일 사용자에 대한 정보 만 표시합니다.

다른 해결책이 있습니까?

12
kenorb

최근 샌드 박스 프로젝트가 있습니다 : Drush User List (by John ) Drupal 6 & 7에서 작동해야합니다 ( GitHub 참조).

용법:

drush user-list

다른 해결 방법의 경우 프로세스 대체 구문이 포함 된 다음 명령이 도움이됩니다.

drush uinf $(drush sqlq "SELECT GROUP_CONCAT(name) FROM users")

그러나 어떤 경우에는 사용자가 이름에 특수 문자가있을 때 실패 할 수 있습니다.

7
kenorb

Kenorb가 지적했듯이 SQL 쿼리를 통한 해결 방법이 있습니다.

그리고 약간만 변경하면 사용자 이름 대신 "uid"(정수)를 사용하여 이름의 특수 문자에보다 강력 해집니다.

drush uinf $(drush sqlq "SELECT GROUP_CONCAT(uid) FROM users")

PS : Drupal 7에 대해서만 확인 됨).
PPS : 다른 답변을 추가하여 죄송합니다. 아직 댓글을 달 수 없습니다.

5
El Hannes

Drupal 8의 경우 다음 명령을 실행할 수 있습니다.

drush uinf $(drush sqlq "SELECT GROUP_CONCAT(name) FROM users_field_data")

출력은 다음과 같습니다.

 User ID       :  1
 User name     :  admin
 User mail     :  [email protected]
 User roles    :  authenticated
                  administrator
 User status   :  1
5
DrupalFever

Drupal 8의 경우) Packagist의 Drush 9 명령 이 있습니다.

drush users:list

모든 Drupal 사용자를 테이블 형식으로 나열하십시오. drush users:list --help 옵션 필터링.

4
Richard

죄송합니다 ... 별칭이있는 Drupal 8 개의 원격 시스템에 대해이 스크립트를 작성했습니다. 필요한 경우 로컬에 쉽게 적용 할 수 있습니다.

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"
0
Sean