簡単に言うと、PowerShellでVersionControlServerクラスのQueryWorkspacesメソッドを呼び出して、ワークスペースのリストを取得しようとしています。パラメータにnullを渡しており、ドキュメントによると、ワークスペースのリストが表示されるはずです。
ワークスペースに名前を付けると、正常に機能し、単一のワークスペースが返されますが、ドキュメントには、すべてのワークスペースにnull名を付ける必要があると記載されています。
function Get-Workspace
{
param
(
[Parameter(Mandatory=$true)]
[string]$TeamProjectCollection,
[string]$Owner,
[string]$Computer,
[parameter(ValueFromPipeline=$true)]
[string]$Name
)
begin
{
[Microsoft.TeamFoundation.Client.TfsTeamProjectCollection]$tfsTeamProjectCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($TeamProjectCollection)
[Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer]$versionControlServer = $tfsTeamProjectCollection.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])
}
process
{
Write-Output $versionControlServer.QueryWorkspaces($Name, $Owner, $Computer)
}
}
プロジェクトコレクションの管理者権限で実行しています。