在AzureDevOps上进行TF.exe和TfSecurity.exe身份验证

时间:2019-12-17 11:27:48

标签: c# powershell authentication azure-devops

我有一段遗留的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/
不确定该URL如何到达那里或如何获取-但是,可能的是,空用户字段引起了一些怀疑。

我真的想弄清楚在Powershell中执行这些命令(TF和TFSSecurity)时的身份验证流程/过程。 曾经通过AzureDevOps对话框提示我进行身份验证,但是这些提供的凭据存储在哪里?还有多长时间? 我一直在Credential Manager中窥探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 \ 团队资源管理器>

1 个答案:

答案 0 :(得分:1)

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 / user:devenv.exe

输入用户密码,然后输入Team Explorer>管理连接

如果没有任何obove方法可以解决此问题。请检查herehere,以了解更多可能的解决方案。

如果上述问题仍然存在,您还可以向Micrsoft Develop community(报告问题> Azure Devops)报告问题。

对于服务器网址:https://.visualstudio.com/。它是旧版本dev.azure.com domain name。官方文件说它可以照常使用。

更新

  

TFSSecurity的TF30063错误

TFSSecurity的缓存凭据存储在注册表中。您可以删除它。

HKEY_CURRENT_USER\Software\Microsoft\VSCommon\14.0\ClientServices\TokenStorage\VisualStudio\VssApp

在上面的注册表中删除缓存的凭据后。再次运行tfssecurity.exe命令时,它将提示您重新输入凭据。

enter image description here