Es gibt einen oder mehrere Spammer, die ständig Konten auf meiner Website erstellen. Die Konten sind standardmäßig "gesperrt", sodass sie kein Problem darstellen und der Spammer nichts von ihnen erhält.
Trotzdem möchte ich sie alle löschen, ohne 150 Mal auf die Seite / admin / people klicken zu müssen: 50 Konten gleichzeitig kündigen.
Gibt es eine Möglichkeit, alle "gesperrten" Konten in einem Schritt zu kündigen?
Drush scheint mich nur einen nach dem anderen abbrechen zu lassen ...
users
advertising
Jose M Vidal
quelle
quelle
Antworten:
Auf der Leute - Seite ( admin / Personen ), zuerst die blockierten Benutzer auswählen und dann aus der Update - Optionen wählen Sie die ausgewählten Benutzerkonten Abbrechen . (Drupal 7)
Eine andere Möglichkeit ist die Verwendung des Views Bulk Operations- Moduls.
quelle
Das Löschen von Benutzern direkt aus der Datenbank ist keine gute Idee. Entweder durch Drush oder durch direkte Interaktion mit der Datenbank über SQL
DELETE
. Einige Module erstellen beispielsweise Roboterbenutzer, und diese neigen dazu, blockiert zu werden. Das bloße Löschen kann den Betrieb des Moduls beeinträchtigen und sogar zum Ausfall des Moduls führen, sodass verwaiste Daten und unerklärliche Fehlermeldungen zurückbleiben.Wenn Spam - Registrierungen als „blockiert“ Benutzer erscheinen, sind sie blockiert , weil ihre Konten bleiben ungeprüfte (Spammer in der Regel sicher , nie, so dass ihre Konten nie aus dem gesperrten Status Fortschritt).
Ein Projekt mit dem Namen LoginToboggan bietet Ihnen die Möglichkeit, nicht validierte Benutzer in einem vordefinierten Intervall aus dem System zu entfernen. Dies wird sich auch um alle Spammer kümmern, die sich in Zukunft registrieren, ohne dass Schutzmaßnahmen wie CAPTCHA eingeführt werden müssen, die legitime Benutzer davon abhalten, sich anzumelden .
Die Verwendung von LoginToboggan zum Entfernen von Spam-Benutzern in großen Mengen ist viel sicherer und robuster als das Hacken der Datenbank selbst.
Wenn Sie dazu kein Modul installieren möchten, können Sie alternativ die nicht verifizierten Benutzer mit drush und löschen
user_delete()
.quelle
Oder verwenden Sie dieses Modul für das erweiterte Benutzermodul und das Token-Modul und öffnen Sie das Personenmenü in drupal admin. Sehen Sie sich das Menü für die erweiterte Registerkarte an und löschen Sie eine Reihe von Benutzerdatensätzen.
https://www.drupal.org/project/advuser
und
https://www.drupal.org/project/token
quelle
Für Drupal 8 mit Drush unter Linux (mit Bash) können Sie folgende Lösung verwenden:
Dies ist sowohl ziemlich langsam (1 Benutzer / e) als auch sicher. Es funktioniert nicht mit speziellen UTF-8-Zeichennamen und Namen mit Leerzeichen.
quelle
echo 'select name from users_field_data where status=0 and uid!=0' | psql service=pg_drupal -t > userlist
wenn Sie PostgreSQL verwenden.Dies ist, was ich getan habe, ohne zusätzliche Module hinzuzufügen oder ausgefallene Skripte oder Bash-Befehle zu entwickeln. Offensichtlich werde ich dafür eine Menge Hass bekommen, da es darum geht, den Kern vorübergehend zu hacken .
Aber das ist der SCHNELLSTE Weg. Zeitraum.
Keine Sorge, keine Drupal-Haken zu haben. Wenn Sie die Grenzwertzahl auf hoch setzen, kann Ihr SQL Server natürlich abstürzen. Stellen Sie es also entsprechend ein. Ich hatte 10.000 blockierte Benutzer zum Löschen. Ich habe es auf 5000 gesetzt und musste nur Benutzer nur auf 2 Seiten löschen.
quelle
Wenn Sie sicher sind, dass alle gesperrten Konten entfernt werden müssen, können Sie eine Abfrage in phpmyadmin (oder einem MySQL-Administrator Ihrer Wahl) ausführen:
Das sollte alle gesperrten Konten beseitigen und den anonymen Benutzer verlassen. Natürlich möchten Sie auf jeden Fall zuerst Ihre Datenbank sichern. Beachten Sie auch, dass dadurch auch alle Konten entfernt werden, die möglicherweise legitim sind, für die Sie jedoch aus irgendeinem Grund den Status "blockiert" festgelegt haben.
Hinweis: Ich sollte sagen, dass ich viel mehr über 6 als 7 weiß. Wenn sich die Benutzertabelle in Drupal 7 drastisch unterscheidet, ist dies möglicherweise falsch.
quelle
Dies ist meine späte Party-Lösung, wie man dies erledigt, ohne vbo hinzufügen zu müssen. Der Befehl selbst ist wahrscheinlich etwas zerbrechlich und kann unter bestimmten Konfigurationen von MySQL beschädigt werden, aber das Löschen selbst sollte sicher sein.
Für Knoten können Sie entsprechend ändern
Beachten Sie, dass Sie nid / uid im grep-Bereich zusammen mit dem Funktionsaufruf ändern müssen, um die uid / nid-Werte entsprechend abzurufen.
quelle
In Drupal 8 müssen Sie Inhalte für 3 Tabellen löschen.
users_field_data
WHERE uid> = 240DELETE FROM
users_data
WHERE uid> = 240 DELETE FROMusers
WHERE uid> = 240quelle