Como generar SiteMap.xml en SharePoint 2013 usando PowerShell.

Para poder generar el sitemap previamente debemos activar lo siguiente :

  1. Habilitar la opción de anónimo en la Web Application.




  2. Habilitar la colección de sitio como anónimo.




  3. Activar la caracterisitca Search Engine Sitemap




  4. Activar el Search Service Application desde la administración central de SharePoint 

Para generar sitemap.xml de un sitio de SharePoint 2013 usando PowerShell se puede usar este Script  .
#funcion que genera el SiteMap
function New-SPSiteMap
{
    param($SavePath="C:\inetpub\wwwroot\wss\VirtualDirectories\80\SiteMap.xml", $Url="http://srvsharepoint")
    $web=Get-SPWeb $url
    $list = $web.Lists | ForEach-Object -Process {$_.Items}| ForEach-Object -Process {$_.url.Replace(" ","%20")}
    #puedes excluir directorios que no quieras que se incluyan en el sitemap, adiciona lineas:
    $list=  $list | ? {$_ -notmatch "_catalogs"}
    $list=  $list | ? {$_ -notmatch "Reporting%20Templates"}
    $list=  $list | ? {$_ -notmatch "Reporting%20Metadata"}
    $list | New-Xml -RootTag urlset -ItemTag url -ChildItems loc -SavePath $SavePath
}

function New-Xml
{

    param($RootTag="urlset",$ItemTag="url", $ChildItems="*", $SavePath="C:\SiteMap.xml")
    Begin {
        $xml="<?xml version=""1.0"" encoding=""UTF-8""?>
        <urlset xmlns=""http://www.sitemaps.org/schemas/sitemap/0.9"">"
        }
    Process {
        $xml += " <$ItemTag>"
        foreach ($child in $_){
        $Name = $child
        $xml += " <$ChildItems>$url/$child</$ChildItems>"
        }
        $xml += " </$ItemTag>"
        }
    End {
        $xml += "</$RootTag>"
        $xmltext=[xml]$xml
        $xmltext.Save($SavePath)
    }
}
#Desde acá se llama la función se adiciona la Url del Sitio y la ubicación donde se guardará el archivo xml.
New-SPSiteMap –Url http://srvsharepoint –SavePath C:\inetpub\wwwroot\wss\VirtualDirectories\80\sitemap.xml

Como se muestra la imagen a continuación se evidencia la ejecución del script.


Imagen 1. Ejecución de Script


Imagen 2. Archivo xml generado.


Imagen 3. Información del archivo xml generado.

También se puede copiar el script y colocarlo en un archivo .ps1 y ejecutarlo desde PowerShell como sea mas fácil.
Espero que les sea de utilidad.
Atte.
Ademir

Comentarios

Entradas más populares de este blog

Que es un Webpart o Elemento Web en SharePoint?

The type or namespace name ‘SharePoint’ does not exist in the namespace ‘Microsoft’ (are you missing an assembly reference?) – SharePoint 2013 Client Object Model dlls

Extender el periodo de Evalución hasta 240 días en SQL Server y SharePoint Server