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?
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).
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.
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
Für Drupal 8 gibt es einen Drush 9-Befehl auf Packagist , z
drush users:list
Listen Sie alle Drupal-Benutzer in einem Tabellenformat auf. Siehe
drush users:list --help
für Filteroptionen.
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"