Create all users’ personal site via Powershell script – Sharepoint 2010
03/10/2011 Leave a comment
#PowerShell Script - Create All Users Personel Sites - SharePoint 2010 #The scripts is distributet "as-is." Use it on your own risk. #Add SharePoint PowerShell SnapIn if not already added if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) { Add-PSSnapin "Microsoft.SharePoint.PowerShell" } [Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server") $mysiteHostUrl = "http://my" $personalSiteGlobalAdmin = "DOMAIN\padm" $personalSiteGlobalAdminNot ="padm@bugrapostaci.com" $personalSiteGlobalAdminDisplayName = "Personel Site admin" $mysite = Get-SPSite $mysiteHostUrl $context = [Microsoft.Office.Server.ServerContext]::GetContext($mysite) $upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context) $AllProfiles = $upm.GetEnumerator() foreach($profile in $AllProfiles) { $DisplayName = $profile.DisplayName $AccountName = $profile[[Microsoft.Office.Server.UserProfiles.PropertyConstants]::AccountName].Value #Add your restrictions for users. if($Accountname -like "YourDomain*") { if($profile.PersonalSite -eq $Null) { write-host "Creating personel site for ", $AccountName $profile.CreatePersonalSite() #Adding an extra admin for personel sites $pweb = $profile.PersonalSite.OpenWeb() $pweb.AllUsers.Add($personalSiteGlobalAdmin,$personalSiteGlobalAdminNot,$personalSiteGlobalAdminDisplayName,$null); $padm= $pweb.AllUsers[$personalSiteGlobalAdmin]; $padm.IsSiteAdmin = $true; $padm.Update(); $pweb.Dispose(); write-host "Personal Site Admin has assigned" } else { write-host $AccountName ," has already personel site" } } } $mysite.Dispose();