TeamCity忘记了管理员密码-在哪里找?


69

我需要恢复/重置JetBrain的TeamCity的管理员密码。

我对服务器具有完全的RDP访问权限,因此那里没有问题。自从我们使用它已经两个月了,所以现在我忘记了我的登录信息-我通常的登录方式无效。

它目前没有数据库,因此希望用户名位于文件中的某个位置,但到目前为止找不到运气。


谢谢你们的回答。原来有人记住了密码,我们无需采取这些解决方案就可以进入。我已投票赞成所有人。
杰克·乌克丽雅

对于目前最新的TeamCity(第8版)的最好回应是去年,这里是永久- stackoverflow.com/a/18735441/237858
nikib3ro

Answers:


42

如果这些都不起作用,请参见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

6
我需要停止teamcity服务-Ben
Aston

3
一个小技巧,如果Teamcity在Linux上运行,则需要替换所有“;” 到类路径中的“:”。当然,您可以在路径中使用Java,而不必在“ .. \ .. \ .. \ .. \ jre \ bin \ java.exe”中使用Java,并且很可能没有在其中安装Java。
张继峰2012年

2
如果您安装了除“ TeamCity配置目录路径”之外的构建服务器:C:/ Users / <用户名> /。BuildServer,则需要手动将构建服务器路径附加到上述命令行的末尾。对我来说就是:D:\ TeamCity \ App \ webapps \ ROOT \ WEB-INF \ lib> .. \ .. \ .. \ .. \ jre \ bin \ java.exe -cp服务器.jar; common- api.jar; commons-codec-1.3.jar; util.jar; hsqldb.jar ChangePassword用户名newpassword d:\ teamcity \ .BuildServer
Rebecca

就我而言,它是D:\ TeamCity \ Server \ webapps \ ROOT \ WEB-INF \ lib> .. \ .. \ .. \ .. \ jre \ bin \ java.exe -cp ser ver.jar; common- api.jar; commons-codec-1.3.jar; util.jar; hsqldb.jar ChangePassword用户pwd d:\ TeamCity \ ServerConfig
Marty

注意打开了命令提示符作为管理员,当您正在运行的命令和DataDirectory目录可能是C:\ ProgramData \ JetBrains公司\ SYSTEM \ ..我花了一天得到这个权利..所以插话
Ashutosh说雷纳

81

在TeamCity 8中,您可以以超级用户身份登录并以这种方式更改密码。您只需要使用一个空用户名和在logs \ teamcity-server.log文件中找到的最后一次“超级用户身份验证令牌”作为密码。

有关更多信息,请参见以下内容:

  • TeamCity 8- http: //confluence.jetbrains.com/display/TCD8/Super+User
  • TeamCity 9- http: //confluence.jetbrains.com/display/TCD9/Super+User
  • TeamCity 10- https: //confluence.jetbrains.com/display/TCD10/Super+User

7
确保选择了最后一个这样的令牌-日志文件中可能有> 1
Daniel Dyson 2014年

5

对于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)

万一这也使其他人感到困惑。


1
如果与exe一起安装,则可以将配置路径设置为C:/ ProgramData / JetBrains / TeamCity。另请参见这些网页confluence.jetbrains.net/display/TCD65/... confluence.jetbrains.net/display/TCD65/TeamCity+Data+Directory
opticyclic

4

您可以尝试通过删除TeamCity数据目录($/.BuildServer默认为目录)来重置TeamCity的安装。


对于我的情况,这是最简单的一种。在Windows下,默认情况下可以在C:\ Users \ <user> \
FPC

@FPC有趣。我已将您的评论包含在答案中,以提高知名度。
VonC

哎呀,当我结束重新安装以重设密码时,回来删除我的评论……我很抱歉,正处于项目引导程序的中间,直到现在才重新开始正常工作。重复一遍,我现在怀疑上面的方法是否有效,如果@VonC删除他的答复,我将删除它:(
FPC

@FPC好的,我已将答案恢复为原始版本。
VonC

4

超级用户直接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)

3

请尝试以下操作:

首先停止TeamCity服务(如果已安装,还将停止构建代理)。接下来打开控制台,转到您的java目录,然后从那里运行以下命令:

java.exe -cp server.jar; hsqldb.jar ChangePassword USERNAME PASSWORD "PATH_TO_YOUR_TEAMCITY_INSTALLATION".BuildServer

3

我只是不得不经历v5 EAP的痛苦。

我设法通过运行以下命令成功重置了密码:

C:\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 password c:\TeamCity\.BuildServer

尽管无论安装位置在哪里,都需要用C:\ TeamCity代替。


2

如果这对其他人有帮助,则在我的服务器上安装TeamCity的任何人都将构建目录放置在管理员的个人资料下,而不是C:\ TeamCity。


2

专门针对Windows上在Tomcat上运行的TeamCity,它将为C:\ ProgramData \ JetBrains \ TeamCity

指定为最后一个参数的目录必须是您的数据目录(在/logs/teamcity-server.log中找到)

如果没有正确的设置,则会出现“找不到表格”错误。

如果您运行了TeamCity,则会收到“数据库已在使用中”的错误消息。

您还可以搜索/logs/teamcity-server.log来查看是否创建了admin,administrator或其他一些admin用户名。


2

对于像我刚回答原始答案多年后可能到达本文的每个人,都有一个内置的超级用户帐户,每次启动Team city时都会重新生成密码,并且密码在日志中。您可以使用该超级用户登录并重置所有密码。超级容易。

https://confluence.jetbrains.com/display/TCD9/Super+User


1
谢谢,在尝试了其他解决方案之后,这终于让我开始了
user230910 18-4-27

1

TeamCity始终使用数据库-如果尚未显式配置数据库,它将使用HSQLDB数据库在内部存储数据

当使用外部数据库时,用户信息存储在该数据库中,因此您的情况下的用户信息很可能将存储在HSQLDB系统中。

您可以通过浏览数据库来获得对系统的访问权限-但我建议您先进行备份。

第二个建议-向JetBrains的支持人员发送电子邮件。甚至在我的工作场所没有获得TeamCity Enterprise许可之前,他们的支持都是一流的-快速,准确和有用。


1

通过使用MySQL的TeamCity 5(可能还有其他版本和RDBM,但未经测试),可以直接通过SQL更新密码:

mysql> update users set password = md5("mypass123") where username = "bob";

但是,如果没有充分的理由,我会坚持使用其他人已经提到的CLI版本。


在MSSQL和TC 8.0上工作,需要重新启动服务。
Janusz Skonieczny

1

第一点是,如果您要注销,则登录屏幕上已经填写了用户名“ 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

1
  1. 停止团队合作
  2. 您应该将路径传递到buildserver,例如,如果您将构建服务器安装到目录“ c:\。BuildServer”

........ \ jre \ bin \ java.exe -cp server.jar; common-api.jar; commons-codec-1.3.jar; util.jar; hsqldb.jar ChangePassword用户名newpassword c:\。构建服务器


1

这对我有用。

关闭服务器服务

> 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)

1

我们将Teamcity 7与MS SQL Server一起用作RDBMS。

要重置密码,您可以使用以下查询:

UPDATE users SET password = LOWER(SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('md5','your_new_password')),3,32))
 where username = "your_user_name";

0

更改用户密码:

关机服务器

切换到/ 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]



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.