如何在 AEM 6.3 中重置管理员密码
了解如何在AEM 6.3中重置管理员密码。必须先停止AEM。
描述 description
环境
Adobe Experience Manager 6.4、6.5
问题/症状
忘记管理员密码,需要重置密码。
解决方法 resolution
按照以下步骤重置密码:
- 在服务器命令提示符下输入以下命令(将路径替换为您的AEM段存储的路径)。 AEM应在运行以下步骤之前停止:
java -jar oak-run-*.jar console path/to/crx-quickstart/repository/segmentstore --read-write ":load admin-reset.groovy" - 输入以下内容:
:load admin-reset63.groovy - 按Enter键,脚本将自动查找管理员密码并将其更改为admin。
- 查看输出,显示:
Found admin node : SegmentNodeBuilder{path=/home/users/some/path} - 启动 AEM。
其他信息
所需项目:
- oak-run jar
admin-reset.groovy脚本(下载/删除.txt或从内容创建)
下载
admin-reset.groovy
import org.apache.jackrabbit.oak.spi.security.user.util.PasswordUtil
import org.apache.jackrabbit.oak.spi.commit.CommitInfo
import org.apache.jackrabbit.oak.spi.commit.EmptyHook
class Global {
static adminNode = null ;
}
void findAdminNode(ub) {
if (ub.hasProperty( "rep:principalName" )) {
if ( "rep:principalName = admin" .equals(ub.getProperty( "rep:principalName" ).toString())) {
Global.adminNode = ub;
}
}
ub.childNodeNames.each { it ->
if (Global.adminNode == null ) {
findAdminNode(ub.getChildNode(it));
}
}
}
ub = session.store.root.builder();
findAdminNode(ub.getChildNode( "home" ).getChildNode( "users" ));
if (Global.adminNode) {
println( "Found admin node: " + Global.adminNode.toString());
Global.adminNode.setProperty( "rep:password" , PasswordUtil.buildPasswordHash( "admin" ));
session.store.merge(ub, EmptyHook.INSTANCE, CommitInfo.EMPTY);
} else {
println( "Could not find admin node." );
}