# taken from: http://troyvssharepoint.blogspot.com/2012/08/faking-spcontext-in-powershell.html function Ensure-HttpContext([string]$url) { $sw = New-Object System.IO.StringWriter $resp = New-Object System.Web.HttpResponse $sw $req = New-Object System.Web.HttpRequest "", $url, "" $htc = New-Object System.Web.HttpContext $req, $resp [System.Web.HttpContext]::Current = $htc } function Ensure-SPContext([string]$url) { Ensure-HttpContext $url if(![System.Web.HttpContext]::Current.Items["HttpHandlerSPWeb"] -or ![System.Web.HttpContext]::Current.Items["HttpHandlerSPSite"]) { [Microsoft.SharePoint.SPWeb]$web = Get-SPWeb $url [System.Web.HttpContext]::Current.Items["HttpHandlerSPWeb"] = $web [System.Web.HttpContext]::Current.Items["HttpHandlerSPSite"] = $web.Site } }