This information is based on a public beta of SharePoint 2010.

I have found that the user profile service requires way too many clicks to get the MySite and Profile functionality to work using the Central Administration UI. You need to:

  1. Create a Web Application for the My Site
  2. Create a Site Collection using the My Site Host Site Template
  3. Start Service Instance for "User Profile Service"
  4. [Optional] Create IIS Web Application Pool
  5. Create the Service Application by calling New-SPProfileServiceApplication
  6. Create the Service Application Proxy by calling New-SPProfileServiceApplicationProxy

Here are the sample scripts I use to automate these steps: 

Add-PsSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

# assume your farm account is managed account
$FarmSvcAccountName = "AD\YourFarmServiceAccount"
$FarmSvcAccount= (Get-SPManagedAccount $FarmSvcAccountName)  
$DatabaseServer = "YourDBServer"
$AppServer  = "YourAppServer"

$MySitePort = 85
$MySiteUrl="http://{0}:{1}" -f $AppServer, $MySitePort
$MySiteWebAppName = "MySites"
$MySite_AppPool = "MySite_AppPool"
$MySiteDB = "MySite_DB"
$MySiteWebPath = "C:\Inetpub\MySites"

if ((Get-SPWebApplication | Where-Object { $_.DisplayName -eq $MySiteWebAppName}) -eq $null)
	Write-Host "Creating MySites Web App..."

# Step 1
	New-SPWebApplication -Name $MySiteWebAppName `
	-Url $MySiteUrl  `
	-Path $MySiteWebPath  `
	-DatabaseServer $DatabaseServer  `
	-DatabaseName $MySiteDB `
	-ApplicationPool $MySite_AppPool `
	-ApplicationPoolAccount $FarmSvcAccount 
	Write-Host "Creating MySites Site Collection..."

# Step 2
	New-SPSite $MySiteUrl -Name "MySites" -OwnerAlias $FarmSvcAccountName -Template (Get-SPWebTemplate –identity SPSMSITEHOST#0)
	Write-Host "Done."
	Write-Host "My Site WebApp [$MySiteUrl] already exists" -ForegroundColor Yellow

# Step 3
StartServiceInstance "User Profile Service"

$ProfileServiceName = "Profile Service"
$ProfileAppPoolName = "ProfileAppPool"
$ProfileSyncDBName = "ProfileSyncDB"

$ProfileApp = Get-SPServiceApplication | Where-Object { $_.DisplayName -eq $ProfileServiceName }

if ($ProfileApp -eq $null)

# Step 4
	$ProfileAppPool = Get-SPIisWebServiceApplicationPool | Where-Object { $_.Name -like "SharePoint Web Services Default" }

# Step 5	
	Write-Host "Creating $ProfileServiceName ..."

	$ProfileApp = New-SPProfileServiceApplication -Name $ProfileServiceName `
	-ApplicationPool $ProfileAppPool `
	-MySiteHostLocation $MySiteUrl  `
	-MySiteManagedPath $MySiteManagedPath  `
	-ProfileDBName $ProfileDBName  `
	-ProfileDBServer $DatabaseServer `
	-SocialDBName $SocialDBName  `
	-SocialDBServer $DatabaseServer  `
	-ProfileSyncDBName $ProfileSyncDBName `
	-ProfileSyncDBServer $DatabaseServer 

# Step 6	
	Write-Host "Creating $ProfileServiceName Proxy..."

	$ProfileAppProxy = New-SPProfileServiceApplicationProxy -Name $ProfileServiceName -ServiceApplication $ProfileApp -DefaultProxyGroup
	Write-Host "Done."
	Write-Host "Profile Service Application [$ProfileServiceName] already exists."  -ForegroundColor Yellow

Now your Action Menu should have a new menu item called "My Profile" which will take you to the MySiteWeb Application where you can create your MySite.


  • You need to adjust the variable for this to work in your environment, e.g. service account name, server name and domain name.
  • You need to have Meta Data and Search Service Application provisioned before you provision the User Profile Service.
  • StartServiceInstance function is available in my previous post.