Como eliminar un .webpart de SharePoint 2010 que no se borra despues de desinstalar la solución via PowerShell
March 23rd, 2011 by JuanK
Como lo comenté en un artículo anterior una vez se desinstala una solución que contiene un .webpart por alguna razón este .webpart persiste en la Galería de elementos web de SharePoint 2010, para borrarlo hay que utilizar un poco de ‘astucia’ de desarrollador utilizando PowerShell.
He creado este sencillo script de PowerShell el cual con solo indicar el url del sitio y el nombre del .webpart es capaz de encontrarlo y borrarlo.
Para mayor funcionalidad el nombre del .webpart lo he dejado como una cadena de expresiones regulares de tal forma que podamos hacer una selección más fléxible delos .webpart que deseamos remover.
Como todo, no es perfecto, es susceptible de mejora, una primera mejora sería hacerlo independiente del idioma ya que el nombre de la galería esta establecido por defecto en español pero cambia si utilizas la versión en inglés o en otro idioma.
Acá les dejo el script que sin lugar a dudas sacara de apuros a más de uno al rededor de la web.
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.WebPartPages") [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Publishing") $url = Read-Host "Ingrese el nombre del servidor" $wps = Read-Host "Escriba el patrón del webpart" $SPSite = New-Object Microsoft.SharePoint.SPSite($url) $SPWeb = $SPSite.OpenWeb() $WebPartGallery = $SPWeb.Lists["Galería de elementos web"] $gall = $WebPartGallery.Items | select Name $count = $gall.Count $count for ( $i =0; $i -lt $count;$i++) { Write-Host "Actual:" $gall[$i].Name if ($gall[$i].Name -match $wps) { Write-Host "found" $WebPartGallery.Items.Delete($i) $SPWeb.Update() Write-Host "$wp borrado" } } $SPWeb.Dispose()
Un ejemplo de uso para eliminar el .webpart del que hablamos en este artículo “Como instalar una solución (.wsp) de SharePoint 2010 via PowerShell” es
.\borrarWebpart.ps1 GAC Version Location --- ------- -------- True v2.0.50727 C:\Windows\assembly\GAC_MSIL\Microsoft.SharePoint\14.0.0.0__71e9bce111e9429c\Microsoft.SharePo... Ingrese el nombre del servidor: http://localhost Escriba el patrón del webpart: ^TestWeb.*$ 11 Actual: MSContentEditor.dwp Actual: MSPageViewer.dwp Actual: MSImage.dwp Actual: MSMembers.dwp Actual: MSSimpleForm.dwp Actual: MSUserDocs.dwp Actual: MSUserTasks.dwp Actual: MSXml.dwp Actual: MSPictureLibrarySlideshow.webpart Actual: Silverlight.webpart Actual: TestWebPart_VisualWebPart1.webpart found borradoEstoy imaginando muchas sonrrisas en este momento ! XD
- 4 Comentarios »
- Publicado en la categoría 'PowerShell, SharePoint'

Wordpress
4 comentarios to “Como eliminar un .webpart de SharePoint 2010 que no se borra despues de desinstalar la solución via PowerShell ”
April 24th, 2011 at 9:51 pm
[...] Como eliminar un .webpart de SharePoint 2010 que no se borra despues de desinstalar la solució… [...]
November 22nd, 2011 at 8:46 am
Eres un master jedi!!! hace tiempo que tengo unos custom webparts rebeldes que no los podia eliminar de ninguna forma!
Muchas gracias!
March 13th, 2012 at 4:34 pm
hola se ve bien el post quisiera saber como hago para ejecutarlo no entiendo como empezar a ejecuatr el script si lo pudieras poner paso a paso seria mejor para todos los principiantes como yo.
gracias de antemano.
March 13th, 2012 at 4:37 pm
Te recomiendo que revises otros articulos de este blog acerca de powershell, es la mejor forma de aprender.