# 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
}
}
Comments