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

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

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

$web = Get-SPWeb http://intranet.mycomp.co.uk
$UserList = $web.Lists[“External Users”]

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

$eitems = $UserList.GetItems()

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

foreach ($eitem in $eitems)
{
… some code here …
}

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: :

$ctx = Get-SPServiceContext http://intranet.mycomp.co.uk
$scope = new-object Microsoft.SharePoint.SPServiceContextScope $ctx

And my items are read in without any problem.

Advertisements