在您的组织中创建所有 OneDrive 位置的列表

注意:  我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。我们的目的是使此内容能对你有所帮助。可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的 英文版本 以便参考。

本文适用于全局管理员和 Office 365 中的SharePoint管理员。

查看您的组织中的 OneDrive 用户和 Url 的列表

  1. 以全局管理员或 SharePoint 管理员身份登录 Office 365。

  2. 选择左上角的应用启动器图标 Office 365 中的应用启动器图标 ,再选择“管理员”打开 Office 365 管理中心。(如果未看到“管理”磁贴,则你不具有组织内的 Office 365 管理员权限。)

  3. 在左窗格中,选择报表,,然后选择用法

  4. 单击OneDrive 文件磁贴,或单击选择报表,然后单击OneDrive 用法

  5. 在底部的表的右上角,单击导出

使用 PowerShell 的 Microsoft 组织中创建所有 OneDrive Url 的列表

在以下步骤创建的列表将保存到文本文件。

  1. 下载最新的 SharePoint Online Management Shell

  2. 以全局管理员或 Office 365 中的 SharePoint 管理员身份连接到 SharePoint Online。若要了解操作方法,请参阅 Getting started with SharePoint Online Management Shell(开始使用 SharePoint Online Management Shell)。

  3. 下载 SharePoint 和项目客户端对象模型库

  4. 将以下文本保存到文本文件。例如,可以将其保存到一个名为GetODSites.txt文件。

    # Specifies the URL for your organization's SPO admin service
    $AdminURI = "https://your organization name-admin.sharepoint.com"
    
    # Specifies the User account for an Office 365 global admin in your organization
    $AdminAccount = "global admin account"
    $AdminPass = "password for global admin account"
    
    # Specifies the location where the list of URLs should be saved
    $LogFile = 'C:\Users\youralias\Desktop\ListOfMysites.txt'
    
    
    # Begin the process
    
    $loadInfo1 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
    $loadInfo2 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
    $loadInfo3 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.UserProfiles")
    
    # Convert the Password to a secure string, then zero out the cleartext version ;)
    $sstr = ConvertTo-SecureString -string $AdminPass -AsPlainText –Force
    $AdminPass = ""
    
    # Take the AdminAccount and the AdminAccount password, and create a credential
    
    $creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($AdminAccount, $sstr)
    
    
    # Add the path of the User Profile Service to the SPO admin URL, then create a new webservice proxy to access it
    $proxyaddr = "$AdminURI/_vti_bin/UserProfileService.asmx?wsdl"
    $UserProfileService= New-WebServiceProxy -Uri $proxyaddr -UseDefaultCredential False
    $UserProfileService.Credentials = $creds
    
    # Set variables for authentication cookies
    $strAuthCookie = $creds.GetAuthenticationCookie($AdminURI)
    $uri = New-Object System.Uri($AdminURI)
    $container = New-Object System.Net.CookieContainer
    $container.SetCookies($uri, $strAuthCookie)
    $UserProfileService.CookieContainer = $container
    
    # Sets the first User profile, at index -1
    $UserProfileResult = $UserProfileService.GetUserProfileByIndex(-1)
    
    Write-Host "Starting- This could take a while."
    
    $NumProfiles = $UserProfileService.GetUserProfileCount()
    $i = 1
    
    # As long as the next User profile is NOT the one we started with (at -1)...
    While ($UserProfileResult.NextValue -ne -1) 
    {
    Write-Host "Examining profile $i of $NumProfiles"
    
    # Look for the Personal Space object in the User Profile and retrieve it
    # (PersonalSpace is the name of the path to a user's OneDrive for Business site. Users who have not yet created a 
    # OneDrive for Business site might not have this property set.)
    $Prop = $UserProfileResult.UserProfile | Where-Object { $_.Name -eq "PersonalSpace" } 
    $Url= $Prop.Values[0].Value
    
    # If "PersonalSpace" (which we've copied to $Url) exists, log it to our file...
    if ($Url) {
    $Url | Out-File $LogFile -Append -Force
    }
    
    # And now we check the next profile the same way...
    $UserProfileResult = $UserProfileService.GetUserProfileByIndex($UserProfileResult.NextValue)
    $i++
    }
    
    Write-Host "Done!"
  5. 编辑以下脚本文件中,开始中的变量并使用特定于您的组织的信息。下面的示例假设您的组织的域名 contoso.com。

    • $AdminURI  此参数指定的 SharePoint Online 管理员服务,例如, https://contoso-admin.sharepoint.comURI。

    • $AdminAccount  Office 365 组织,例如, admin@contoso.onmicrosoft.com中指定的全局管理员帐户。

    • $AdminPass  指定由$AdminAccount,例如, "J$P1ter1"指定的帐户的密码。

    • $LogFile  此参数指定创建并包含在您的组织中的所有OneDrive Url 的列表的文本文件的完整路径。例如,若要将此文件保存到桌面,请使用'C:\Users\<youralias>\Desktop\ListOfMysites.txt'

    注意: 本主题中提供的示例PowerShell脚本不支持在任何 Microsoft 标准支持计划或服务。示例脚本按原样没有任何形式的保证。Microsoft 进一步不承担全部默示的担保,包括但不限于任何默示或适用于特殊用途的适销提供任何担保。与您保持因使用或性能的示例脚本和文档的全部风险。在任何情况 Microsoft 其、 作者或任何其他所涉及的创建、 生产或传递的脚本应不承担任何责任 (包括但不限于业务利润、 业务中断或丢失损失业务信息或其他 pecuniary 丢失) 因使用或不能使用示例脚本或文档,即使 Microsoft 已被告知此类损害的可能性。

  6. 将文本文件保存为PowerShell脚本文件中,通过将文件名称后缀更改为.ps1。例如,将 GetODSites.txt 该文件另存为 GetODSites.ps1。

  7. 在 SharePoint Online Management Shell 中,转到您在上一步中创建的脚本所在的文件夹,然后再运行该脚本,例如:

    .\GetODSites.ps1

    注意: 如果您收到有关无法运行脚本错误消息,您可能需要更改执行策略。有关信息,请参阅有关执行策略

脚本成功完成后,在$LogFile变量脚本中指定位置创建文本文件。此文件包含您的组织中的所有OneDrive Url 的列表。下面的文本提供有关如何设置此文件中的 Url 的列表格式的示例。

/personal/annb_contoso_onmicrosoft_com/
/personal/carolt_contoso_onmicrosoft_com/
/personal/esterv_contoso_onmicrosoft_com/
/personal/hollyh_contoso_onmicrosoft_com/
/personal/jeffl_contoso_onmicrosoft_com/
/personal/joeh_contoso_onmicrosoft_com/
/personal/kaia_contoso_onmicrosoft_com/

更多信息

用户的 onedrive URL 后,可以通过获取 SPOSite cmdlet,获取有关其的详细信息,并通过设置 SPOSite cmdlet 更改设置。

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×