Powershell

通過腳本預置 MySite 使用者站點?

  • May 26, 2010

我們正在考慮在 SP 2010 中預先配置每個使用者的 MySite - 我知道 MS 不推薦它,但它是 Uni 安裝,我們希望提前設置學生帳戶,而不是在幾個成千上萬的人都在同一天出現並開始查看我們可用的服務。

這可以通過某種腳本來完成嗎?我認為 Powershell 有一些機制來觸發創建,而使用者不必親自訪問他們的網站?

這應該讓您開始 - 您需要將站點創建部分包裝在使用者列表的循環中,並可能添加更多錯誤檢查。

我確定這在 2007 年有效,但在 2010 年尚未對其進行測試。所有相同的東西都存在,所以它應該存在。最後一件事——這很慢——在我的 SP2007 伺服器上創建 1 個使用者需要 5-10 秒。如果您的 mysites 農場足夠強大,您實際上可能最好讓使用者臨時創建他們的個人網站。

[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()

引用自:https://serverfault.com/questions/145410