如何显示 OneDrive for Business 网站集列表

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

本文提供了管理员PowerShell脚本,将显示在您的组织中的每个OneDrive for Business网站。

步骤 1: 连接到您的组织的 SharePoint Online Management Shell

步骤 2: 使用 Windows PowerShell 收集所有 OneDrive for Business 网站的列表

请参阅了解有关使用此脚本提示本主题结尾的详细信息

开始之前

  • 安装 SharePoint Online Management Shell。有关信息,请参阅设置 SharePoint Online Management Shell Windows PowerShell 环境

    重要: 租户管理员授予自己网站集管理员权限的用户的OneDrive for Business网站可以打开用户的OneDrive for Business文档库,并执行相同的任务作为所有者。请务必控件和已分配您的组织中的租户管理员权限的监视器。

  • PowerShell脚本,需要确保已安装 SharePoint 客户端对象模型 (CSOM)。下面的行,则表明: [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")

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

步骤 1: 连接到您的组织的 SharePoint Online Management Shell

  1. 在您的本地计算机上打开 SharePoint Online Management Shell,,并运行以下命令:

    $credentials = Get-Credential

    请求的 Windows PowerShell 凭据对话框中键入用户名和您的 Office 365 全局管理员帐户的密码,然后单击确定

  2. 运行以下命令以连接到您的 SharePoint Online 组织的外壳:

    Connect-SPOService -Url https://<yourdomain>-admin.sharepoint.com –credential $credentials
  3. 若要验证您已连接到您的 SharePoint Online 组织,请运行以下命令以连接到您的组织的根网站:

    Get-SPOSite https://<yourdomain>.sharepoint.com

步骤 2: 使用 Windows PowerShell 收集所有 OneDrive for Business 网站的列表

在此步骤中,您可以运行PowerShell脚本来创建您的组织中的所有OneDrive for Business网站的列表。此列表将保存到文本文件。

  1. 将以下文本保存到文本文件。例如,可以将其保存到一个名为GetOD4BSites.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 MySites 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!"
  2. 编辑以下脚本文件中,开始中的变量并使用特定于您的组织的信息。下面的示例假设您的组织的域名 contoso.com。

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

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

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

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

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

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

    .\GetOD4BSites.ps1

脚本成功完成后,在$LogFile变量脚本中指定位置创建文本文件。此文件包含的 SharePoint Online 组织中的所有OneDrive for Business网站的列表。以下文本提供有关如何设置此文件中的网站的列表格式的示例。如有必要,可以将网站删除此文件。

/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/

返回页首

更多信息

您可以通过使用获取 SPOSite cmdlet,连接到OneDrive for Business网站,并且可以通过设置 SPOSite cmdlet 更改所有权。 一旦您是网站所有者,您可以使用正则 SharePoint 客户端对象模型 (CSOM) 进一步执行管理操作。

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

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

此信息是否有帮助?

谢谢您的反馈!

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

×