Weboldal keresés

SharePoint Online: Webhelyoszlop hozzáadása a listához a PowerShell segítségével


Követelmény: Adjon hozzá egy meglévő webhelyoszlopot a SharePoint-listához vagy -tárhoz a PowerShell segítségével.

Hogyan lehet webhelyoszlopot hozzáadni a SharePoint Online listához?

A SharePoint webhelyoszlopai nagyszerű újrafelhasználhatóságot biztosítanak anélkül, hogy ugyanazokat az oszlopokat többször kellene újra létrehozni! Miután létrehoztuk a legfelső szintű webhelyen, felhasználhatjuk őket a metaadatok tárolására a hierarchia alatti tetszőleges számú listában és könyvtárban. Ha webhelyoszlopot szeretne hozzáadni a SharePoint-listához, kövesse az alábbi lépéseket:

  1. Lépjen a Listabeállításokhoz >> Az Oszlopok alatt kattintson a „Hozzáadás a meglévő webhelyoszlopokból” hivatkozásra.
  2. A rendelkezésre álló webhelyoszlopok közül válassza ki a kívánt webhelyoszlopo(ka)t, és kattintson a Hozzáadás gombra.

  3. Kattintson az OK gombra a módosítások mentéséhez.

Adjunk hozzá egy webhelyoszlopot a SharePoint Online listához a PowerShell segítségével.

Webhelyoszlop hozzáadása a listához vagy a könyvtárhoz a PowerShell segítségével:

Ez a PowerShell CSOM-szkript hozzáad egy meglévő „Osztály” webhelyoszlopot a „Projektek” listához.


#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"
 
#Variables
$SiteURL="https://crescent.sharepoint.com/sites/pmo"
$ListName="Projects"
$SiteColumnName="Department"

$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

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

#Get the list
$List=$Ctx.Web.Lists.GetByTitle($ListName)
    
#Get the Site column
$Field = $Web.Fields.GetByTitle($SiteColumnName)

#Add the site column to the list
$List.Fields.Add($Field)
$ctx.ExecuteQuery() 
    
Write-host "Site Column Added to the List Successfully!" -f Green

PowerShell webhelyoszlop hozzáadásához a SharePoint-listához:

Adjunk hozzá néhány hibakezelést a fenti kódhoz a forgatókönyvek kezeléséhez, például:

  • Mi van, ha az adott webhely oszlop nem létezik?
  • Mi a teendő, ha az adott webhelyoszlop már felkerült a listára?
  • Mi van, ha a megadott lista nem létezik? Vagy mi van, ha a megadott hitelesítő adatok érvénytelenek? Stb.

#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"
 
#Parameters
$SiteURL="https://crescent.sharepoint.com"
$ListName="Projects"
$SiteColumnName="Department"

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

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

    #Get the Site column from web
    $SiteColumns = $Web.Fields
    $Ctx.Load($SiteColumns)
    $Ctx.ExecuteQuery()
    $SiteColumn = $SiteColumns | Where {$_.Title -eq $SiteColumnName}
    
    #Check if given site column exists
    if($SiteColumn -eq $Null)
    {
        Write-host "Site Column $SiteColumnName doesn't exists!" -f Yellow
    }
    else
    {
        #Get the list
        $List=$Ctx.Web.Lists.GetByTitle($ListName)

        #Check if the Filed exist in list already
        $Fields = $List.Fields
        $Ctx.Load($List)
        $Ctx.Load($Fields)
        $Ctx.ExecuteQuery() 
        $Field = $Fields | where {$_.Title -eq $SiteColumnName}
        if($Field -ne $NULL)  
        {
            Write-host "Column Name $SiteColumnName already exists in the list!" -f Yellow
        }
        else
        {
            #Add the site column to the list
            $NewColumn = $List.Fields.Add($SiteColumn)
            $ctx.ExecuteQuery() 
    
            Write-host "Site Column Added to the List Successfully!" -f Green
        }
    }
}
Catch {
    write-host -f Red "Error Adding Site Column to List!" $_.Exception.Message
}

Íme egy másik példa:


#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"

