Compartir a través de


Como generar SiteMap.xml en SharePoint 2013 usando PowerShell. (es-ES)

Para poder generar el sitemap previamente debemos activar lo siguiente :

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

    https://1.bp.blogspot.com/-wqYT6MIFMUw/Vs6KOVrR41I/AAAAAAAAIik/GRLyzM306E0/s1600/Anonimo.png

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

    https://4.bp.blogspot.com/-Xz20YGhFOOI/Vs6KOedwS-I/AAAAAAAAIig/VCA0eXdENgo/s1600/sitioanonimo.png

  3. Activar la caracterisitca Search Engine Sitemap

    https://2.bp.blogspot.com/-Fe1Q-qK3ny8/Vs6KORYAl6I/AAAAAAAAIic/M7Dci25kRyo/s1600/sitemap%2BEngine.png

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

https://1.bp.blogspot.com/-O16ZF-fkGT0/Vs6FYXMfyII/AAAAAAAAIiI/v2SY_6XS1VA/s320/scriptsitemap.png

Imagen 1. Ejecución de Script

https://1.bp.blogspot.com/-L_K1hxeWGPY/Vs6FYfPb16I/AAAAAAAAIiE/EJB84QWjwLc/s320/archivogenerado.png

Imagen 2. Archivo xml generado.

https://4.bp.blogspot.com/-cE5GyKjeezM/Vs6FYbn0IwI/AAAAAAAAIiM/Y5wwXXz_E54/s320/sitemap.png

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