我的代码需要帮助。 我首先尝试在SharePoint 2013中创建一个新的wiki页面,并且完美运行。 现在我正在尝试删除一个wiki页面,但效果不佳。
我的代码:
Add-Type –Path "C:\Users\Benutzername\AppData\Local\Apps\OfficeDevPnP.PowerShell.V15.Commands\Modules\OfficeDevPnP.PowerShell.V15.Commands\Microsoft.SharePoint.Client.dll"
Add-Type –Path "C:\Users\Benutzername\AppData\Local\Apps\OfficeDevPnP.PowerShell.V15.Commands\Modules\OfficeDevPnP.PowerShell.V15.Commands\Microsoft.SharePoint.Client.Runtime.dll"
Function Delete-WikiPage ([Microsoft.SharePoint.Client.ClientContext]$Context, [string]$WikiLibraryTitle,[string]$PageName)
{
$wikiLibrary = $context.Web.Lists.GetByTitle($wikiLibraryTitle)
$context.Load($wikiLibrary.RootFolder.Files)
$context.ExecuteQuery()
$wikiPage = $wikiLibrary.RootFolder.Files | Where {$_.Name -eq $pageName}
$context.Load($wikiPage)
$context.DeleteObject()
}
$Url = "hhtps://sharepoint.com"
$context = New-Object Microsoft.SharePoint.Client.ClientContext($Url)
$pageName = "Testlauf.aspx"
Delete-WikiPage -Context $context -WikiLibraryTitle "Testwiki" -PageName $pageName
我收到有关DeleteObject()方法的错误消息,但我没有找到任何可以解决的问题:
Error when calling the method [Microsoft.SharePoint.Client.ClientContext] no method found with the name "DeleteObject".
In C:\Users\Benutzername\Desktop\Projektarbeit_Wiki\PowerShell\Delete_WikiPage.ps1:12 Zeichen:5
+ $context.DeleteObject()
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
我只能使用Add-Types中的方法。任何人都可以帮我这个吗?
答案 0 :(得分:0)
您在PowerShell中使用CSOM。 (您加载CSOM DLL)。 所以你应该用SharPoint CSOM搜索信息。
要回答您的问题,请在对象上使用: DeleteObject():上下文。 Context对象上不存在此方法。但是文件中存在这种方法。
你应该尝试类似的东西:$wikiPage = $wikiLibrary.RootFolder.Files | Where {$_.Name -eq $pageName}
$context.Load($wikiPage)
$context.ExecuteQuery() //Get the item, but not sure this is needed
$wikiPage.DeleteObject()
$context.ExecuteQuery()
个人注意: 您应该使用CAML查询来检索您的WikiPage,而不是:$ wikiPage = $ wikiLibrary.RootFolder.Files |其中{$ _。名称-eq $ pageName} 使用此类查询时,您的性能会有不佳,您可以提高例外列表阈值