#Function to Add Fields to List 
Function Add-SPOSiteColumnToList([Microsoft.SharePoint.Client.List]$List, [GUID]$FieldID)
{
    #Get Fields from List
    $Ctx.Load($List.Fields)
    $Ctx.ExecuteQuery()
    
    #Get the Site Column from Web
    $SiteColumn = $List.ParentWeb.AvailableFields.GetById($FieldID)
    $Ctx.Load($SiteColumn)
    $Ctx.ExecuteQuery()

    #Check if the Field exist in list
    $ListField = $List.Fields | where {$_.ID -eq $SiteColumn.Id}
    if($ListField -eq $NULL)
    {
        #Add the site column to the list
        $NewColumn = $List.Fields.Add($SiteColumn)
        $ctx.ExecuteQuery()
        Write-host "Site Column '$($SiteColumn.Title)' Added to the List Successfully!" -f Green
    }
    else
    {
        Write-host "Site Column '$($SiteColumn.Title)' already exists in the list!" -f Yellow
    }
}
#Set Variables
$SiteURL= "https://crescent.sharepoint.com/sites/Marketing"
$ListName="Team Documents"

#Setup Credentials to connect
$Cred = Get-Credential

#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

#Get the List
$List = $Ctx.Web.Lists.GetByTitle($ListName)
$Ctx.Load($List)
$Ctx.ExecuteQuery()

#Add Rating Fields to List
$AverageRatingFieldID = [guid]"5a14d1ab-1513-48c7-97b3-657a5ba6c742"
$RatingCountFieldID = [guid]"b1996002-9167-45e5-a4df-b2c41c6723c7"

#Call the function to Add Site column to List
Add-SPOSiteColumnToList -List $List -FieldID $AverageRatingFieldID
Add-SPOSiteColumnToList -List $List -FieldID $RatingCountFieldID

PnP PowerShell webhelyoszlop hozzáadása a listához

A következőképpen adhat hozzá webhelyoszlopot a SharePoint Online listához a PnP PowerShell használatával:


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ListName= "Team Projects"
$ColumnName= "ProjectStartDate" #Internal Name

#Get Credentials to connect
$Cred = Get-Credential

Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Credentials $Cred
    
    #Add Existing Site column to list
    Add-PnPField -List $ListName -Field $ColumnName -ErrorAction Stop
    Write-host "Site Column '$ColumnName' Added to List Successfully!" -f Green
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

SharePoint Online PowerShell oszlop hozzáadásához a listához
Ha SharePoint Online PowerShell-t keres egy oszlop hozzáadásához a listához, például „Egyetlen szövegsor” vagy „Választás” stb. használd:

  • SharePoint Online: Egysoros szövegmező hozzáadása a listához a PowerShell segítségével
  • SharePoint Online: Többsoros szövegoszlop hozzáadása a listához a PowerShell segítségével
  • SharePoint Online: Számított oszlop hozzáadása a listához a PowerShell segítségével
  • SharePoint Online: Hiperhivatkozás vagy képoszlop hozzáadása a listához a PowerShell segítségével
  • SharePoint Online: Keresési oszlop hozzáadása a listához a PowerShell segítségével
  • SharePoint Online: Hogyan adhatunk Geolocation (Bing Maps) mezőt a listához a PowerShell segítségével?
  • SharePoint Online: Számoszlop hozzáadása a listához a PowerShell segítségével
  • SharePoint Online: Adjon hozzá választási mezőt a listához a PowerShell segítségével
  • SharePoint Online: Adjon valutaoszlopot a listához a PowerShell segítségével
  • SharePoint Online: Kezelt metaadatoszlop hozzáadása a listához a PowerShell segítségével
  • SharePoint Online: Adja hozzá az „Igen/Nem” jelölőnégyzet oszlopát a listához a PowerShell segítségével
  • SharePoint Online: Személy vagy csoport (Személyválasztó) oszlop hozzáadása a listához a PowerShell segítségével
  • SharePoint Online: Dátum és idő oszlop létrehozása a listában a PowerShell segítségével
  • SharePoint Online: Kezelt metaadatoszlop hozzáadása a listához a PowerShell segítségével

Kapcsolódó cikkek