当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:使用 PowerShell 获取/设置选择字段值

作者:精品下载站 日期:2024-12-14 15:04:24 浏览:14 分类:玩电脑

SharePoint Online:使用 PowerShell 获取/设置选择字段值


要求:使用 PowerShell 在 SharePoint Online 中获取/设置选择字段值。

[玩转系统] SharePoint Online:使用 PowerShell 获取/设置选择字段值

PowerShell 从 SharePoint Online 中的列表项获取选择字段值:

本博客文章将探讨如何使用 PowerShell 获取或设置 SharePoint Online 中选择字段的值。我们将介绍如何使用 PowerShell 连接到 SharePoint Online,然后查看一些可用于检索或更新列表项选择列的值的代码示例。

以下是用于读取 SharePoint Online 中的选择列值的 PowerShell 脚本:


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

#Parameters
$SiteURL = "https://Crescent.sharepoint.com"
$ListName ="Projects"
$FieldName = "Project_x0020_Status" #Internal Name of the Field
$ItemID = 10

#Get credentials to connect
$Cred = Get-Credential

Try {
    #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 Item
    $List = $Ctx.Web.Lists.GetByTitle($ListName)
    $ListItem = $List.GetItemById($ItemID)
    $Ctx.Load($ListItem)
    $Ctx.ExecuteQuery()

    #Get the value of Choice Field
    Write-Host $ListItem[$FieldName]
    }
Catch {
    write-host -f Red "Error:" $_.Exception.Message
}

使用 CSOM PowerShell 获取多项选择列值

要从允许接受多个选择的 Choice 列中检索值,请使用以下 PowerShell 脚本:


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

#Parameters
$SiteURL = "https://crescent.sharepoint.com"
$ListName ="Projects"
$FieldName = "Category"
$ItemID = 10

#Get credentials to connect
$Cred = Get-Credential

Try {
    #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 Item to update
    $List = $Ctx.Web.Lists.GetByTitle($ListName)
    $ListItem = $List.GetItemById($ItemID)
    $Ctx.Load($ListItem)
    $Ctx.ExecuteQuery()

    #Get Multiple Choices Field Value from the List Item
    $FieldValues = $ListItem[$FieldName]

    #Print Each Value Selected
    ForEach($Value in $FieldValues)
    {
        Write-host $Value
    }
    }
Catch {
    write-host -f Red "Error:" $_.Exception.Message
}

使用 PowerShell 在 SharePoint Online 中设置选择字段值

以下是用于更新列表项的选择字段值的 PowerShell:


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

#Parameters
$SiteURL = "https://crescent.sharepoint.com"
$ListName ="Projects"
$FieldName = "Project_x0020_Status"
$ItemID = 10

#Get credentials to connect
$Cred = Get-Credential

Try {
    #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 Item to update
    $List = $Ctx.Web.Lists.GetByTitle($ListName)
    $ListItem = $List.GetItemById($ItemID)
    $Ctx.Load($ListItem)
    $Ctx.ExecuteQuery()

    #Update the value of Choice Field in the List Item
    $ListItem[$FieldName] = "Active"
    $ListItem.Update()
    $Ctx.ExecuteQuery()
    Write-host -f Green "Choice Field Value has been updated for the list Item!"
    }
Catch {
    write-host -f Red "Error:" $_.Exception.Message
}

用于更新多项选择字段值的 CSOM PowerShell 脚本

同样,要设置允许多项选择的 Choice 字段的值,请使用以下 PowerShell:


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

#Parameters
$SiteURL = "https://crescent.sharepoint.com"
$ListName ="Projects"
$FieldName = "Category"
$ItemID = 10

#Get credentials to connect
$Cred = Get-Credential

Try {
    #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 Item to update
    $List = $Ctx.Web.Lists.GetByTitle($ListName)
    $ListItem = $List.GetItemById($ItemID)
    $Ctx.Load($ListItem)
    $Ctx.ExecuteQuery()

    #Update the value of Multiple Choices Field in the List Item
    $ListItem[$FieldName] = @("Development", "IT Applications", "Real Estate")
    $ListItem.Update()
    $Ctx.ExecuteQuery()
    Write-host -f Green "Choice Field Value has been updated for the list Item!"
    }
Catch {
    write-host -f Red "Error:" $_.Exception.Message
}

PnP PowerShell 更新选择字段值:

要使用 PnP PowerShell 更新选择字段值,请使用:


#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/PMO"
$ListName = "Projects"
$ItemID = 1

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Update choice column value using PowerShell
Set-PnPListItem -List $ListName -Identity $ItemID -Values @{"Status"= "Completed"}

该脚本将“状态”字段值设置为“已完成”。同样,对于多个选择,用“;#”(分号和#符号)分隔它们。例如。,


Set-PnPListItem -List $ListName -Identity $ItemID -Values @{"Industries"= "Aerospace;#Automation;#Energy"}

包起来

总之,使用 PowerShell 检索或更新 SharePoint Online 中选择字段的值是访问和操作 SharePoint Online 中存储的数据的有效方法。通过使用上面提供的脚本,您可以快速轻松地检索选择字段的值、更改它,并将新值保存在 SharePoint Online 列表项中。

如果要更新选择字段中的可用选项,请使用:PowerShell 更新 SharePoint Online 中选择字段中的选项

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