gpt4 book ai didi

powershell - 如何通过Powershell将[Microsoft.TeamFoundation.Client.TeamFoundationServerFactory] ​​::GetServer与凭据一起使用

转载 作者:行者123 更新时间:2023-12-03 00:04:06 33 4
gpt4 key购买 nike

我必须提供哪种凭据才能正常工作

$tfsServer = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($basePath,$credential)

我试过了:
$credential = New-Object System.Management.Automation.PsCredential($user,$password)  


$credential = New-Object System.Net.NetworkCredential($user, $password, $domane)

总是得到
Für "GetServer" und die folgende Argumenteanzahl kann keine Überladung gefunden werden: "2".
Bei Zeile:18 Zeichen:86
+ $tfsServer = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer <<<< ($basePath,$credential)
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodCountCouldNotFindBest

我想用
TeamFoundationServerFactory.GetServer Method (String, ICredentialsProvider)

cf. http://msdn.microsoft.com/en-us/library/bb136201%28v=vs.80%29.aspx

背景是,我想在远程PowerShell session 中调用它,由于某种原因,我不明白
$tfsServer = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($basePath)

产量

“TF30063:您无权访问mytfs \ MccCollection。

最佳答案

以下代码有效:

Add-Type -Path "C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.VersionControl.Client.dll"
Add-Type -Path "C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.WorkItemTracking.Client.dll"
Add-Type -Path "C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.Client.dll"

$Assem = ("Microsoft.TeamFoundation.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")

$Source = @"
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.TeamFoundation.Client;
using System.Net;
public class ConnectByImplementingCredentialsProvider : ICredentialsProvider
{
public ICredentials GetCredentials(Uri uri, ICredentials iCredentials)
{
return new NetworkCredential("myuser", "myPassword", "mydomain");
}

public void NotifyCredentialsAuthenticated(Uri uri)
{
throw new ApplicationException("Unable to authenticate");
}
}
"@

Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp

$basePath = "http://mytfs:8080/tfs/MyCollection"
$tfsServer = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($basePath, (New-Object ConnectByImplementingCredentialsProvider) )
$tfsServer.EnsureAuthenticated()

首次执行时, $tfsServer.EnsureAuthenticated()会引发错误,但之后将对其进行身份验证。

关于powershell - 如何通过Powershell将[Microsoft.TeamFoundation.Client.TeamFoundationServerFactory] ​​::GetServer与凭据一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11864682/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com