从列表中删除 ContentType Office 365
Remove ContentType from list Office 365
我想使用 powershell 从 office 365 的列表中删除内容类型。我找到了这段代码,但 $Doclibrary 始终为空。
$lookForList = "Document"
$stringCTRemove = "Your Content type"
$docLibrary = $_.Lists[$lookForList]
if($docLibrary -ne $null)
{
$ctToRemove = $docLibrary.ContentTypes[$stringCTRemove]
write-host "Removing content type" $ctToRemove.Name "from list" $docLibrary.Title
$docLibrary.ContentTypes.Delete($ctToRemove.Id)
$docLibrary.Update()
}
else
{
write-host "The list" $lookForList "does not exist in site" $_.Title
}
}
解决方案:
function removeBannersCT ($web)
{
$listName = "Banners"
$list = $context.Web.Lists.GetByTitle($listName)
$context.Load($list)
$context.ExecuteQuery()
$stringCTRemove = "Picture"
if($list -ne $null)
{
$lcontentTypes = $list.ContentTypes
$context.Load($lcontentTypes)
$context.ExecuteQuery()
foreach($cts in $lcontentTypes)
{
if($cts.Name -eq $stringCTRemove)
{
$list.ContentTypes.GetById($cts.Id).DeleteObject()
$list.Update()
write-host "Content-Type removed"
}
}
}
else
{
write-host "The list" $listName "does not exist in site"
}
}
拜托,你能帮帮我吗?我疯了!
提前致谢。
给你解决方案,
有两种方法,一种是通过内容类型 ID 删除,另一种是通过内容类型名称删除。
function Set-SPORemoveContentTypeByName {
[cmdletbinding()]
param (
[Microsoft.SharePoint.Client.ClientContext]$ctx,
[string]$spList,
[string]$ctName
)
$web = $ctx.Web
$list = $ctx.Web.Lists.GetByTitle($spList)
$cntTypeColl =$list.ContentTypes
$ctx.Load($web)
$ctx.Load($list)
$ctx.Load($cntTypeColl)
$ctx.ExecuteQuery()
foreach($ct in $cntTypeColl)
{
if($ct.Name -eq $ctName)
{
$ct.DeleteObject()
break;
}
}
$ctx.ExecuteQuery()
}
function Set-SPORemoveContentTypeById {
[cmdletbinding()]
param (
[Microsoft.SharePoint.Client.ClientContext]$ctx,
[string]$spList,
[string]$ctId
)
$web = $ctx.Web
$list = $ctx.Web.Lists.GetByTitle($spList)
$cntTypeColl =$list.ContentTypes
$ctx.Load($web)
$ctx.Load($list)
$ctx.Load($cntTypeColl)
$ctx.ExecuteQuery()
write-host "Required Content Type Id :" $ctId
foreach($ct in $cntTypeColl)
{
write-host "Intertaed ID " $ct.Id
if($ct.Id.ToString() -eq $ctId)
{
$ct.DeleteObject()
break;
}
}
$ctx.ExecuteQuery()
}
干杯,
基兰
我想使用 powershell 从 office 365 的列表中删除内容类型。我找到了这段代码,但 $Doclibrary 始终为空。
$lookForList = "Document"
$stringCTRemove = "Your Content type"
$docLibrary = $_.Lists[$lookForList]
if($docLibrary -ne $null)
{
$ctToRemove = $docLibrary.ContentTypes[$stringCTRemove]
write-host "Removing content type" $ctToRemove.Name "from list" $docLibrary.Title
$docLibrary.ContentTypes.Delete($ctToRemove.Id)
$docLibrary.Update()
}
else
{
write-host "The list" $lookForList "does not exist in site" $_.Title
}
}
解决方案:
function removeBannersCT ($web)
{
$listName = "Banners"
$list = $context.Web.Lists.GetByTitle($listName)
$context.Load($list)
$context.ExecuteQuery()
$stringCTRemove = "Picture"
if($list -ne $null)
{
$lcontentTypes = $list.ContentTypes
$context.Load($lcontentTypes)
$context.ExecuteQuery()
foreach($cts in $lcontentTypes)
{
if($cts.Name -eq $stringCTRemove)
{
$list.ContentTypes.GetById($cts.Id).DeleteObject()
$list.Update()
write-host "Content-Type removed"
}
}
}
else
{
write-host "The list" $listName "does not exist in site"
}
}
拜托,你能帮帮我吗?我疯了!
提前致谢。
给你解决方案, 有两种方法,一种是通过内容类型 ID 删除,另一种是通过内容类型名称删除。
function Set-SPORemoveContentTypeByName {
[cmdletbinding()]
param (
[Microsoft.SharePoint.Client.ClientContext]$ctx,
[string]$spList,
[string]$ctName
)
$web = $ctx.Web
$list = $ctx.Web.Lists.GetByTitle($spList)
$cntTypeColl =$list.ContentTypes
$ctx.Load($web)
$ctx.Load($list)
$ctx.Load($cntTypeColl)
$ctx.ExecuteQuery()
foreach($ct in $cntTypeColl)
{
if($ct.Name -eq $ctName)
{
$ct.DeleteObject()
break;
}
}
$ctx.ExecuteQuery()
}
function Set-SPORemoveContentTypeById {
[cmdletbinding()]
param (
[Microsoft.SharePoint.Client.ClientContext]$ctx,
[string]$spList,
[string]$ctId
)
$web = $ctx.Web
$list = $ctx.Web.Lists.GetByTitle($spList)
$cntTypeColl =$list.ContentTypes
$ctx.Load($web)
$ctx.Load($list)
$ctx.Load($cntTypeColl)
$ctx.ExecuteQuery()
write-host "Required Content Type Id :" $ctId
foreach($ct in $cntTypeColl)
{
write-host "Intertaed ID " $ct.Id
if($ct.Id.ToString() -eq $ctId)
{
$ct.DeleteObject()
break;
}
}
$ctx.ExecuteQuery()
}
干杯, 基兰