Hola bloggers, les comparto un script de powershell para SharePoint 2010 que puede ser de mucha ayuda en sus rutinas diarias de administración de sitios. se puede ejecutar usando el ambiente de desarrollo para powershell Integrated Scripting Enviromental (ISE).
Pueden descargarlo aqui
Designed By: Andrés Rojas
Add-PSSnapin microsoft.sharepoint.powershell
[void][System.Reflection.Assembly]::LoadWithPartialName(‘Microsoft.VisualBasic’)
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$var_nameExport = "";
$var_nameExport = [Microsoft.VisualBasic.Interaction]::InputBox(“Aplicación web desde donde se va a exportar”, “Migración de sitios web”)
if ($var_nameExport.length -ne 0)
{
$resultadoExport = [System.Windows.Forms.MessageBox]::Show($var_nameExport, "Valor Ingresado de la coleccion a exportar",[Windows.Forms.MessageBoxButtons]::OKCANCEL,[Windows.Forms.MessageBoxIcon]::Information)
if ($resultadoExport -eq "OK")
{
write-host "Resultado de Messagebox export:" $resultadoExport;
$appwebtoexport = $var_nameExport + "/";
$appwebtoexport;
$var_nameImport = "";
$var_nameImport = [Microsoft.VisualBasic.Interaction]::InputBox(“Aplicación web a donde va a importar”, “Migración de sitios web”)
if ($var_nameImport.length -ne 0)
{
$resultadoImport = [System.Windows.Forms.MessageBox]::Show($var_nameImport, "Valor Ingresado de la coleccion a importar",[Windows.Forms.MessageBoxButtons]::OKCANCEL,[Windows.Forms.MessageBoxIcon]::Information)
if ($resultadoImport -eq "OK")
{
write-host "Resultado de Messagebox import:" $resultadoImport;
$appwebtoimport = $var_nameImport + "/";
$appwebtoimport;
$var_nameFile = "";
$var_nameFile = [Microsoft.VisualBasic.Interaction]::InputBox(“Ruta donde se almacenarán los archivos .bak”, “Migración de sitios web”)
if ($var_nameFile.length -ne 0)
{
$resultadoPath = [System.Windows.Forms.MessageBox]::Show($var_nameFile, "Valor Ingresado de la Ruta",[Windows.Forms.MessageBoxButtons]::OKCANCEL,[Windows.Forms.MessageBoxIcon]::Information)
if ($resultadoPath -eq "OK")
{
write-host "Resultado de Messagebox path:" $resultadoPath;
$pathfile = $var_nameFile + "\";
$pathfile;
$sitios = get-spsite $appwebtoexport | get-spweb -limit all
foreach ($subsitio in $sitios){
if ($subsitio.title -eq "PWA Hosting")
{
write-host "es el root, no se toma en cuenta para la exportacion, creacion e importacion de sitios";
}
else
{
$pathfullfile = $pathfile + $subsitio.name + ".bak"
#exporta los sitios de la coleccion de sitios inicial
$exportarsitio = export-spweb $subsitio.url -path $pathfullfile
write-host "Sitio web exportado:";
$subsitio.url;
#write-host "Ruta Archivo:" $pathfullfile;
#crea los sitios en la nueva coleccion de sitios con la plantilla PWS#0
$parametro = $appwebtoimport + $subsitio.name;
New-SPWeb $parametro -Template "PWS#0" -Language 3082 -Name $subsitio.name
write-host "Sitio web creado:";
$parametro;
#write-host "Donde importar:" $appwebtoimport $subsitio.name
#exporta los sitios de la coleccion de sitios final
$parametro2 = $appwebtoimport + $subsitio.name;
Import-SPWeb $parametro2 -Path $pathfullfile
write-host "Sitio web importado:";
$appwebtoimport + $subsitio.name;
write-host "De la ruta:";
$pathfullfile;
#write-host "Importacion:" $appwebtoimport $subsitio.name " - " $pathfullfile
}
}
}
}
else
{
[System.Windows.Forms.MessageBox]::Show("Debe ingresar un valor de la ruta donde quedarán los documentos exportados en .bak", "Valor Ingresado Errado",[Windows.Forms.MessageBoxButtons]::OK,[Windows.Forms.MessageBoxIcon]::Error)
}
}
}
else
{
[System.Windows.Forms.MessageBox]::Show("Debe ingresar un valor para la coleccion a donde va aimportar", "Valor Ingresado Errado",[Windows.Forms.MessageBoxButtons]::OK,[Windows.Forms.MessageBoxIcon]::Error)
}
}
}
else
{
[System.Windows.Forms.MessageBox]::Show("Debe ingresar un valor para la coleccion de sitios a exportar", "Valor Ingresado Errado",[Windows.Forms.MessageBoxButtons]::OK,[Windows.Forms.MessageBoxIcon]::Error)
}
3 comentarios:
Pero luego que hago con los archivos .bak guardados en la ruta especificada. Tengo que restaurarlos? como?
Hola, los .bak se importan directamente a la aplicación web.. una vez terminado el script, todo queda restaurado.
Esta parte del script hace la importación:
$parametro2 = $appwebtoimport + $subsitio.name;
Import-SPWeb $parametro2 -Path $pathfullfile
write-host "Sitio web importado:";
$appwebtoimport + $subsitio.name;
write-host "De la ruta:";
$pathfullfile;
#write-host "Importacion:" $appwebtoimport $subsitio.name " - " $pathfullfile
slds,
Andres Rojas
Buenas,
Tengo un sitio de SharePoint 2013, está constituido por un sitio principal con su propio home de noticias, y cinco subsitios mas, cada uno de ellos con su propio home de noticias. Consulta, como puedo hacer para que cada noticia que publiquen en los subsitios se repliquen en el sitio de noticias del home principal.
Publicar un comentario