viernes, 27 de noviembre de 2015

Script para saber el tamaño de una carpeta de una biblioteca en SharePoint 2010-2013

 

Esta solicitud me hicieron hace un momento y como no vi un ejemplo en especifico para esto decidi compartirlo con mis amigos lectores.

Los tres parametros que necesitamos son: url del sitio web en cuestion, el nombre de la biblioteca y el nombre de la carpeta.  Como se muestra abajo:

$urlWebSite = “http://hostname/siteurl/sub-siteurl

$nombreLibreria = "Nombre-Libreria"

$nombreCarpeta = "Nombre-Carpeta"

Luego debemos de obtener el objeto SPWeb para encontrar la bilioteca de la siguiente forma:

$web = get-SPWeb $urlWebSite

Una vez que lla obtuvimos el objeto SPWeb que representa el sitio web en SharePoint obtenemos la biblioteca con la colección Folders del objeto SPWeb, como se muestra a continuación:

$folder =  $web.Folders[$nombreLibreria]

Ahora que almacenamos en la variable $folder la bilbioteca en cuestion, necesitamos obtener la carpeta que buscamos a través de la colección SubFolerds del objeto SPFolder, de la siguiente forma:

$subfolder = $folder.SubFolders[$nombreCarpeta]

Con eso tenemos ya la ubicación deseada para iniciar el proceso de lectura de los bytes ocupados en la carpeta y sub carpetas, para ello necesitamos crear un funcion que llamemos de forma recursiva hasta que obtengamos el espacio total ocupado.

[long]$total = 0

$total = GetFolderSize($subfolder)

La función es la siguiente:

function GetFolderSize ($Folder)

{

    [long]$folderSize = 0 

    foreach ($file in $Folder.Files)

    {

        write-host "Nombre documento" $file.Name

        $folderSize += $file.Length;

        write-host "Total en bytes que va acumulando:" $folderSize

    }

    foreach ($fd in $Folder.SubFolders)

    {

        $folderSize += GetFolderSize -Folder $fd

    }

    return $folderSize

}

Lo que nos falta entonces es convertir los bytes en megas, y en gigas es es lo que hacemos a continuación:

$totalInMb = ($total/1024)/1024

$totalInMb = "{0:N2}" -f $totalInMb

$totalInGb = (($total/1024)/1024)/1024

$totalInGb = "{0:N2}" -f $totalInGb

write-host "Tamaño total de la carpeta" $StartWeb "es" $total " Bytes,"

write-host "son " $totalInMb "MB o " $totalInGb "GB"

Y ahora necesitamos indicarle a Windows que libere el recurso en memoria que ocupamos a través del objeto SPWeb la invocar el comando  $web = get-SPWeb $urlWebSite , y lo hacemos de la siguiente forma:

$web.Dispose()

Para poner todo en orden debemo de prepar un contenedor de este script en un archivo con extension .ps1, por ejemplo:

C:\>GetFolderSize.ps1

y debera contener el siguiente orden del código descripto arriba:

<!--- Begin of File –->

function GetFolderSize ($Folder)

{

    [long]$folderSize = 0 

    foreach ($file in $Folder.Files)

    {

        write-host "Nombre documento" $file.Name

        $folderSize += $file.Length;

        write-host "Total en bytes que va acumulando:" $folderSize

    }

    foreach ($fd in $Folder.SubFolders)

    {

        $folderSize += GetFolderSize -Folder $fd

    }

    return $folderSize

}

$urlWebSite = “http://hostname/siteurl/sub-siteurl

$nombreLibreria = "Nombre-Libreria"

$nombreCarpeta = "Nombre-Carpeta"

$web = get-SPWeb $urlWebSite

$folder =  $web.Folders[$nombreLibreria]

$subfolder = $folder.SubFolders[$nombreCarpeta]

$totalInMb = ($total/1024)/1024

$totalInMb = "{0:N2}" -f $totalInMb

$totalInGb = (($total/1024)/1024)/1024

$totalInGb = "{0:N2}" -f $totalInGb

write-host "Tamaño total de la carpeta" $StartWeb "es" $total " Bytes,"

write-host "son " $totalInMb "MB o " $totalInGb "GB"

$web.Dispose()

<!--- End of File –->

Y por ultimo utilizamo el Management Shell for SharePoint para ejecutar el script de la siguiente forma:

c:\>.\GetFolderSize.ps1

Eso es todo amigos.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

martes, 17 de noviembre de 2015

Autenticación Mixta en SharePoint 2013 no se lleva bien con las SharePonit Apps

