JetBrainのTeamCityの管理者パスワードを回復/リセットする必要があります。
サーバーへの完全なRDPアクセスがあるため、問題はありません。使用してから2か月しか経っていないので、ログインを忘れてしまいました。通常のログインは機能しません。
現時点ではデータベースなしでセットアップされているため、ユーザー名がファイル内のどこかにあることを期待していましたが、これまでのところうまくいきません。
これらのいずれも機能しない場合は、 http://sebastienlachance.com/post/Resetting-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)
これが他の人をも混乱させる場合に。
TeamCityデータディレクトリ($/.BuildServer
ディレクトリはデフォルトで)
以下を試してください:
最初にTeamCityサービスを停止します(インストールされている場合はビルドエージェントも停止します)。次にコンソールを開き、Javaディレクトリに移動し、そこから次のコマンドを実行します。
Java.exe -cp server.jar; hsqldb.jar ChangePassword USERNAME PASSWORD "PATH_TO_YOUR_TEAMCITY_INSTALLATION".BuildServer
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をインストール場所に置き換える必要があります。
具体的には、Windows上のTomcatで実行されているTeamCityの場合、C:\ ProgramData\JetBrains\TeamCityになります。
最後のパラメーターとして指定されたディレクトリは、データディレクトリである必要があります(/logs/teamcity-server.logにあります)
これが正しくない場合、「テーブルが見つかりません」というエラーが表示されます。
TeamCityを実行している場合、「データベースは既に使用されています」というエラーが表示されます。
/logs/teamcity-server.logを検索して、管理者、管理者、またはその他の管理者ユーザー名を作成したかどうかを確認することもできます。
これが私のサーバーにTeamCityをインストールした誰かがC:\ TeamCityではなく、管理者のプロファイルの下にビルドディレクトリを配置した場合に役立ちます。
元の回答から数年後にこの記事にたどり着く可能性のあるすべてのユーザーには、組み込みのスーパーユーザーアカウントがあり、パスワードはチームシティが開始されるたびに再生成され、パスワードはログに記録されます。このスーパーユーザーを使用して、ログインしてパスワードをリセットできます。とても簡単です。
TeamCityは常にデータベースを使用します-明示的に設定していない場合は、 HSQLDBデータベースを使用してデータを内部に保存します 。
外部データベースを使用する場合、ユーザー情報はそのデータベース内に保存されるため、ケースのユーザー情報はHSQLDBシステム内に保存される可能性が高いようです。
データベースをいじってシステムにアクセスできるかもしれませんが、最初にバックアップを取ることをお勧めします。
2番目の提案-JetBrainsのサポート担当者にメールを送信します。私の職場がTeamCity Enterpriseライセンスに飛び付く前でさえ、彼らのサポートは素晴らしかった-迅速、正確、そして有用でした。
これが私のために働いたものです。
サーバーサービスをシャットダウンする
> 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)
最初のポイントは、ログイン画面でユーザー名「TCAdmin」が「administrator」になっているときにログアウトした場合です。 TCAdminは、デフォルトのバージョン5管理ユーザーのフルネームです(私が思うに)。それを管理者に変更してからパスワードを使用すると、問題が解決したと思いました。
リセットの場合... Windows上の他の誰かに役立つ場合XP、私の.BuildServer構成情報は、現在ログインしているユーザーのドキュメントおよび設定フォルダーの下にもありました。上記のSebastienの良い答えの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
MySQLを使用するTeamCity 5(おそらく他のバージョンとRDBMでもテストされていない)を使用すると、SQLを介してパスワードを直接更新できます。
mysql> update users set password = md5("mypass123") where username = "bob";
それでも、そうしない理由がない場合は、他の人が既に言及したCLIバージョンを使用します。
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";
........\jre\bin\Java.exe -cp server.jar; common-api.jar; commons-codec-1.3.jar; util.jar; hsqldb.jar ChangePassword username newpassword c:\。 BuildServer
スーパーユーザーの直接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)
同じ状況で合格し、スーパーユーザーでログインしました。以下の手順に従ってください。
1-パス「XX:\ TeamCity\logs」の「teamcity-server.log」でトークンを取得します。
2-URLのトークンを使用したアクセスとログイン: "/login.html?super=1";
それについての詳細:
ユーザーのパスワードを変更するには:
シャットダウンサーバー
/ 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://(server):(port)/login.html?super=1
すなわち: http:// localhost:92/login.html?super = 1
ログインしたら、いつでも新しいユーザーを作成したり、問題のアカウントのパスワードをリセットしたりできます。