An object in the SharePoint administrative framework, ‘SPSolutionLanguagePack Name=0’, depends on other objects which do not exist


Hello everyone,

Today I’ll talk about an error message which may occurs when you run PowerShell queries.

« An object in the SharePoint administrative framework, “SPSolutionLanguagePack Name=0”, depends on other objects which do not exist. Ensure that all of the objects dependencies are created and retry this operation.”

Some post suggest editing the file cache.ini within the timer service or to run an “IISRESET.” Before doing this, try to launch again your PowerShell command prompt and retry your command. If it has been active for a long time it may be that some connection are closed and this may result in this kind of error.

Hope this helps.


Disable column content edition


Hello everyone,

Today I will talk about a sometimes requested feature : prevent change a field in a SharePoint list in edit mode.

If prevent the display of a field in the edit mode of a list can be easily done via PowerShell, do not forget that users can go through the “Quick Edit” mode of the list and bypass this configuration.

To completely prohibit the modification of a field after the creation of the item, you have to go through these two steps: Do not display the field in edit mode field and disable the DataGrid view.

If the second part can be done via the “List settings” menu of the list, the first requires a little development (PowerShell script or Visual Studio Development).

PowerShell is faster to set up, so here is the script to perform those two actions:

Add-PSSnapin Microsoft.SharePoint.PowerShell –erroraction SilentlyContinue

$siteUrl=”Site url”

$ListUrl=”List relative url”

$columnName =”Column Name”

$web = Get-SPWeb -Identity “$siteUrl”

$list = $web.GetList($web.Url + $ListUrl)







Hope this helps


Set Continuous Crawl Interval


Hello everyone,

Today I’ll talk about the configuration of the continuous crawl.

For those who do not know, the continuous crawl is a new feature of SharePoint 2013 that allows you to crawl new content “continuously”.

It is configurable in the “Content Source” where you have to choose between “Enable Continuous Crawls” and “Enable Incremental Crawls“.

Be honest, this is not true continuous but is not far from being. the default job is run every 15 minutes. Note that this job will start in parallel, it is not expected the end of the previous job to start.

If you want to change this interval, you must go through the following PowerShell command (replacing 1 by the desired number of minutes)

Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue

$ssa = Get-SPEnterpriseSearchServiceApplication





Note: “GetProperty” are not necessary, they will allow you to view the current value before and after modification.

Attention: Please note however, the crawl takes resources and could have an impact on your performance (in case of very large volume of data). Use with caution!


Hope this helps!


Remove orphaned feature


Hello everyone,

Today I’m going to talk about a problem that can happen in a development phase.

When you test your solutions, you may find yourself confronted with this kind of error when deploying:

Sorry, something went wrong

A feature with ID 15/{GUID} has already been installed in this farm. Use the force attribute to explicitly re-install the feature.

First of all, you can delete the feature using this PowerShell command

$feature = Get-SPFeature | ? { $_.Id -eq “{GUID}” }


If you want to do some prevention, you can also run this one which will display all the orphaned feature (meaning they was rectracted unproperly and prevent you for active them again during deployment)

Get-SPFeature | ? { $_.Scope -eq $null }

The tips to display orphaned feature comes from this post: thanks to the author!

Hope this helps.



Assembly not updated when working with Windows PowerShell ISE


Hello everyone,

Today I will talk about a problem I encountered when using PowerShell. I was testing events handlers by making updates via PowerShell when I realized that the corrections that I brought to my code weren’t updated!

Example, I did a test on the contents of a field, I changed it in the source code, deployed my update but when I attacked with my script, it was always the first version of the code that was returned!

In fact I realized that using my script via Windows PowerShell ISE does not take my updated source code while I don’t restart the ISE application!

Maybe it keeps a cached copy?

Hope this helps !


Export Term Set to CSV File


Hello everyone,

Today, I’ll do a little advertising for PowerShell script that I found very useful. This script allows you to export a Term Set in a csv file. Very useful to migrate the contents of term store from one environment to another!

You can find this script here:

As a reminder, to import a csv file, just go in the term store, click on the arrow at a group level and click “Import Term Set”.

Hope this helps!


Items bulk deletion


Hello everyone,

Today I will talk about the massive removal of elements in SharePoint. Several possibilities exist, but the faster is the use of a batch via PowerShell.

You can find several websites / blogs on “how to create the batch” but for those I tested, I’ve always had a little something to change.

Sample sites :

(by the way, thank you to all authors for their help in understanding the operation !)

In fact it is usually in the parameter “owsfileref” that divergent versions. Some do not specify, some  yes but other ways.

For me, here is the code that I use and that works for library documents and custom list.

Warning! Pay attention to the line


You can see that the values ​​1.0 and UTF-8 are not quoted with a simple  but with `”. I do not know why but the simple  raises an error « Exception calling « ProcessBatchData » with « 1 » argument(s) » when running the script!

Add-PSSnapin "Microsoft.SharePoint.PowerShell"

$urlSite = “http://serverurl”

$listname = “Test”

write-host "Opening site..."

$web=get-spweb $urlSite

write-host "Opening list..."

$list=$web.lists | ? { $_.title -eq $listName}

$spQuery= New-Object Microsoft.SharePoint.SPQuery


$spQuery.RowLimit = 2000

$caml = ""




$listItems = $list.GetItems($spQuery)


$spQuery.ListItemCollectionPosition= $listItems.ListItemCollectionPosition



for($j=0;$j -lt $count; $j++)










if($i -ge $count){break}



write-host "Sending batch..."


write-host "Emptying Recycle Bin..."



while($spQuery.ListItemCollectionPosition -ne $null)


write-host "Process finished"

Hope this helps.