1

A sealed column was added to my content type which in turn added the field to my list. I was able to remove the column from the content type but now I'm stuck with the field on a few lists.

The column isn't on the display or edit forms but the field can be seen when editing the list view which causes issues because the display name is the same as another item in the list.

I have tried PowerShell PnP and CSOM to try to set the Sealed value to false. The AllowDeletion property is not available on the field. Is there any other way to remove or even hide the field?

My last option would be to change the display name on the field so the users won't add it to a view.

2
  • How was the column added to the content type? Commented Feb 15, 2018 at 23:46
  • I added a calculated column to the site columns and then added it to the content type. I attached the "DueDate" column to the fields instead of the "TaskDueDate" column. I didn't notice 2 different "Due Date" columns when I did the calculation.
    – Cindy
    Commented Feb 16, 2018 at 14:24

3 Answers 3

0

I had the exact same issue. The AllowDeletion property for a Field is not exposed through CSOM. I tried to modify the "SchemaXML" property to set the Sealed property to FALSE (it is a get-set property in CSOM). That did not help either. The csom code to update the schemaxml does not produce any error but the field does not get updated either.

Then I came across this post https://answers.microsoft.com/en-us/msoffice/forum/msoffice_o365admin/set-sealed-property-for-a-site-column-using-csom/7e5dfc0d-5e5a-4fbf-a6a9-6208d2472b6b

Apparently there is a solution but you'll have to contact the Microsoft support. I could not reply to the forum mentioned above. Looks like the thread is closed.

0

To change the display name on the field, navigate to site settings->site columns->choose the sealed column, change the display name, make sure you choose Yes for "update all list columns based on this site column".

enter image description here

You can also use PowerShell to loop through all lists and remove sealed Column from all Lists.

PowerShell to remove a Column from SharePoint List:

http://www.sharepointdiary.com/2016/12/sharepoint-online-remove-column-from-list-using-powershell.html

SharePoint Online: Get All Lists and Libraries using PowerShell CSOM:

http://www.sharepointdiary.com/2015/08/sharepoint-online-get-all-lists-using-powershell.html

1
  • 2
    I tried using both the PNP PowerShell and PowerShell CSOM to delete the column. I get a message that the column can't be deleted due to the state of the object.
    – Cindy
    Commented Feb 16, 2018 at 14:21
0

I've added column Active (internal name RoutingEnabled) by mistake to a list. That column is a Sealed by default. I couldn't remove in any way. To fix this I've used PnP PowerShell:

Connect-PnPOnline https://tenant.sharepoint.com/teams/site
$context = Get-PnPContext
$web = $context.web
$list = $web.Lists.GetByTitle("List")
$context.Load($web)
$context.Load($list)
$context.Load($list.Fields)
$context.ExecuteQuery()

$field = $list.Fields.GetByInternalNameOrTitle("RoutingEnabled");
$context.Load($field)
$field.Sealed = $false;
$field.Update();

$context.ExecuteQuery()

This script changes SPField.Sealed to $false. After doing this, you can remove the column from the List Settings page.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.