标签:profile ken 地址 还需 runtime 中心 使用 client import
又来更新一篇博客,这回简单聊聊如何为Office 365的用户批量enable onedrive for business, 有的人可能会一脸懵逼,这玩意还需要enable?不是本身就已经自带了吗?其实确实是这样,Office 365的用户只要购买了符合条件的license,就可以享受到Onedrive for business 带来的存储空间。but,这个存储空间并不是开了账户就会自动生成的!这个存储空间生成的时间是用户点击了onedrive的图标开始,第一次点击onedrive的时候可能会发现会需要一段时间才能进入页面,其实后台就是在干这个事。 有的人可能会比较迷茫这个对我来说有什么影响吗?不管他是什么时候生成的,我只要保证我能正常使用不就好了吗?Yes,对于用户来说确实是这样,but,对于IT管理员来说这个其实是有很大的影响的!
比如说,如果我想做SharePoint 到SharePoint Online, 或者说从一个file share迁移到SharePoint Online,这种情况下,如果用户的onedrive for business在迁移时还没有生成的话,就会出现一些报错的问题,因为迁移的目标实际上是不存在的。
为了解决这个问题,其实管理员可以通过脚本的方式提前为用户生成Onedrive的存储空间,这对于批量的迁移来说是一个很关键的前提!
具体如何来操作,请看下边的分享,首先可以看到在portal上可以很明显看到用户的onedrive是不会自动生成的

1.首先第一点,请安装PowerShell SharePoint Online Module 

2.安装完成后可以打开PowerShell验证下安装是否成功
SharePoint Online Module的名字比较长,可以import后然后get下是否可以获取到module里的命令
Get-Command -Module Microsoft.Online.SharePoint.PowerShell


3.除此之外还需要安装SharePoint Online Client Components SDK,否则有一些assembly是没办法成功load的


4.准备工作完成后,我们就可以通过脚本来enable onedrive了
首先看下如何运行脚本,最主要的其实就是两个参数,SPOAdminUrl,这个其实就是你的O365 ShareOnline管理中心的URL,还有一个是InputFilePath,这个其实是一个文件,里边会记录着需要enable用户的UPN


5.再次登陆Portal后就可以看到onedrive已经成功enable了

最后分享一下脚本的源代码
<#
.EXAMPLE
.\BulkEnqueueOneDriveSite.ps1 -SPOAdminUrl https://contoso-admin.sharepoint.com -InputfilePath C:\users.txt
.PARAMETER SPOAdminUrl
The URL for the SharePoint Admin
center
https://contoso-admin.sharepoint.com
.PARAMETER InputFilePath
The path to the input file.
The file must contain 1 to 200
users
C:\users.txt
.NOTES
This script needs to be run by a
SharePoint Online Tenant Administrator
This script will prompt for the username
and password of the Tenant Administrator
#>
param
(
#Must be SharePoint Administrator
URL
[Parameter(Mandatory =
$true)]
[ValidateNotNullOrEmpty()]
[string] $SPOAdminUrl,
[Parameter(Mandatory =
$true)]
[ValidateNotNullOrEmpty()]
[string]
$InputFilePath
)
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
| Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
|
Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.UserProfiles")
| Out-Null
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SPOAdminUrl)
$Users = Get-Content -Path $InputFilePath
if ($Users.Count -eq 0 -or $Users.Count -gt 200)
{
Write-Host $("Unexpected user
count: [{0}]" -f $Users.Count) -ForegroundColor Red
return
}
$web = $ctx.Web
Write-Host "Please enter a Tenant Admin username" -ForegroundColor
Green
$username = Read-Host
Write-Host "Please enter your password" -ForegroundColor
Green
$password = Read-Host -AsSecureString
$ctx.Credentials = New-Object
Microsoft.SharePoint.Client.SharePointOnlineCredentials($username,$password
)
$ctx.Load($web)
$ctx.ExecuteQuery()
$loader =
[Microsoft.SharePoint.Client.UserProfiles.ProfileLoader]::GetProfileLoader($ctx)
$ctx.ExecuteQuery()
$loader.CreatePersonalSiteEnqueueBulk($Users)
$loader.Context.ExecuteQuery()
Write-Host "Script Completed"另外再分享下需要用到的组件的下载地址
SharePoint Online Client Components SDK
https://www.microsoft.com/en-us/download/details.aspx?id=42038
SharePoint Online Module
https://www.microsoft.com/en-us/download/details.aspx?id=35588
使用PowerShell 批量Enable OneDrive for business
标签:profile ken 地址 还需 runtime 中心 使用 client import
原文地址:http://blog.51cto.com/mxyit/2069904