Назад | Перейти на главную страницу

Предварительно подготовить сайт пользователя MySite с помощью скрипта?

Мы рассматриваем возможность предварительной инициализации MySite каждого пользователя в SP 2010 - я знаю, что MS не рекомендует это, но это установка Uni, и мы хотели бы заранее настроить учетные записи учащихся, а не делать все как надо, когда несколько тысячи человек приходят в один день и начинают знакомиться с нашими доступными услугами.

Можно ли это сделать с помощью какого-нибудь скрипта? Я предполагаю, что у Powershell есть какой-то механизм для запуска создания без необходимости физического посещения пользователем их сайта?

Это должно помочь вам начать работу - вам нужно обернуть часть создания сайта в цикл по списку пользователей и, возможно, добавить еще несколько проверок ошибок.

Я точно знаю, что это работает в 2007 году, но не тестировал в 2010 году. Все те же вещи существуют, так что они должны. И последнее - это МЕДЛЕННО - создание 1 пользователя на моем сервере SP2007 занимает 5-10 секунд. Если ваша ферма mysites достаточно мощная, вам может быть лучше позволить пользователям создавать свои личные сайты 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()