我需要恢复/重置JetBrain的TeamCity的管理员密码。
我对服务器具有完全的RDP访问权限,因此那里没有问题。自从我们使用它已经两个月了,所以现在我忘记了我的登录信息-我通常的登录方式无效。
它目前没有数据库,因此希望用户名位于文件中的某个位置,但到目前为止找不到运气。
我需要恢复/重置JetBrain的TeamCity的管理员密码。
我对服务器具有完全的RDP访问权限,因此那里没有问题。自从我们使用它已经两个月了,所以现在我忘记了我的登录信息-我通常的登录方式无效。
它目前没有数据库,因此希望用户名位于文件中的某个位置,但到目前为止找不到运气。
Answers:
如果这些都不起作用,请参见http://sebastienlachance.com/post/Reset-TeamCity-Password.aspx。
打开命令提示符,然后转到\ webapps \ ROOT \ WEB-INF \ lib文件夹。现在输入以下内容:
..\..\..\..\jre\bin\java.exe -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword username newpassword
在TeamCity 8中,您可以以超级用户身份登录并以这种方式更改密码。您只需要使用一个空用户名和在logs \ teamcity-server.log文件中找到的最后一次“超级用户身份验证令牌”作为密码。
有关更多信息,请参见以下内容:
对于TeamCity 6.5.4
在[TeamCity安装文件夹] \ webapps \ ROOT \ WEB-INF \ lib中的命令提示符下:
..\..\..\..\jre\bin\java -cp server.jar;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin NewPassword
在我的情况下,我的用户名是“ admin”(我想我是在安装过程中设置的,但不确定)。
我省略了TeamCity参数的路径,它足够聪明以使用正确的路径(我的路径是c:\ users \ administrator.BuildServer)
当我提供TeamCity的(错误)路径作为参数时,我收到此消息:
Using TeamCity configuration directory path: c:/TeamCity/.BuildServer
Exception in thread "main" java.sql.SQLException: Table not found in statement [UPDATE users SET PASSWORD = ? WHERE USERNAME = ? AND REALM IS NULL]
at org.hsqldb.jdbc.Util.throwError(Util.java:58)
at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(jdbcPreparedStatement.java:1833)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(jdbcConnection.java:580)
at ChangePassword.main(ChangePassword.java:14)
万一这也使其他人感到困惑。
超级用户直接URL:
http://servername:port/login.html?super=1
打开TeamCity日志文件夹(示例C:驱动器:C:\ TeamCity \ logs):teamcity-server.log,找到密钥:“超级用户身份验证”
[2019-03-04 12:14:30,770] INFO - jetbrains.buildServer.SERVER - Super user authentication token: `8347518935696887114` (use empty username with the token as the password to access the server)
对于像我刚回答原始答案多年后可能到达本文的每个人,都有一个内置的超级用户帐户,每次启动Team city时都会重新生成密码,并且密码在日志中。您可以使用该超级用户登录并重置所有密码。超级容易。
TeamCity始终使用数据库-如果尚未显式配置数据库,它将使用HSQLDB数据库在内部存储数据。
当使用外部数据库时,用户信息存储在该数据库中,因此您的情况下的用户信息很可能将存储在HSQLDB系统中。
您可以通过浏览数据库来获得对系统的访问权限-但我建议您先进行备份。
第二个建议-向JetBrains的支持人员发送电子邮件。甚至在我的工作场所没有获得TeamCity Enterprise许可之前,他们的支持都是一流的-快速,准确和有用。
通过使用MySQL的TeamCity 5(可能还有其他版本和RDBM,但未经测试),可以直接通过SQL更新密码:
mysql> update users set password = md5("mypass123") where username = "bob";
但是,如果没有充分的理由,我会坚持使用其他人已经提到的CLI版本。
第一点是,如果您要注销,则登录屏幕上已经填写了用户名“ TCAdmin”,此时应为“ administrator”。TCAdmin是默认版本5管理员用户的全名(我认为)。将其更改为管理员,然后使用密码,我认为它已解决了我的问题。
重置...如果它对TeamCity版本5的Windows XP上的其他用户有帮助,我的.BuildServer配置信息也位于我当前登录的用户文档和设置文件夹下。同样,在上面塞巴斯蒂安的好答案中,jar文件列表中的空格使我绊倒了。
所以我在命令提示符下更改为该目录:
c:\teamcity\webapps\ROOT\WEB-INF\lib
然后此命令行(设置密码:Password1)对我有用:
C:\TeamCity\webapps\ROOT\WEB-INF\lib>..\..\..\..\jre\bin\java.exe -cp server.jar;commonapi.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword administrator Password1
给出了输出:
Using TeamCity configuration directory path: C:/Documents and Settings/tamw/.BuildServer
Password changed successfuly
这对我有用。
关闭服务器服务
> cd c:\TeamCity\webapps\ROOT\WEB-INF\lib>
然后
> ..\..\..\..\jre\bin\java.exe -cp server.jar ;common-api.jar;commons-codec-1.3.jar;util.jar;hsqldb.jar ChangePassword admin password1 C:\ProgramData\JetBrains\TeamCity\
没有路径的末尾,它将失败并显示:
Exception in thread "main" java.sql.SQLException: Table not found in statement [
UPDATE users SET PASSWORD = ? WHERE USERNAME = ? AND REALM IS NULL]
at org.hsqldb.jdbc.Util.throwError(Util.java:58)
at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(jdbcPreparedStatement.ja
va:1833)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(jdbcConnection.java:5
80)
at ChangePassword.main(ChangePassword.java:14)
更改用户密码:
关机服务器
切换到/ webapps / ROOT / WEB-INF / lib目录
调用以下命令:
Windows平台:java -cp server.jar; common-api.jar; commons-codec-1.3.jar; util.jar; hsqldb.jar ChangePassword
Unix平台:java -cp server.jar:common-api.jar:commons-codec-1.3.jar:util.jar:hsqldb.jar ChangePassword
如果对TeamCity数据文件使用默认路径,则可以跳过该选项:/.BuildServer
[参考:http://confluence.jetbrains.com/display/TCD7/Changing+user+password+with+default+authentication+scheme]
或者,您可以使用TeamCity服务器日志并检索超级用户令牌。
使用令牌访问URL:http://(服务器):(端口)/login.html?super=1
即: http:// localhost:92 / login.html?super = 1
登录后,您始终可以创建新用户或重置相关帐户的密码。
我在相同情况下通过并以超级用户身份登录,请按照以下步骤操作:
1-在路径“ XX:\ TeamCity \ logs”中的“ teamcity-server.log”中获取令牌;
2-使用URL上的令牌访问和登录:“ / login.html?super = 1”;
关于它的更多信息: