dic 11
1
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
[Acerca de mi...]
[Facebook]
[Google+]
[LinkedIn]
[Tweeter]

Bing Webmaster
PowerShell Scripts for SharePoint