2

如何使用 Drush 删除所有被阻止的用户?我有数百个被垃圾邮件发送者阻止的用户。我想删除所有这些用户。我尝试通过 Web 界面进行操作,但这一次仅适用于大约 20 个用户。我有 60 页要删除,这需要太长时间且不可持续。另外,我希望在删除被阻止的用户时运行所有相关的回调,并且我希望删除其所有内容。我注意到了user-cancel,但这似乎只适用于单个用户。有没有办法让这个命令适用于所有被阻止的用户?

4

3 回答 3

4

使用 Drupal 7 和 Drush 5.9,我的做法是:

1- 为您的本地 Drupal 安装创建一个别名“@example-local”,如此处所示。

2-使用以下代码创建一个名为“delete-blocked-users.script”的脚本文件,例如“/Users/username/scripts/drush”:

#!/usr/bin/env drush

$users = db_query("SELECT * FROM {users} WHERE (status = 0)");
foreach ($users as $user) {
  exec("drush @example-local user-cancel $user->name -y");
}

3-使脚本文件可执行:

chmod +x ~/scripts/drush/delete-blocked-users.script 

4-最后,使用以下命令运行脚本:

drush @example-local scr ~/scripts/drush/delete-blocked-users.script 

这将删除所有被阻止的用户(状态 = 0 的用户),而不要求确认(由 -y 标志定义)。

于 2013-08-10T02:23:24.400 回答
2

Drush 没有删除所有被阻止帐户的简单命令。在您的管理界面中设置一个vbo视图可能会更容易,让您可以过滤被阻止的用户,然后您可以选择全部并取消。

您还可以使用drush php-script script.php.

因此,您可以设置一个 php 脚本来查询被阻止的用户,然后遍历用户并调用用户取消功能。

于 2013-02-15T16:22:09.660 回答
-2

除了 drush,使用用户、密码和数据库名称更容易访问 mysql 数据,您可以在文件 drupalhomedir/sites/default/setting.php 中使用以下命令找到:

mysql -u username-at-setting -ppassword-at-setting database-at-setting

然后删除drupal“用户”表上的所有记录:

DELETE FROM user WHERE status=0;
于 2014-06-06T13:16:21.360 回答