繁体   English   中英

无法使用 Power shell 创建 SharePoint 在线列表项

[英]Unable to create SharePoint online list items using Power shell

我想在 SharePoint 在线列表中添加列表项,所以我运行以下命令:-

 $SiteUrl = "https://***.sharepoint.com/sites/t"
 $ListName= "Child2"
 Connect-PnPOnline -Url $SiteUrl -UseWebLogin
 $Ctx = Get-PnPContext
    
 #Get the list Item
 $List=$Ctx.Web.Lists.GetByTitle($ListName)
    
 $Import = Import-Csv -Path "C:\CSV\finaldelta3.csv"
    
 for ($counter=0; $counter -lt $Import.Length; $counter++){
    
 $ListItemInfo = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation
 $ListItem = $List.AddItem($ListItemInfo)
    
 #Set Column Values
 $ListItem["Title"] = "Hello World!"
    
 #Apply changes to list
 $ListItem.Update()
 $Ctx.ExecuteQuery()
 }

现在在一个租户上,我不会收到任何错误,但不会创建列表项,而在另一个租户上,我会遇到此异常,并且该项目也不会被创建:-

Cannot convert argument "parameters", with value: "Microsoft.SharePoint.Client.ListItemCreationInformation", for "AddItem" to type "Microsoft.SharePoint.Client.ListItemCreationInformation": "Cannot convert the "Microsoft.SharePoint.Client.ListItemCreationInformation" value类型为“Microsoft.SharePoint.Client.ListItemCreationInformation”以键入“Microsoft.SharePoint.Client.ListItemCreationInformation”。 在第 4 行 char:1 + $ListItem = $List.AddItem($ListItemInfo) +

 + CategoryInfo: NotSpecified: (:) [], MethodException + FullyQualifiedErrorId: MethodArgumentConversionInvalidCastArgument Cannot index into a null array. At line:7 char:1 + $ListItem["Title"] = "Hello World."#$Import[$counter].'Caller Info' #..: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (,) []: RuntimeException + FullyQualifiedErrorId. NullArray You cannot call a method on a null-valued expression: At line:10 char.1 + $ListItem:Update() + ~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (,) []: RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull

所以知道发生了什么吗? 谢谢

您是否尝试过更新您的 SPO 管理 Shell: https://www.microsoft.com/en-in/download/details.aspx?id=35588

和/或 SPO 客户端组件 SDK: https://www.microsoft.com/en-us/download/details.aspx?id=42038

我不确定 PnPOnline 是否需要它,但使用 SPOServices 您还需要加载程序集:

    Add-Type -Path "$Env:ProgramFiles\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
    Add-Type -Path "$Env:ProgramFiles\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
    Add-Type -Path "$Env:ProgramFiles\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" 

或者:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Online.SharePoint.Client.Tenant") | Out-Null

就个人而言,我开始我的脚本

#Requires -Module Microsoft.Online.SharePoint.PowerShell

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM