Como generar SiteMap.xml en SharePoint 2013 usando PowerShell.
Para poder generar el sitemap previamente debemos activar lo siguiente :
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.
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
- Habilitar la opción de anónimo en la Web Application.
- Habilitar la colección de sitio como anónimo.
- Activar la caracterisitca Search Engine Sitemap
- 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
Publicar un comentario