Isso deve começar - você precisará agrupar a parte de criação do site em um loop sobre sua lista de usuários e, possivelmente, adicionar mais algumas verificações de erros.
Eu sei com certeza que isso funciona em 2007, mas ainda não testei em 2010. Tudo o que existe existe. Uma última coisa - isso é SLOW - criar 1 usuário no meu servidor SP2007 leva de 5 a 10 segundos. Se o seu farm mysites é bastante robusto, você pode ser melhor deixar os usuários criarem seus sites pessoais ad-hoc.
[Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
$siteurl = "http://your.mysitesurl.com"
$site = New-Object Microsoft.SharePoint.SPSite($siteurl)
$context = [Microsoft.Office.Server.ServerContext]::GetContext($site)
$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
# start loop here
$user = "domain\username"
if ($upm.UserExists($user)) {
$profile = $upm.GetUserProfile($user)
# there are other exceptions you can catch, check out the UserProfiles class
trap [Microsoft.Office.Server.UserProfiles.PersonalSiteExistsException] {
Write-Host "personal site already exists for $user"
continue
}
$profile.CreatePersonalSite();
} else {
Write-Host: "user $user did not exist"
}
# end loop here
$site.Dispose()