Powershell导出SharePont分类法

Powershell导出SharePont分类法,powershell,sharepoint,taxonomy,Powershell,Sharepoint,Taxonomy,我试图从SharePoint在线网站导出分类法,但在csv文件中打印术语集和术语时遇到问题。我可以打印组标题,但只打印列表中术语集和术语部分的空行。有人能给我指出正确的方向吗 提前谢谢你的帮助 它确实连接到SharePoint网站。代码如下: #Add references to SharePoint client assemblies and authenticate to Office 365 site - required for CSOM Add-Type -Path "C:\Progr

我试图从SharePoint在线网站导出分类法,但在csv文件中打印术语集和术语时遇到问题。我可以打印组标题,但只打印列表中术语集和术语部分的空行。有人能给我指出正确的方向吗

提前谢谢你的帮助

它确实连接到SharePoint网站。代码如下:

#Add references to SharePoint client assemblies and authenticate to Office 365 site - required for CSOM
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Taxonomy.dll"
$Password = Read-Host -Prompt "Please enter your password" -AsSecureString

#Bind to MMS
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($Site)
$Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User,$Password)
$Context.Credentials = $Creds
$MMS = [Microsoft.SharePoint.Client.Taxonomy.TaxonomySession]::GetTaxonomySession($Context)
$Context.Load($MMS)
$Context.ExecuteQuery()

#Retrieve Term Stores
$TermStores = $MMS.TermStores
$Context.Load($TermStores)
$Context.ExecuteQuery()

#Bind to Term Store
$TermStore = $TermStores[0]
$Context.Load($TermStore)
$Context.ExecuteQuery()

#Retrieve Groups
$Groups = $TermStore.Groups
$Context.Load($Groups)
$Context.ExecuteQuery()

#Retrieve TermSets in each group
$csvFileName = "c:\CTSTermSet.csv"
$results = @()
$groupName = @()
$termSetName = @()
$termName = @()

Foreach ($Group in $Groups)
    {
    $Context.Load($Group)
    $Context.ExecuteQuery()
    Write-Host "Group Name:" $Group.Name -ForegroundColor Green
     $details = @{
                       GroupName       = $Group.Name
          }
    $results += New-Object PSObject -Property $details

    $TermSets = $Group.TermSets
    $Context.Load($TermSets)
    $Context.ExecuteQuery()
    Foreach ($TermSet in $TermSets)
        {
        $Context.Load($TermSets)
        $Context.ExecuteQuery()
        Write-Host "Term Set Name:"$TermSet.Name -ForegroundColor Yellow
        Write-Host "Terms:" -ForegroundColor DarkCyan
         $details = @{
                     TermSetName       = $TermSet.Name
            }
         $results += New-Object PSObject -Property $details
         $Terms = $TermSet.Terms
         $Context.Load($Terms)
         $Context.ExecuteQuery()
        Foreach ($Term in $Terms)
            {
             Write-Host "" $Term.Name -ForegroundColor White
             $details = @{
                     Term                    = $Term.Name
                }
             $results += New-Object PSObject -Property $details
           } #End Foreach ($Term in $Terms)
         }  #End Foreach ($TermSet in $TermSets)
    }    #End Foreach ($Grouup in$Group)
    $results | export-csv -NoTypeInformation -Path $csvFileName 

以下PowerShell供您参考

#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Taxonomy.dll"

#Variables for Processing
$AdminURL = "https://crescent-admin.sharepoint.com/"
$ReportOutput="C:\Temp\TermStoreData.csv"

Try {
    #Get Credentials to connect
    $Cred = Get-Credential
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($AdminURL)
    $Ctx.Credentials = $Credentials

     #Array to Hold Result - PSObjects
    $ResultCollection = @()

    #Get the term store
    $TaxonomySession=[Microsoft.SharePoint.Client.Taxonomy.TaxonomySession]::GetTaxonomySession($Ctx)
    $TermStore =$TaxonomySession.GetDefaultSiteCollectionTermStore()
    $Ctx.Load($TaxonomySession)
    $Ctx.Load($TermStore)
    $Ctx.ExecuteQuery()

    #Get all term groups  
    $TermGroups = $TermStore.Groups
    $Ctx.Load($TermGroups)
    $Ctx.ExecuteQuery()

    #Iterate through each term group
    Foreach($Group in $TermGroups)
    {
        #Get all Term sets in the Term group
        $TermSets = $Group.TermSets
        $Ctx.Load($TermSets)
        $Ctx.ExecuteQuery()

        #Iterate through each termset
        Foreach($TermSet in $TermSets)
        {
            #Get all Terms from the term set
            $Terms = $TermSet.Terms
            $Ctx.Load($Terms)
            $Ctx.ExecuteQuery()

            #Iterate through each term
            Foreach($Term in $Terms)
            {
                $TermData = new-object PSObject
                $TermData | Add-member -membertype NoteProperty -name "Group" -Value $Group.Name
                $TermData | Add-member -membertype NoteProperty -name "TermSet" -Value $Termset.Name
                $TermData | Add-member -membertype NoteProperty -name "Term" -Value $Term.Name  
                $ResultCollection += $TermData
            }
        }
    }
    #Export Results to a CSV File
    $ResultCollection | Export-csv $ReportOutput -notypeinformation

    Write-host "Term Store Data Successfully Exported!" -ForegroundColor Green  
}
Catch {
    write-host -f Red "Error Exporting Termstore Data!" $_.Exception.Message
}
参考资料:


如果我是你,我会看看powershellgallery.com上的一些模块,如下图所示:其中包含分类模块。你将如何获得超过两个级别的深度?是否将所有数据从术语库中导出?