我们正在考虑在 SP 2010 中预先配置每个用户的 MySite - 我知道 MS 不推荐这样做,但这是一个 Uni 安装,我们希望提前设置学生帐户,而不是在几千人在同一天出现并开始浏览我们提供的服务时让一切都变得疯狂。
这可以通过某种脚本来完成吗?我猜想 Powershell 有某种机制来触发创建,而无需用户亲自访问他们的网站?
答案1
这应该可以帮助您入门 - 您需要将站点创建部分包装在您的用户列表循环中,并可能添加更多错误检查。
我确信这在 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()