Wie liste ich alle Benutzer in drush auf?


12

Ich möchte Informationen über alle Benutzer auflisten, die verwenden drush.

Es gibt user-information, aber es werden nur Informationen über einen einzelnen Benutzer angezeigt.

Gibt es noch andere Lösungen?

Antworten:


7

Es gibt ein aktuelles Sandbox-Projekt: Drush User List (von John ), das für Drupal 6 & 7 funktionieren sollte (siehe GitHub ).

Verwendungszweck:

drush user-list

Für andere Problemumgehungen sollte der folgende Befehl mit Prozesssubstitutionssyntax hilfreich sein:

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

In einigen Fällen kann dies jedoch fehlschlagen (wenn Benutzer einige Sonderzeichen in ihrem Namen haben).


5

Wie Kenorb betonte, gibt es eine Problemumgehung über SQL-Abfrage.

Und mit einer geringfügigen Änderung wird es robuster gegenüber Sonderzeichen in Namen - indem "uid" (Ganzzahl) anstelle der Benutzernamen verwendet wird:

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

PS: Nur für Drupal 7 bestätigt.
PPS: Entschuldigung für das Hinzufügen einer weiteren Antwort, ich kann noch keinen Kommentar abgeben.


5

Für Drupal 8 können Sie den folgenden Befehl ausführen:

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

Die Ausgabe sieht ungefähr so ​​aus:

 User ID       :  1
 User name     :  admin
 User mail     :  info@example.com
 User roles    :  authenticated
                  administrator
 User status   :  1


0

Entschuldigung ... hat dieses Skript für Drupal 8-Remotecomputer mit Aliasnamen geschrieben. bei Bedarf leicht an lokale anpassbar.

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"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.