Office 365: FAQ sobre Grupos!

Una de los usos más potentes de Yammer es el de crear los denominados YamJam…se trata de grupos temáticos en los que las conversaciones tienen lugar en unas fechas determinadas de manera que en esas fechas se habilitan conversaciones en tiempo real entre los integrantes del grupo participando en el YamJam…en este sentido, hace poco he participado en el Groups YamJam destinado a resolver dudas y cuestiones sobre la nueva funcionalidad de grupos…os dejo algunas de las cuestiones allí planteadas:

  • Q: ¿En qué planes de Office 365 se podrá disponer de la funcionalidad de Grupos? En principio, cualquier plan de Office 365 podrá hacer uso de esta capacidad como se indica en el post anuncio de la disponibilidad de los Grupos: http://blogs.office.com/2014/09/25/delivering-first-chapter-groups-office-365/
  • Q: ¿Cuántos grupos se pueden crear en un Tenant de Office 365? Los límites vienen marcados por los grupos que puede crear un usuario: hasta 250 grupos por usuario individual. Además:
    • Cara usuario puede ser miembro de hasta 1024 grupos.
    • Cada grupo puede tener un número ilimitado de miembros, aunque sólo 300 se pueden suscribir.
    • En principio a nivel de tenant no hay un límite como tal en cuanto a número de grupos.
  • Q: ¿Está previsto que usuarios externos puedan participar en Grupos? Sí, está previsto…ahora mismo no está disponible esta capacidad.
  • Q: ¿Se puede deshabilitar la creación de Grupos? Si, por medio de PowerShell. En concreto, el comando PowerShell a ejecutar es Set-OwaMailboxPolicy -Identity test.com\OwaMailboxPolicy-Default -GroupCreationEnabled $false
  • Q: ¿ Habrá soporte de APIs y cmdlets para la funcionalidad de Grupos? Sí habrá cmdlets específicos para trabajar con grupos y se proporcionará una API.
  • Q: ¿Habrá reporting en Grupos? Si, en el futuro
  • Q: ¿Qué limites aplican en el almacenamiento de documentos relativos a un grupo? Los mismos que en bibliotecas de documento de sitios de SharePoint Online: http://office.microsoft.com/en-us/office365-sharepoint-online-enterprise-help/sharepoint-online-software-boundaries-and-limits-HA102694293.aspx

SharePoint: Soluciones de terceros para crear BDs de conocimiento!

Hace poco me preguntaban sobre si había en el mercado alguna solución de terceros que proporcionase funcionalidad de KB (o BDs de Conocimiento) y la respuesta es que algo hay, aunque no mucho. A continuación os dejo el resultado de mis pesquisas:

Para SharePoint 2010 (y con compatibilidad para SharePoint 2013)

Podemos localizar unas 2-3 soluciones disponibles para OnPremises, pero no para Online:

Como veis, no hay mucho y lo peor es que estas soluciones no sirven para SharePoint Online en Office 365…si buscáis tanto en Microsoft PinPoint como en la SharePoint Store, veréis que no hay nada nuevo allí:

SharePoint Online: How to deal with permissions and permissions levels using the Client Side Object Model and PowerShell (I)!

Some days ago, an Office 365 Technical Network member (https://www.yammer.com/itpronetwork/) asked about best practices and recommendations to work with permissions and permissions levels in SharePoint Online using PowerShell. My answer to that question was actually quite straightforward: well, by default in SharePoint Online we have only 30 cmdlets (http://technet.microsoft.com/es-es/library/fp161364(v=office.15).aspx), so you could find some limitations when you want to do some common operations in your SharePoint Online sites using PowerShell. So…does it mean I cannot work with permissions and permissions levels in SharePoint Online using PowerShell? Of course not, additionally to the default cmdlets to work with Groups in SharePoint Online, you have the possibility of using the Client Side Object Model (CSOM) in PowerShell what significantly increases your choices to do really cool things when working with your sites from the comman line tool. Indeed, there is a great post written by Steve Peschka where you can see how to work with permissions and permissions levels using CSOM and PowerShell: http://blogs.technet.com/b/speschka/archive/2009/11/01/using-the-sharepoint-2010-client-object-model-part-5.aspx. If you need additional information about how to use the CSOM in PowrShell, I reccommed you to read the article I have written for CompartiMOSS magazine (www.compartimoss.com, issue # 21) and also to download the following PowerShell Script I have shared in the TechNet Scripts Gallery: How to get all the sites under a SharePoint Online Site Collection

SharePoint Online: Como trabajar con permisos y niveles de permisos con el modelo de objetos en cliente y PowerShell(I)!

El otro día preguntaban en la Office 365 Technical Network sobre una forma de poder trabajar con permisos y niveles de permisos por medio de PowerShell en sitios de SharePoint Online…a lo que yo contesté que por defecto no tenemos todos los comandos PowerShell que podemos para poder obtener esa información de forma directa como bien podéis ver en la siguiente referencia de TechNet: http://technet.microsoft.com/es-es/library/fp161364(v=office.15).aspx. ¿Significa eso que no podemos usar PowerShell para trabajar con permisos y niveles de permisos? Por supuesto que no, porque desde PowerShell podemos hacer uso del modelo de objetos en cliente que contiene todo lo necesario para trabajar con permisos, niveles de permisos, usuarios y roles en un sitio de SharePoint como se explica perfectamente en el siguiente post de Steve Peschka: http://blogs.technet.com/b/speschka/archive/2009/11/01/using-the-sharepoint-2010-client-object-model-part-5.aspx. Si queréis ver como trabajar con el modelo de objetos en cliente por medio de PowerShell, os recomiendo leer el artículo al respecto publicado en el # 21 de CompartiMOSS (www.compartimoss.com)  y descargaros el siguiente script publicado en la Galería de Scripts de TechNet: How to get all the sites under a SharePoint Online Site Collection

Office 365: Como habilitar Delve en nuestro tenant!

Como sabéis, una de las últimas incorporaciones a Office 365 es Delve: The goal for Delve was not just to reimagine search, but to help people get their work done in a quicker, more informed, and even delightful manner. After all, your job isn’t just to “search.” You use search as a tool to get your actual job done. This more ambitious goal drove us to ask how we could remove the information silos that exist across applications, better support information discovery, and enable teams to work together as a network. The result is not just a search solution, but a new way of working – proactive, transformational, and delightful. Delve is the first in a new breed of intelligent and social work experiences.

Después de su presentación oficial en la SharePoint Conference de este año, el pasado 8 de septiembre Microsoft anunció la disponibilidad de Delve indicando que iría llegando progresivamente a los distintos tenant de Office 365 en las semanas siguientes. De echo, nada más conocerse el lanzamiento de Delve rápidamente me lancé a comprobar si ya lo tenía disponible en mi tenant:

  • Efectivamente, el acceso a “Delve” aparecía en la barra de navegación superior.
  • Al hacer clic en el enlace, se mostró “la amable” página de acceso denegado típica de SharePoint 2013…mi gozo en un pozo.
image image
  • A pesar de todo, decidí solicitar acceso pensando en que quizás se me diese acceso a Delve rápidamente…por desgracia no fue así y tras varios días, por fin al cabo de una semana Delve apareció habilitado en mi tenant de Office 365.
  • La primera señal de qué está habilitado es que a nivel de administración de SharePoint Online y en la página “Settings” os encontraréis con una una nueva sección denominada “Office graph” que precisamente es responsable de que el acceso a Delve esté habilitado para los usuarios del tenant.
image image
  • Lógicamente, la siguiente prueba consiste en comprobar que efectivamente tenemos “Delve” operativo…y efectivamente así es. También puede ser que os encontréis conque al principio no está descubriendo mucha actividad en tu red.
  • Sin embargo, si hacéis clic en la sección “My work”, podréis ver como si está recogiendo información relativa a las últimas acciones que hayáis realizado.
image image

SharePoint Online: How many site templates do I have available?

One of the aspects where SharePoint 2013 OnPremises has “some advantage” compared with SharePoint Online is on the number of site templates we have available in each case: SharePoint OnPremise has more site templates than SharePont Online.

  • If you want to know the site templates available in your SharePoint Online tenant, you only need to use the Get-SPOWebTemplate cmdlet. For instance, if you execute the following PowerShell sentences, you will get 16 site templates for SharePoint Online.
   1: $spoWebTemplates=Get-SPOWebTemplate

   2: $spoWebTemplates.Count

   3: $spoWebTemplates

And this is the result obtained when executing the previous PowerShell sentences:

image_thumb

  • In the case of SharePoint 2013 OnPemises, you have the cmdlet Get-SPWebTemplate that allows to list all the site templates available in your farm. Of course, in order to get the right ones for the comparison you will have to do some filtering such as the LocaleID and the CompatibilityLevel. In this case, you will get 60 site templates once you execute the following PowerShell lines.

   1: $spWebTemplates=Get-SPWebTemplate | Where-object {$_.LocaleId -eq 1033 -and $_.CompatibilityLevel -eq 15 }

   2: $spWebTemplates.Count

   3: $spWebTemplates

In this case, the output generated after executing the above PowerShell sentences is the following one:

image_thumb[1]

SharePoint Online: ¿Qué plantillas de sitio tengo disponibles?

Uno de los puntos en los que SharePoint OnPremise tiene “ventaja” con respecto a SharePoint Online es el relativo a las plantillas de sitio disponibles que es mayor en el primer caso:

  • Si queremos averiguar las plantillas de sitio disponibles en SharePoint Online, basta conque hagamos uso del cmdlet Get-SPOWebTemplate. En concreto, si ejecutáis la siguiente secuencia PowerShell en el ISE (previamente tendréis que haber establecido la conexión a vuestro tenant de SharePoint Online) veréis que en total disponemos de 16 plantillas de sitio en SharePoint Online:
   1: $spoWebTemplates=Get-SPOWebTemplate

   2: $spoWebTemplates.Count

   3: $spoWebTemplates

La ejecución de la secuencia PowerShell anterior genera la siguiente salida:

image

  • En el caso de SharePoint 2013 On-Premise, de forma equivalente si ejecutamos la siguiente secuencia PowerShell usando la consola de Administración de SharePoint 2013, veremos que el número de plantillas de sitio se eleva a 60.
   1: $spWebTemplates=Get-SPWebTemplate | Where-object {$_.LocaleId -eq 1033 -and $_.CompatibilityLevel -eq 15 }

   2: $spWebTemplates.Count

   3: $spWebTemplates

En este caso, la ejecución de dicha secuencia PowerShell genera la siguiente salida:

image

SharePoint Online: How to enable a Sandbox solution using PowerShell (I)!

A typical issue when we work with SharePoint Online is we have more limitations when using the available APIS compared with the things we can do using the APIs available OnPremises. For instance, this situation happens when we want to automate the activation of Sandbox solutions in the solution gallery of a SharePoint Online site collection. In order to do this kind of automation, we have to follow SharePoint Online rules what means we can only use the Client Side Objet Model (CSOM). Indeed, in this blog post I will use some of the objects and classes available in the Publishing namespace in the CSOM as a way to activate an existing Sandbox solution. As you can see in the script (you can download it from How to activate a Sandbox solution in SharePoint Online, in order to actívate a Sandbox solution you have to use the DesignPackageInfo class available in the Publishing CSOM and then the static class DesignPackage that allows to activate the solution in the solution gallery:

   1: ############################################################################################################################################

   2: #Script that allows to add Users to a SPO Group

   3: # Required Parameters:

   4: #  -> $sUserName: User Name to connect to the SharePoint Online Site Collection.

   5: #  -> $sPassword: Password for the user.

   6: #  -> $sSiteColUrl: SharePoint Online Site Collection.

   7: #  -> $sSiteCollectionRelativePath: Site Collection Relative Path.

   8: #  -> $sSolutionName: Sandbox solution name.

   9: #  -> $sSolutionFile: Sandbox solution file.

  10: ############################################################################################################################################

  11:  

  12: $host.Runspace.ThreadOptions = "ReuseThread"

  13:  

  14: #Definition of the function that allows to activate a Sandbox solution in SharePoint Online

  15: function Activate-SandboxSolution

  16: {

  17:     param ($sSiteColUrl,$sUserName,$sPassword,$sSiteCollectionRelativePath,$sSolutionName,$sSolutionFile)

  18:     try

  19:     { 

  20:         #Adding the Client OM Assemblies        

  21:         Add-Type -Path "<CSOM_Path>\Microsoft.SharePoint.Client.dll"

  22:         Add-Type -Path "<CSOM_Path>\Microsoft.SharePoint.Client.Runtime.dll"

  23:         Add-Type -Path "<CSOM_Path>\Microsoft.SharePoint.Client.Publishing.dll"

  24:  

  25:         #SPO Client Object Model Context

  26:         $spoCtx = New-Object Microsoft.SharePoint.Client.ClientContext($sSiteColUrl) 

  27:         $spoCredentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($sUsername, $sPassword)  

  28:         $spoCtx.Credentials = $spoCredentials      

  29:     

  30:         $spoDesignPackageInfo=New-Object Microsoft.SharePoint.Client.Publishing.DesignPackageInfo

  31:         $spoDesignPackageInfo.PackageGuid=[GUID]::Empty

  32:         $spoDesignPackageInfo.MajorVersion=1

  33:         $spoDesignPackageInfo.MinorVersion=1

  34:         $spoDesignPackageInfo.PackageName=$sSolutionName

  35:         $sSolutionRelativePath=$sSiteCollectionRelativePath + "_catalogs/solutions/" + $sSolutionFile

  36:         $sSolutionRelativePath

  37:         #[Microsoft.SharePoint.Client.Publishing.DesignPackage] | Get-Member -Static

  38:         Write-Host "----------------------------------------------------------------------------"  -foregroundcolor Green

  39:         Write-Host "Activating the Sandbox Solution in the Solution Gallery!!" -foregroundcolor Green

  40:         Write-Host "----------------------------------------------------------------------------"  -foregroundcolor Green

  41:         $spoDesignPackage=[Microsoft.SharePoint.Client.Publishing.DesignPackage]

  42:         $spoDesignPackage::Install($spoCtx,$spoCtx.Site,$spoDesignPackageInfo,$sSolutionRelativePath)      

  43:         $spoCtx.ExecuteQuery()

  44:         Write-Host "----------------------------------------------------------------------------"  -foregroundcolor Green

  45:         Write-Host "Sandbox Solution successfully activated in the Solution Gallery!!" -foregroundcolor Green

  46:         Write-Host "----------------------------------------------------------------------------"  -foregroundcolor Green

  47:         $spoCtx.Dispose()

  48:     }

  49:     catch [System.Exception]

  50:     {

  51:         write-host -f red $_.Exception.ToString()   

  52:     }    

  53: }

  54:  

  55: #Required Parameters

  56: $sSiteColUrl = "https://<Your_SPO_Site_Collection>" 

  57: $sUserName = "<Your_SPO_User>" 

  58: #$sPassword = Read-Host -Prompt "Enter your password: " -AsSecureString  

  59: $sPassword=convertto-securestring "<Your_SPO_Pasword>" -asplaintext -force

  60: $sSolutionName="<Sandbox_Solution_Name>"

  61: $sSolutionFile="<Sandbox_Solution_File>"

  62: $sSiteCollectionRelativePath="/sites/<SiteCollectionName>/"

  63:  

  64: Activate-SandboxSolution -sSiteColUrl $sSiteColUrl -sUserName $sUserName -sPassword $sPassword -sSiteCollectionRelativePath $sSiteCollectionRelativePath -sSolutionName $sSolutionName -sSolutionFile $sSolutionFile

Once you execute the script, the Sanbox solutions is activated in the Sandbox gallery. However, you must note that the actual Sanbox solution is not activated…instead, a copy of the original Sandbox solution is activated.

image_thumb

Referencias:

SharePoint Online: Como activar una solución Sandbox por medio de PowerShell (I)!

Uno de los problemas típico cuando trabajamos con SharePoint Online es que a nivel de API nos encontramos con limitaciones importantes a la hora de realizar operaciones que con el modelo de objetos en servidor resultan sencillas. Esto sucede si queremos automatizar la activación de soluciones de tipo Sandbox en la galería de soluciones de una colección de Sitios de SharePoint Online…para poder realizar este automatismo, no nos queda otra que recurrir al modelo de objetos en cliente y en particular en el caso de este artículo a la variante CSOM para Publishing. Como podéis ver en el script, que podéis descargaros desde How to activate a Sandbox solution in SharePoint Online, la clave de todo está en hacer uso del objeto del DesignPackageInfo del CSOM de Publishing que define un objeto de tipo paquete de diseño de SharePoint encapsulado en la solución Sanbox y luego instalarlo haciendo uso de la clase estática DesignPackage:

   1: ############################################################################################################################################

   2: #Script that allows to add Users to a SPO Group

   3: # Required Parameters:

   4: #  -> $sUserName: User Name to connect to the SharePoint Online Site Collection.

   5: #  -> $sPassword: Password for the user.

   6: #  -> $sSiteColUrl: SharePoint Online Site Collection.

   7: #  -> $sSiteCollectionRelativePath: Site Collection Relative Path.

   8: #  -> $sSolutionName: Sandbox solution name.

   9: #  -> $sSolutionFile: Sandbox solution file.

  10: ############################################################################################################################################

  11:  

  12: $host.Runspace.ThreadOptions = "ReuseThread"

  13:  

  14: #Definition of the function that allows to activate a Sandbox solution in SharePoint Online

  15: function Activate-SandboxSolution

  16: {

  17:     param ($sSiteColUrl,$sUserName,$sPassword,$sSiteCollectionRelativePath,$sSolutionName,$sSolutionFile)

  18:     try

  19:     { 

  20:         #Adding the Client OM Assemblies        

  21:         Add-Type -Path "<CSOM_Path>\Microsoft.SharePoint.Client.dll"

  22:         Add-Type -Path "<CSOM_Path>\Microsoft.SharePoint.Client.Runtime.dll"

  23:         Add-Type -Path "<CSOM_Path>\Microsoft.SharePoint.Client.Publishing.dll"

  24:  

  25:         #SPO Client Object Model Context

  26:         $spoCtx = New-Object Microsoft.SharePoint.Client.ClientContext($sSiteColUrl) 

  27:         $spoCredentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($sUsername, $sPassword)  

  28:         $spoCtx.Credentials = $spoCredentials      

  29:     

  30:         $spoDesignPackageInfo=New-Object Microsoft.SharePoint.Client.Publishing.DesignPackageInfo

  31:         $spoDesignPackageInfo.PackageGuid=[GUID]::Empty

  32:         $spoDesignPackageInfo.MajorVersion=1

  33:         $spoDesignPackageInfo.MinorVersion=1

  34:         $spoDesignPackageInfo.PackageName=$sSolutionName

  35:         $sSolutionRelativePath=$sSiteCollectionRelativePath + "_catalogs/solutions/" + $sSolutionFile

  36:         $sSolutionRelativePath

  37:         #[Microsoft.SharePoint.Client.Publishing.DesignPackage] | Get-Member -Static

  38:         Write-Host "----------------------------------------------------------------------------"  -foregroundcolor Green

  39:         Write-Host "Activating the Sandbox Solution in the Solution Gallery!!" -foregroundcolor Green

  40:         Write-Host "----------------------------------------------------------------------------"  -foregroundcolor Green

  41:         $spoDesignPackage=[Microsoft.SharePoint.Client.Publishing.DesignPackage]

  42:         $spoDesignPackage::Install($spoCtx,$spoCtx.Site,$spoDesignPackageInfo,$sSolutionRelativePath)      

  43:         $spoCtx.ExecuteQuery()

  44:         Write-Host "----------------------------------------------------------------------------"  -foregroundcolor Green

  45:         Write-Host "Sandbox Solution successfully activated in the Solution Gallery!!" -foregroundcolor Green

  46:         Write-Host "----------------------------------------------------------------------------"  -foregroundcolor Green

  47:         $spoCtx.Dispose()

  48:     }

  49:     catch [System.Exception]

  50:     {

  51:         write-host -f red $_.Exception.ToString()   

  52:     }    

  53: }

  54:  

  55: #Required Parameters

  56: $sSiteColUrl = "https://<Your_SPO_Site_Collection>" 

  57: $sUserName = "<Your_SPO_User>" 

  58: #$sPassword = Read-Host -Prompt "Enter your password: " -AsSecureString  

  59: $sPassword=convertto-securestring "<Your_SPO_Pasword>" -asplaintext -force

  60: $sSolutionName="<Sandbox_Solution_Name>"

  61: $sSolutionFile="<Sandbox_Solution_File>"

  62: $sSiteCollectionRelativePath="/sites/<SiteCollectionName>/"

  63:  

  64: Activate-SandboxSolution -sSiteColUrl $sSiteColUrl -sUserName $sUserName -sPassword $sPassword -sSiteCollectionRelativePath $sSiteCollectionRelativePath -sSolutionName $sSolutionName -sSolutionFile $sSolutionFile

Y el resultado que se obtiene de la ejecución del script anterior es que se activa correctamente la Solución Sandbox, aunque como véis no se activa la solución original sino que se crea una copia de la misma que es la que finalmente se activa.

image

Referencias:

Office 365: Do More With Office 365 section in the Office 365 community!

This time I would like to share with you a new section created by Microsoft in the Office 365 community site that is intended to simplify the access to general support topics so anyone can find quickly find them. This new section is named Do More With Office 365 and you can find it in the following link: http://community.office365.com/en-us/w/do_more_with_office_365/default.aspx

image_thumb[1]