Archivo de la etiqueta: My Site

Script para el aprovisionamiento de My Site en SharePoint

Este es uno de los primeros de una serie posts, cuyo objetivo es mostrar como se pueden realizar muchas de las labores de administracion de SharePoint 2010 habituales, con scripts de PowerShell.

Comenzamos con un sencillo script que permite aprovisionar el My Site de un usuario, unicamente hay que llamar a la siguiente funcion:

[Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
Function CreateMySite($siteurl, $loginname)
{
	$site = New-Object Microsoft.SharePoint.SPSite($siteurl)
	$context = [Microsoft.Office.Server.ServerContext]::GetContext($site)
	$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
	if ($upm.UserExists($loginname)) {
		$profile = $upm.GetUserProfile([string]$loginname)
		trap [Microsoft.Office.Server.UserProfiles.PersonalSiteExistsException]
		{
			Write-Host "WARNING: Ya existe el sitio personal del usuario: $loginname" -ForeGroundColor Red
			continue
		}
		write-host "Creando el sitio personal para el usuario: $loginname" -ForeGroundColor Green
		$profile.CreatePersonalSite();
	} else {
		Write-Host "WARNING: No existe el usuario: $loginname" -ForeGroundColor Red
	}
	$site.Dispose()
}

$siteurl = "http://misitio"
$loginname = "DOMINIO\USUARIO"
#Llamada a la funcion para crear el My Site
#CreateMySite $siteurl $loginname

En el caso que quieras provisionar todos los usuarios existentes en el UserProfile, en vez de utilizar la función anterior puedes usar esta otra:

[Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
Function CreateMySite($siteurl)
{
	$site = New-Object Microsoft.SharePoint.SPSite($siteurl)
	$context = [Microsoft.Office.Server.ServerContext]::GetContext($site)
	$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
	foreach ($userobject in $Profiles ) {
		$loginname = $userobject.item("AccountName")
		if ($upm.UserExists($loginname)) {
			$profile = $upm.GetUserProfile([string]$loginname)
			trap [Microsoft.Office.Server.UserProfiles.PersonalSiteExistsException]
			{
				Write-Host "WARNING: Ya existe el sitio personal del usuario: $loginname" -ForeGroundColor Red
				continue
			}
			write-host "Creando el sitio personal para el usuario: $loginname" -ForeGroundColor Green
			$profile.CreatePersonalSite();
			trap
			{
				Write-Host "ERROR: Se ha producido un error al crear el sitio para: $loginname" -ForeGroundColor Red
				continue
			}
		}else{
			Write-Host "WARNING: No existe el usuario: $loginname" -ForeGroundColor Red
		}
	}
	$site.Dispose()
}

$siteurl = "http://misitio"
#Llamada a la funcion para crear el My Site
#CreateMySite $siteurl

Ocultar My Site desde la Administración Central

​Se me ha dado el caso, que un cliente no quiere inicialmente, que los usuarios puedan acceder a su: My Site en SharePoint 2010. La forma de ocultarles esta opción desde la administración central es:

  • Ir a: Central Administration > Application Management > Manage service applications > User profile service application.
  • Una vez dentro, en el Ribbon, accede a “Manage User Permissions” dentro de la sección “People”.
  • En la ventana “Permissions for User Profile Service Application”, el grupo de usuarios, por ejemplo: “All authenticated Users”.
  • Desmarca los elementos “Permissions”, dependiendo de las opciones que quieras deshabilitar.
  • Por ultimo haz click “OK” para guardar la configuración.