我有一段遗留的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 \
团队资源管理器>
答案 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方法可以解决此问题。请检查here和here,以了解更多可能的解决方案。
如果上述问题仍然存在,您还可以向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命令时,它将提示您重新输入凭据。