I created an external content type in SharePoint 2013 and now I’m trying to read the data from my external list using PowerShell. I am  connecting to a SQL Server Database and I am getting the following error:

An error occurred while enumerating through a collection: The shim execution failed unexpectedly – Could not load file or assembly ‘System.Data.OracleClient, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089′ or one of its dependencies. Either a required impersonation level was not
provided, or the provided impersonation level is invalid. (Exception from HRESULT: 0x80070542)..

Something isn’t right here.

So first I’m loading the SharePoint addins

[code lang=text]
function Load_SPAddin()

{

$ver = $host | select version

if ($ver.Version.Major -gt 1) {$host.Runspace.ThreadOptions = “ReuseThread”}

if ((Get-PSSnapin “Microsoft.SharePoint.PowerShell” -ErrorAction SilentlyContinue) -eq $null)

{

Add-PSSnapin “Microsoft.SharePoint.PowerShell”

}
}

Load_SPAddin
[/code]

Then I’m loading the web, the list and the items

[code lang=text]
$siteUrl = …
$web = Get-SPWeb $siteUrl
$UserList = $web.Lists[“External Users”]

Write-Host “The user list contains” $UserList.Items.Count “items”

$eitems = $UserList.GetItems()
[/code]

The above getItems gives me the above error. until…. I run my PowerShell as Administrator and things are starting to work.

Then I’m walking through all the items

[code lang=text]
foreach ($eitem in $eitems)
{
… some code here …
}
[/code]

And I’m getting another error:

Exception calling “GetItemById” with “1” argument(s): “The shim execution failed unexpectedly – Proxy
creation failed. Default context not found..”

All I have to add to the script before loading the web are the following 2 lines: :

[code lang=text]
$ctx = Get-SPServiceContext $siteUrl
$scope = new-object Microsoft.SharePoint.SPServiceContextScope $ctx
[/code]

And my items are read in without any problem.

By Pieter Veenstra

Business Applications and Office Apps & Services Microsoft MVP working as a Microsoft Productivity Principal Consultant at HybrIT Services. You can contact me using contact@veenstra.me.uk.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: