从 Project Online 中导出用户数据

组织可以从Project Online环境中导出特定用户的内容。 若要导出此内容,Office 365全局管理员可以执行以下步骤:

与项目管理员协作

根据你的公司,Office 365全局管理员可能知道如何管理Office 365管理任务,但对Project Online管理知之甚少。 如果是这种情况,我们建议Office 365全局管理员与其 PWA 站点管理员协作来完成这些任务。 例如,Office 365全局管理员可能最适合运行 PowerShell 脚本来查找所有 PWA 网站,但可能需要与 PWA 管理员协作才能完成剩余的步骤,并获取有关每个 PWA 站点的业务规则和配置的帮助。

步骤 1 - 下载导出脚本文件

对于本文中的过程,需要使用多个 PowerShell 脚本文件。 本文中引用的脚本文件包含在Project Online用户内容导出和删除脚本包中。 下载文件并将其解压缩到可引用的位置。

此包中包含的某些文件用于删除 Project Online 中的用户数据,本文不需要。

取消阻止文件

需要“取消阻止”Project Online用户内容导出和删除脚本包中下载的文件,才能在 PowerShell 中使用这些文件。 这是因为默认情况下不允许执行从 Internet 下载的脚本。 执行以下操作以取消阻止文件:

  1. 在 文件资源管理器中,转到保存 zip 文件的位置。

  2. 右键单击 zip 文件,然后单击“ 属性”。

  3. 在“ 常规 ”选项卡上,选择“ 取消阻止”。

    取消阻止文件。

  4. 单击“确定”

zip 文件中包含的所有文件现在应为“取消阻止”。 可以通过检查文件“属性”页的“常规”选项卡中是否不再显示“取消阻止”复选框选项,在各个文件中对此进行验证。

注意

如果仅有权访问解压缩的文件,还可以单独取消阻止每个文件。

步骤 2 - 查找Office 365环境中的所有Project Web App站点

全局管理员需要使用 SharePoint Online 命令行管理程序连接到其 SharePoint Online 管理员 中心并运行 Get-SPOSite PowerShell cmdlet,以获取其Office 365环境中每个 PWA 网站的 URL 列表。

注意

若要运行 Get-SPOSite PowerShell cmdlet,需要具有全局管理员或 SharePoint 管理员角色。

  1. 在 SharePoint Online 命令行管理程序模块中,使用 Connect-SPOService cmdlet 连接到 SharePoint Online 管理员中心:
Connect-SPOService -URL <AdminSiteURL> 

例如:

Connect-SPOService -URL https://contoso-admin.sharepoint.com 
  1. 连接到 SharePoint Online 管理员中心后,使用 Get-SPOSite PowerShell cmdlet 查找Office 365环境中的所有 PWA 网站:
Get-SPOSite | ?{$_.PWAEnabled -eq "Enabled"} | ft -a Url,Owner

成功运行后,将显示Office 365环境中所有 PWA 网站和网站所有者的列表。

步骤 3 - 在每个 PWA 站点中查找用户的资源 ID (可选)

注意

如果你有用户的登录帐户,此步骤是可选的。 需要用户的 登录帐户 或每个 PWA 站点 的资源 ID 才能运行导出脚本。

如果要查找用户的资源 ID,PWA 站点管理员可以在上一步中找到的每个 PWA 站点上执行以下操作:

  1. 在“Project Online服务器设置”的“企业数据”部分中,单击“资源汇”。

  2. “资源汇”页上的“资源名称”列中,找到用户的名称,然后查找该行以查看是否可以在“唯一 ID”列中找到值。 此值是用户的资源 ID。 例如,在下图中,可以看到“唯一 ID”列中列出了 Aaron Painter 的资源 ID 值。

    “唯一 ID”列中的用户的资源 ID。

    在某些情况下,可能会自定义表,以便“唯一 ID”列不可用。 如果是这样,请选中用户名左侧的复选框,然后单击功能区“资源”选项卡中的“编辑”,然后转到下一步。

  3. 在特定用户的 “编辑资源 ”页上,转到 “系统标识数据 ”部分,找到为 GUID 列出的值。 GUID 是此 PWA 站点的用户资源 ID。

    查找用户资源 ID。

注意

如果有多个 PWA 站点,则每个 PWA 站点将为同一用户使用不同的资源 ID。 请确保将用户找到的资源 ID 与特定的 PWA 站点 URL 配对。

步骤 4 - 从 PWA 站点导出用户数据

接下来,需要运行 ExportProjectUserContent PowerShell 脚本,以便从Office 365环境中的每个 PWA 站点导出用户数据。 若要运行脚本,需要确保你和环境满足先决条件,然后才能运行该脚本。

ExportProjectUserContent PowerShell 脚本包含在 Project Online 用户内容导出和删除脚本包中。

先决条件

  • Project Online许可证:需要为你分配Project Online 高级版Project Online Professional许可证。

  • Project Online桌面客户端:需要Project Online桌面客户端并连接到 Project Online 实例。 Project Online桌面客户端随附Project Online 高级版Project Online Professional许可证。

    若要将 Project 客户端连接到 Project Online 实例,请执行以下操作:

  1. 单击“ 文件 ”选项卡以打开 Backstage 视图。 单击“ 信息”,然后单击“ 管理 帐户”。

  2. “Project Web App帐户”对话框中,单击“添加”。

  3. 在“ 帐户属性 ”对话框中,在“帐户名称”框中键入此 帐户的名称

  4. “Project Server URL”框中输入要连接到的 PWA 网站的 URL。

  5. 单击“确定”。

  6. 在“Project Web App帐户”对话框中,选择“设置为默认值”,然后单击“确定”。

  7. 重启 Project,并登录到 PWA 站点。

  • 权限:若要拥有运行脚本所需的权限,至少需要执行以下操作之一:

    • 将自己作为网站集管理员添加到要为其运行脚本的 PWA 网站。

    • 如果处于项目权限模式,则分配对 Project Online 实例具有“管理用户和组”以及“访问 Project Server Reporting Service”权限。 如果处于 SharePoint 权限模式,请具有全局管理员或 SharePoint 管理员角色。

运行 ExportProjectUserContent 脚本

使用 ExportProjectUserContent.ps1 PowerShell 脚本导出用户的数据。

  1. SharePoint Online 命令行管理程序中,运行 ExportProjectUserContent 脚本。 运行脚本时,需要配置以下参数:
   
参数
说明
-Url
PWA 网站的 URL
-ResourceID
用户的资源 ID。
-LoginName
用户的登录名。
-OutputDirectory
用于存储导出文件的位置。
-地区
此可选参数指定正在使用Office 365环境。 可用于此参数的值包括:
默认值 - Project 公有云。
中国 - 加拉廷。
德国 - BlackForest。
ITAR - Office 365 美国政府。
如果未使用 参数,则使用默认值 ( Default ) 。

可以通过指定用户的资源 ID 或登录名来选择运行脚本。

使用用户资源 ID 运行 ExportProjectUser 脚本

可以在 PowerShell 中将以下命令与上面列出的参数配合使用:

.\ExportProjectUserContent.ps1 -Url <PwaSiteURL> -ResourceUid <UsersResourceID> -OutputDirectory <LocationToStoreOutput>

例如,如果要为资源 ID 为 cb5c91cf-fd6b-e711-80d0-00155da4a406 的用户从 Costoso PWA1 站点 (站点 URL https://contoso/sites/pwa1) 导出用户数据,并将导出文件保存到 c:\pwa1siteOutput,则可以输入:

.\ExportProjectUserContent.ps1 -Url https://contoso/sites/pwa1 -ResourceUid cb5c91cf-fd6b-e711-80d0-00155da4a406 -OutputDirectory c:\pwa1siteOutput

使用用户的登录名运行 ExportProjectUser 脚本

可以在 Powershell 中对上面列出的参数使用以下命令:

.\ExportProjectUserContent.ps1 -Url <PwaSiteURL> -LoginName <UsersLoginName> -OutputDirectory <LocationToStoreOutput>

例如,如果要为登录名AdamB@contoso.onmicrosoft.com为 的用户的 Costoso PWA1 站点 (站点 URL https://contoso/sites/pwa1) 导出用户数据,并将导出文件保存到 c:\pwa1siteOutput,请输入:

.\ExportProjectUserContent.ps1 -Url https://contoso/sites/pwa1 -LoginName AdamB@contoso.onmicrosoft.com -OutputDirectory c:\pwa1siteOutput

脚本成功运行后,所有导出的数据都将存储在指定的 -OutputDirectory 中。

你收到的某些导出的用户内容将包含许多 json 格式的文件,其中包含特定于功能的用户信息。 例如,Security.json 文件包含有关用户的安全组、类别和权限设置的数据。 下一部分将更详细地介绍这些功能相关的 json 文件。 默认情况下,运行 ExportProjectUserContent 脚本时,将收到所有 27 个与功能相关的 json 文件。 但是,可以使用 -Options 参数选择要下载的特定 json 文件。 其中包括以下项:

-Options 值 收到的 Json 文件
全部
所有与功能相关的 json 文件、所有特定于项目的 json 文件和所有项目列表文件。
时间表
Timesheets_Reporting.json,Timesheets_page#.json
对于 Timesheets_page#.json,将按页获取文件。
TaskStatus
Rules.json、TaskStatus_AssignmentsHistory_page#.json、TaskStatus_AssignmentsSaved.json、TaskStatus_AssignmentsSubmitted.json
安全性
Security.json
项目组合管理
BusinessDrivers.json、DriverPrioritizations.json、PortfolioAnalyses.json
状态报告
StatusReports.json
服务
Engagements_page#.json
ResourcePlans
ResourcePlans_page#.json、ReportingResourcePlans.json
项目
DraftProjectList.xml 、PublishedProjectList.xml。 ReportingProjectList
对于用户所属的每个项目,你还会收到以下各项之一:
Project_projName_draft.json、Project_projName_draft.mpp、Project_projName_draft.xml
Project_projName_published.json,Project_projName_ published.mpp,Project_projName_ published.xml,
Project_projName_reporting.json、Project_projName_reporting_Tasks、Project_projName_reporting_Assignments、Project_projName_reporting_Resources、Project_projName_reporting_Baselines、Project_projName_reporting_TaskTimephased、Project_projName_reporting_AssignmentTimephased、Project_projName_reporting_TaskBaselineTimephased、Project_projName_reporting_ AssignmentBaselineTimephased
UserViewSettings
UserViewSettings.json

如果要从 PWA 站点导出用户数据以获取特定功能,则使用 -Options 参数会很有帮助。 例如,如果只关注项目组合分析功能中的用户数据,则可以使用值 Portfolio 运行 -Options 参数:

.\ExportProjectUserContent.ps1 -Url https://contoso/sites/pwa1 -ResourceUid cb5c91cf-fd6b-e711-80d0-00155da4a406 -OutputDirectory c:\pwa1siteOutput -Options Portfolio

这样,就可以导出三个 json 文件,其中包含与 BusinessDrivers.json、DriverPrioritizations.json、PortfolioAnalyses.json () 项目组合分析功能相关的用户数据。

步骤 5 - 查看导出的内容

成功运行 ExportProjectUserContent PowerShell 脚本后,在运行 命令时指定的输出目录中将具有以下输出:

  • 项目列表文件 - 你将收到三个.xml文件,这些文件提供项目草稿和已发布架构中包含的项目列表,其中用户是其中的一部分。 这意味着用户作为以下至少一项参与项目:

    • 是项目所有者。

    • 在项目中将任务分配给他或她。

    • 是项目中任务的分配所有者。

    • 项目中任务的状态管理器。

      这三个.xml文件是:

   
名称
说明
DraftProjectList.xml
与上述条件相对应的草稿架构中的项目列表。
PublishedProjectList.xml
已发布架构中与上述条件对应的项目列表。
ReportingProjectList.xml
报告架构中与上述条件相对应的项目列表。

三个.xml文件中的每个项目列表可能略有不同。 例如,用户可以保存项目,但不能发布,这意味着它将出现在DraftProjectList.xml文件中,但不能显示在PublishedProjectList.xml或ReportingProjectList.xml文件中。

项目管理员可以使用项目列表.xml文件,向他们提供有关他们有兴趣分析哪些特定于项目的导出文件的信息,以决定应与用户共享多少导出的内容。

对于列出的每个项目,这三个ProjectList.xml文件都具有以下属性:

   
属性
说明
SiteId
项目所在的 PWA 网站的唯一标识符。
Proj_UID
项目的唯一标识符。
Proj_Name
项目的名称。
  • 与功能相关的文件 - 对于用户所属的每个 PWA 站点,以下特定于功能的 .json 文件将导出到指定的输出目录。 特定于功能的文件将包含用户数据,因为它与整个 PWA 站点的功能使用有关。 例如,Drivers.json 文件将包含有关用户创建或拥有的项目组合分析业务驱动程序的数据。 如果用户在特定 PWA 网站上没有与该功能相关的数据,则该文件将不包含任何数据。

    特定于功能的 .json 文件包括:

名称 说明
AdminAudit
Project Web App服务器设置更改数据。
BusinessDrivers
项目组合分析业务驱动因素数据。
日历
企业日历数据。
CustomFields
自定义字段数据。
代表团
委派数据。
DriverPrioritizations
业务驱动因素对数据进行优先级划分。
服务
资源参与数据。
LookupTables
查阅表数据。
PortfolioAnalysis
项目组合分析数据。
QueueJobs
有关用户作业的数据通过队列服务进行处理。
ReminderEmails
提醒电子邮件数据。
ReportingResource
资源报告数据。
Resource
资源数据。
ResourcePlans
资源计划数据。
规则
规则数据。
安全性
有关安全组、类别和权限的数据。
状态报告
状态报告数据。
SubscribedReminders
订阅的提醒数据。
TaskStatus_AssignmentsHistory
状态分配历史记录数据。
TaskStatus_AssignmentsSaved
状态分配保存数据。
TaskStatus_AssignmentsSubmitted
状态分配提交数据。
时间表
有关时间表的数据。
Timesheets_Reporting
报告有关时间表的数据。
UnsubscribedAlerts
取消订阅的警报数据。
UserViewSettings
用户查看设置数据。
工作流
项目工作流数据。
WorkspaceItems
有关项目网站中的 SharePoint 项的数据。

某些特定于功能的 json 文件可能会很大,因此为了提高性能,以下 json 文件将跨多个文件生成:

  • Engagements.json

  • ResourcePlans.json

  • Timesheets.json

  • TaskStatus_AssignmentHistory.json

    注意

    若要详细了解每个特定于功能的 .json 文件中包含的对象,请参阅Project Online导出 json 对象定义的特定于功能的数据部分。

  • 特定于项目的文件 - 如果用户是任何项目的一部分,则对于每个项目,多个单独的文件将导出到输出目录。 如果用户是特定项目的一部分,则会出现以下情况:

    • 项目所有者

    • 在项目中将任务分配给他或她

    • 是项目中任务的分配所有者

    • 项目中任务的状态管理器

      特定于项目的数据与功能相关数据的不同之处在于,数据特定于单个项目。 与功能相关的数据可以包括用户曾参与的 PWA 网站中许多项目的用户数据,但与单个功能相关。

      注意

      对于你收到的所有特定于项目的文件,它们将以特定项目的“ 项目名称”作为前缀。 例如,如果项目的项目名称为 Project1,则本部分中介绍的所有特定于项目的文件都将以 Project1 为前缀。

      对于用户所属的每个项目,你将收到以下三组文件:

      - 草稿和已发布数据库中项目的.xml文件:

   
名称
说明
<projectName>_draft.xml
草稿架构中的项目文件保存为.xml格式。
<projectName>_published.xml
已发布架构中的项目文件保存为.xml格式。

注意

请参阅 Project XML 数据交换方案参考 ,了解这些文件中包含的 Project XML 数据。

- 草稿和已发布数据库中项目的 .mpp 文件:

   
名称
说明
<projectName>_draft.mpp
草稿架构中的项目文件保存为 Project .mpp 文件。
<projectName>_published.mpp
已发布架构中的项目文件保存为 Project .mpp 文件。

注意

可以使用 Project Professional 2019、Project Professional 2016 或 Project Online 桌面客户端打开 .mpp 文件。 不支持将导出的 .mpp 文件保存回Project Online或 Project Server。

- 报告架构中项目的八个 .json 文件:

名称 说明
Reporting_AssignmentBaselineTimephased
报告架构中项目的分配基线时间相数据。
Reporting_AssignmentTimephased
报告架构中项目的分配时间相数据。
Reporting_ProjectBaseline
报告架构中项目的项目基线数据。
Reporting_Tasks
报告架构中项目的项目任务数据。
Reporting_Assignments
报告架构中项目的分配资源数据。
Reporting_Resources
报告架构中项目的资源数据。
Reporting_TaskBaselineTimephased
报告架构中项目的任务基线时间分段数据。
Reporting_TaskTimephased
报告架构中项目的任务时间分段数据。

注意

若要了解有关每个 .json 文件中包含的对象的详细信息,请参阅导出 json 对象定义的报告数据部分Project Online特定于项目的用户数据部分。

- 三个 .json 文件,其中包含来自草稿、已发布和报告架构的项目元数据:

   
名称
说明
<projectName>_draft.json
草稿架构中的项目元数据文件
<projectName>_published.json
已发布架构中的项目元数据文件
<projectName>_reporting.json
报告架构中的项目元数据文件

注意

若要详细了解每个 .json 文件中包含的对象,请参阅Project Online导出 json 对象定义的特定于项目的元数据文件部分。

步骤 6 - 查找并保存自定义视图、自定义筛选器、附件和宏

收到导出的用户内容后,可以使用数据查找用户的自定义视图、自定义筛选器、自定义表、附件和宏。 若要查找它们,需要为每个要在其中搜索的项目提供 MPP 和 XML 文件。 有关如何执行此操作的详细信息,请参阅在Project Online和 Project Server 用户导出数据中查找自定义用户项

主控项目和插入项目的注意事项

如前所述,导出脚本将仅导出用户作为所有者的一部分、具有已分配任务、是任务的分配所有者或任务的状态管理员的项目。 如果用户是插入的项目的一部分,但不是主项目的一部分,则只会导出插入的项目。 同样,如果用户只是主项目的一部分,而不是任何插入的项目,则只会导出主项目。

保存用户所属的主项目时,如果出现提示,则无需保存任何关联的插入项目。

项目主页收藏夹和最近查看的项目的注意事项

用户最喜爱的项目和最近查看的项目的数据只能在应用内直接访问。 用户需要使用其Office 365帐户凭据登录才能访问其项目主页并查看列出的项目。

  1. 登录到 Office 365。

  2. 在浏览器中,导航到 URL project.microsoft.com 以打开项目主页。

  3. 在“项目主页”上,获取“收藏夹”和“最近”部分中列出的项目的屏幕截图。

    ProjectHome。

另请参阅

Project Online导出 json 对象定义

从 Project Online 中删除用户数据