image

El problema

Recientemente habilitamos para un cliente en Azure un SharePoint Foundatio 2013 con autenticación mixta, Windows y Azure AD.   Pero las apps no respondian adecuadamente, mostrandonos el error típico de las apps cuando no son correctamente configuradas. 

image

Al parecer cuando esta en modo mixto las apps no saben como resolver la autenticación.  Cuando retornabamos al Windows las apps comenzaron a funcionar correctamente.

image

Pensamos que el problema era la autenticación con los usuarios de AD de Azure, aunque nos parecia incorrecta esta apreciación.   Por lo que se nos ocurrió ahislar el problema y en vez de adicionar otro proveedor de autenticación a la aplicación Web existente lo que se nos occurió fue extender la aplicación Web.

Identity Providers dialog box in Azure

La Estrategía y solución

Extender la aplicación Web es una opción de SharePoint que lo que hace es hacer una copia del Web Site del IIS actual en otro Web Site y diferenciarlo por el nuevo nombre de la aplicación Web.  Si deseamos utilizar el puerto http es necesario utilizar un host header diferente.   Por lo que para este ejemplo utilizaremos el nombre extranet.midominio.com  para diferenciarlo de la zona predeterminada de la Aplicación Web, que diremos se llama portal.midominio.com.   Al momento de extenderla le indicamos que el proveedor de autenticación ya no era windows sino el Azure Provider la etiqueta que le pusimos al configurar al autenticación de Azure Active Directory.

Con eso nuestra sorpresa fue que las Apps empezaron a funcionar correctamente.  Ya que teniamos una entrada por autenticación Windows a través del url http://portal.midominio.com y para usuarios del Azure AD la dirección http://extranet.midominio.com

image

Enalces de referencia relacionados al tema:

Usar Active Directory de Microsoft Azure para autenticación de SharePoint 2013

https://technet.microsoft.com/es-es/library/dn635311.aspx

Extender las aplicaciones web basadas en notificaciones en SharePoint 2013

https://technet.microsoft.com/es-es/library/gg276325.aspx

Configuración de un entorno para aplicaciones de SharePoint (SharePoint 2013)

https://technet.microsoft.com/es-es/library/fp161236.aspx

En conclusión hasta hoy podré decir que la recomendación es no utilizar la autenticación mixta en SharePoint adicionando el proveedor de autenticación en la misma Aplicación Web, sino mejor extender la Aplicación Web con el siguiente método de autenticación.

Espero pueda salvarles el dia amigo lector.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

sábado, 14 de noviembre de 2015

Enterese lo nuevo en SharePoint 2016

 

Nacida en la  nueva esta nueva versión nos prometen Cero DownTime, orientado a las necesidades de los usuarios,

Servicio de Búsqueda Hibrida

Permitirá habilitar el contenido mixto o solo para un ambiente Nube o Local.  Esto permitirá que la Aplicación Delve que analiza el trabajo realizado en SharePoint este disponible en una vista cenntralizada desde delve y veas tu trabajo más reciente y frecuente al alcance de una vista en Delve, con contenido mixto en SharePoint On Prem o bien en la nube en Office 365 con SharePoint Online.

MinRoles

Para IT Pros… la instalación nos presenta una variación, la definición del Rol del Servidor el cual instala los bits optimizados para el rol en especifico.

image

El App Laucher de Office 365 estará disponible para SharePoint 2016 permitiendo acceso rápido a las aplicaciones favoritas del usuario.

image

Nuevo centro de cumplimiento para administración del cotenido.  Ahora de forma mas clara y centralizada hay un lugar centralizado donde se puede definir politicas de retención de documentos, colecciones de sitios y plantillas.

 

New SharePoint 2016 Compliance Center

Nueva Interfaz de Usuario para dispositivos Moviles

La idea primaria del equipo de SharePoint es traer SharePoint al usuario final desde los dispositivos móviles, se esta realizando esfuerzos importantes para mejorar esta interfaz y que pueda operase SharePoint de una forma ágil y habitual para el usuario con dispositivos moviles (tabletas, telefonos de cualquier proveedor)

New Collaboration Experience in SharePoint 2016

 

SharePoint user voice

Por ultimo el equipo de Microsoft esta escuchando a los usuarios que les gusta y que no, Que quisieran tener, que quisieran que se mejorará, si quieres aportar abajo te dejo el enlace para hacerlo.

https://sharepoint.uservoice.com/

image

Asi que esperamos el próximo año un producto renovado, mejorado y productivo.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita