为组织内的用户预设置 OneDrive

默认情况下,用户首次浏览到其OneDrive系统会自动创建 (用户) 网站。 在某些情况下(如以下情况)你可能希望用户OneDrive位置事先准备就绪,或进行预设置:

  • 贵组织具有添加新员工的自定义流程,并且您希望在OneDrive员工时创建一个自定义流程。

  • 您的组织计划从本地 SharePoint 服务器迁移到 Microsoft 365。

  • 你的组织计划从另一个联机存储服务迁移。

本文介绍如何使用 PowerShell OneDrive为用户预配置应用程序。

  • 有关设置默认存储大小的信息,请参阅为用户设置OneDrive存储空间

  • 有关每个计划获取的存储的信息,请参阅 OneDrive Service Description

重要

必须允许预配的用户帐户登录,并且还必须分配有SharePoint许可证。 若要OneDrive cmdlet 预配策略,您必须是全局管理员SharePoint管理员,并且必须分配有SharePoint许可证。

备注

如果要为大量用户OneDrive预配网站,可能需要几天时间OneDrive位置。

为用户OneDrive预配置

  1. 如果要为许多用户预OneDrive,请创建这些用户的列表并将其另存为文件。 例如,创建一个名为 Users.txt的文本文件,其中包含:

    user1@contoso.com
    user2@contoso.com
    user3@contoso.com
    
  2. 下载最新的SharePoint在线管理壳

    备注

    如果你已安装早期版本的SharePoint Online Management Shell,请进入添加或删除程序并卸载 "SharePoint Online Management Shell"。

  3. 在 Microsoft 365 中以全局管理员或 SharePoint 管理员身份连接到 SharePoint Online。要了解具体操作步骤,请参阅 SharePoint Online 命令行管理程序入门

    备注

    PowerShell 命令Request-SPOPersonalSite仅适用于允许登录的用户。 如果已阻止用户登录,则可以通过使用在步骤 1 中创建的文本文件运行 PowerShell 命令 Set-MsolUser 来允许用户登录。

    Get-Content -path "C:\Users.txt" | ForEach-Object { Set-MsolUser -UserPrincipalName $_ -BlockCredential $False }
    
  4. 运行 PowerShell 命令 Request-SPOPersonalSite,使用之前在步骤 1 中创建的文本文件。

    $users = Get-Content -path "C:\Users.txt"
    Request-SPOPersonalSite -UserEmails $users
    

若要验证OneDrive是否创建了用户,请参阅获取组织中所有用户OneDrive URL的列表

为OneDrive中所有许可的用户预配置网站

以下代码段将分批预配OneDrive 199 个代码段。

$Credential = Get-Credential
Connect-MsolService -Credential $Credential
Connect-SPOService -Credential $Credential -Url https://contoso-admin.sharepoint.com

$list = @()
#Counters
$i = 0


#Get licensed users
$users = Get-MsolUser -All | Where-Object { $_.islicensed -eq $true }
#total licensed users
$count = $users.count

foreach ($u in $users) {
    $i++
    Write-Host "$i/$count"

    $upn = $u.userprincipalname
    $list += $upn

    if ($i -eq 199) {
        #We reached the limit
        Request-SPOPersonalSite -UserEmails $list -NoWait
        Start-Sleep -Milliseconds 655
        $list = @()
        $i = 0
    }
}

if ($i -gt 0) {
    Request-SPOPersonalSite -UserEmails $list -NoWait
}

规划混合 OneDrive