使用PowerShell 批量Enable OneDrive for business

网友投稿 310 2022-10-04

使用PowerShell 批量Enable OneDrive for business

有的人可能会比较迷茫这个对我来说有什么影响吗?不管他是什么时候生成的,我只要保证我能正常使用不就好了吗?Yes,对于用户来说确实是这样,but,对于IT管理员来说这个其实是有很大的影响的!

比如说,如果我想做SharePoint 到SharePoint Online, 或者说从一个file share迁移到SharePoint Online,这种情况下,如果用户的onedrive for business在迁移时还没有生成的话,就会出现一些报错的问题,因为迁移的目标实际上是不存在的。

为了解决这个问题,其实管理员可以通过脚本的方式提前为用户生成Onedrive的存储空间,这对于批量的迁移来说是一个很关键的前提!

具体如何来操作,请看下边的分享,首先可以看到在portal上可以很明显看到用户的onedrive是不会自动生成的

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

Online Module

https://microsoft.com/en-us/download/details.aspx?id=35588

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用PowerShell deprovision O365 资源
下一篇:Assert.assertEquals的使用方法及注意事项说明
相关文章

 发表评论

暂时没有评论,来抢沙发吧~