c# - AzureDevOps 上的 TF.exe 和 TfSecurity.exe 身份验证
问题描述
我有一段遗留的 c# 代码(控制台应用程序)作为夜间批处理运行,并在 AzureDevOps 上触发 TF.exe 和 TFSSecurity.exe 命令。这些命令由 c# 代码构建,然后通过启动 PowerShell 并执行它们来执行。到目前为止,一切都运行良好,但最近,它开始因tf30063
身份验证错误而失败。
TF30063: You are not authorized to access https://dev.azure.com/
作为我的故障排除的一部分,我选择了一些正在构建的命令,并在交互式 PowerShell 会话中执行它们。
tf permission /recursive $/<tfs_project_name>/ /collection:https://dev.azure.com/<organization_name>/
TFSSecurity /imx adm: /collection:https://dev.azure.com/<organization_name>/
它产生相同的结果 -TF30063: You are not authorized to access https://dev.azure.com/.
登录用户(运行命令的位置)能够通过浏览器访问此 AzureDevOps URL。
再深入一点,我运行了命令:tf settings connections help
它返回了以下输出:
Server Url : https://<organization_name>.visualstudio.com/
User :
我实际上是在这里期待传递的 URL:https
:
//dev.azure.com/
我真的想弄清楚在 Powershell 中执行这些命令(TF 和 TFSSecurity)时的身份验证流程/过程是什么。AzureDevOps 对话框曾经提示我进行身份验证,但是这些提供的凭据存储在哪里?并且持续多久?我一直在凭据管理器中窥探 Windows 凭据,在这里我发现了一些零碎的东西 - 但没有任何结论。
问题:
是否有人知道这两个应用程序(tf.exe 和 TfSecurity.exe)如何处理身份验证和凭据存储?
系统规格:
操作系统:Windows Server 2016
Powershell 版本:5.1.14393.3053
tf.exe 和 TfSecurity.exe 的位置(版本) C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\ Microsoft\TeamFoundation\ 团队资源管理器>
解决方案
tf.exe 引用的缓存凭据可能已损坏。我们不知道是什么导致了这个问题,我们也不能给出解决这个问题的特定方法。您必须尝试以下可能的解决方案来缩小修复范围。
1、
使用 Visual Studio 中的浏览器,查看->其他 Windows->Web 浏览器并导航到https://dev.azure.com/。然后检查是否登录了错误的帐户,如果登录了错误的帐户,请注销并重新登录。
2、
从 VS 的开发人员命令提示符运行以下命令:
tf workspaces /collection:https://dev.azure.com/<organization_name>
3、
转到团队资源管理器 > 管理连接(主页按钮旁边的小插头)> 右键单击项目 > 连接。然后重新输入您的凭据。
4、清除所有缓存
关闭所有 Visual Studio 实例,像您一样删除 %LOCALAPPDATA%.IdentityService。
清除 TFS 缓存 %LOCALAPPDATA%\Microsoft\Team Foundation\7.0\Cache
清除所有浏览器缓存,尤其是存储的密码
5、以另一个用户身份运行Visual Studio:
cd C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE
runas /netonly /用户:devenv.exe
输入用户密码,然后 Team Explorer > Manage Connections
如果上述方法均无法解决此问题。请在此处和此处查看更多可能的解决方案。
如果上述问题仍然存在,您也可以向Micrsoft Develop 社区报告问题(报告问题 > Azure Devops)。
对于服务器 URL:https://.visualstudio.com/。它是旧版本的dev.azure.com 域名。官方文档说可以照常使用。
更新:
TFSSecurity 的 TF30063 错误
TFSSecurity 的缓存凭据存储在注册表中。你可以删除它。
HKEY_CURRENT_USER\Software\Microsoft\VSCommon\14.0\ClientServices\TokenStorage\VisualStudio\VssApp
删除上述注册表中的缓存凭据后。当您再次运行 tfssecurity.exe 命令时,它将提示您重新输入凭据。
推荐阅读
- jupyter - 如何修复'内核似乎已经死了。它会自动重启”由pytorch引起
- r - 检查y轴是否从零开始
- c# - Sorted 为真时 SelectedValue 的问题(组合框)
- java - Bean 验证 @Positive 指令不适用于 Integer @PathVariable
- python - 包装使用 with 的 Python 函数
- bash - 使用 sed 清理输出
- python - 如何将一个变量乘以另一个变量
- ruby-on-rails - Rails 每次重启服务器都需要迁移
- python - Django - 为共享 url 注册自定义值
- c# - V4 相对于 V3 的 BOT 框架优势