Экспорт данных пользователя из Project Server 2019

Важно! Процесс экспорта пользовательских данных из Project Server 2019 сильно отличается от процесса, используемого для Project Server 2016, Project Server 2013 и Project Server 2010. Сведения о том, как экспортировать данные пользователей из предыдущих версий Project Server, см. в статье Экспорт данных пользователей из Project Server.

Обзор процесса

Ниже приведен обзор процесса экспорта сведений о конкретном пользователе с сайта Project Web App в Project Server 2019.

  1. Скачайте скрипты экспорта. Скачайте скрипты .sql и Microsoft PowerShell для экспорта пользовательских данных.

  2. Поиск сайтов PWA в вашей среде. Найдите список экземпляров Project Web App в ферме Project Server.

  3. Экспорт элементов рабочей области для пользователя. Найдите данные пользователя на сайтах проектов.

  4. Поиск идентификатора ресурса пользователя. На каждом экземпляре Project Web App найдите уникальный идентификатор ресурса для пользователя. Вы также можете указать утверждение пользователя.

  5. Выполнение экспорта данных пользователя. Экспортируйте сведения, которые требуется проверить, с помощью скриптов.

  6. Просмотрите экспортируемое содержимое. Просмотрите экспортированные данные для получения сведений о пользователе.

  7. Архивные элементы: Найдите данные о пользователе в архивной базе данных.

  8. Поиск и сохранение пользовательских представлений, настраиваемых фильтров, вложений и макросов: Поиск пользовательских элементов.

  9. Данные, которые необходимо экспортировать вручную. Найдите данные пользователей, не включенные в экспорт.

Шаг 1. Скачивание файлов скрипта экспорта

Скачайте скрипты экспорта из Центра загрузки Майкрософт.

Важные примечания о выполнении скриптов экспорта:

  • Запустите sql-скрипт в контексте базы данных, в которой находятся сведения. У вас должны быть db_datareader разрешения на базу данных.

  • Возможно, потребуется разблокировать ZIP-файл, так как по умолчанию выполнение скриптов, скачанных из Интернета, запрещено. Чтобы разблокировать файлы, сделайте следующее:

    1. В проводник перейдите в расположение, в котором вы сохранили ZIP-файл.

    2. Щелкните правой кнопкой мыши ZIP-файл и выберите пункт Свойства.

    3. На вкладке Общие выберите Разблокировать

    4. Нажмите кнопку ОК.

Все файлы, содержащиеся в ZIP-файле, должны быть разблокированы. Это можно проверить в отдельных файлах, убедившись, что флажок Разблокировать больше не отображается на вкладке Общие на странице Свойства файла.

Примечание. Если у вас есть только доступ к распакованным файлам, вы также можете разблокировать каждый файл по отдельности.

Шаг 2. Поиск экземпляров Project Web App в ферме SharePoint Server

Используйте командлет Get-SPProjectWebInstance со следующими фильтрами, чтобы получить URL-адрес, идентификатор сайта и имя базы данных для сайтов PWA, существующих в ферме SharePoint Server:

Get-SPProjectWebInstance | ft -a URL,SiteId,DatabaseName,DatabaseServer

Вам потребуются сведения для каждого сайта при удалении персональных данных пользователя на следующем шаге.

Например, выполнение командлета в нашем примере фермы Contoso Project Server может вернуть следующие три сайта PWA:

URL-адрес SiteID База данных DatabaseServer
https://contoso/pwa1 63ed0197-3647-4279-ed5e80855fc7 WSS_Content SQL01
https://contoso/pwa2 67fd0727-5279-3321-ef4e90956fc8 WSS_Content SQL01
https://contoso/pwa3 63ed0197-3647-4279-eg7e20233fg9 WSS_Content SQL02

Шаг 3. Экспорт элементов рабочей области для пользователя

Запустите скрипт ExportWorkspaceItemsByDisplayName2019.sql и выполните поиск данных, используя возможные отображаемые имена пользователя (поиск частичных имен).

Примечание. Необходимо запустить скрипт SQL ExportWorkspaceItemsByDisplayName2019.sql в SQL Server Management Studio и иметь разрешения администратора фермы для доступа к соответствующей базе данных.

Запустите скрипт в базе данных для связанного сайта PWA. В примере результатов, приведенных на шаге 1, база данных для всех трех экземпляров Project Web App WSS_Content.

Укажите значения для следующих параметров в скрипте:

Параметр Описание
@siteID Идентификатор сайта PWA для сайта, на котором вы хотите найти идентификатор ресурса пользователя. Вы нашли значения идентификатора сайта PWA для сайтов PWA на шаге 1. 
@searchName Отображаемое имя пользователя Project Server. 

Шаг 4. Поиск идентификатора ресурса или учетной записи утверждений пользователя на каждом сайте PWA

После получения сведений обо всех сайтах PWA в ферме Project Server необходимо найти учетную запись Идентификатор ресурса (ResID) или Утверждения пользователя, персональные данные которого вы хотите удалить. Сделайте это на каждом из сайтов PWA, обнаруженных на шаге 1 (поскольку идентификаторы resID отличаются в каждом экземпляре PWA).

Запустите скрипт SQL FindUser2019.sql, чтобы найти идентификатор ресурса или учетную запись утверждений пользователя.

Укажите значения для следующих параметров в скрипте:

Параметр Описание
@siteID Идентификатор сайта PWA для сайта, на котором вы хотите найти идентификатор ресурса пользователя. Вы нашли значения идентификатора сайта PWA для сайтов PWA на шаге 1. 
@searchName Отображаемое имя пользователя Project Server. 

Например, если вы хотите найти userID для Адама Барра на сайте Contoso PWA1, который вы нашли в примере на шаге 1, измените значения параметров в скрипте следующим образом:

DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'

DECLARE @searchName nvarchar(255) = "Адам Барр"

Скрипт возвращает значения имя ресурса, идентификатор ресурса, адрес электронной почты и учетная запись утверждений для пользователя.

Шаг 5. Экспорт данных пользователя с сайта PWA

Затем необходимо выполнить сценарий PowerShell ExportProjectUserContent** для экспорта данных пользователя с каждого сайта PWA в среде Project Server. Чтобы запустить скрипт, необходимо убедиться, что вы и ваша среда соответствуют предварительным требованиям.

Предварительные требования

  • Project Online классический клиент или общедоступная предварительная версия Project профессиональный 2019. Вам потребуется классический клиент Project Online или Project профессиональный 2019 и подключение к экземпляру Project PWA.

Чтобы подключить клиент Project к экземпляру Project PWA, выполните приведенные далее действия.

  1. Щелкните вкладку **Файл **,чтобы открыть представление Backstage. Щелкните Сведения, а затем — Управление учетными записями.

  2. В диалоговом окне учетные записи Project Web App нажмите кнопку Добавить.

  3. В диалоговом окне Свойства учетной записи введите имя этой учетной записи в поле Имя учетной записи .

  4. Введите URL-адрес сайта PWA, к которому вы подключаетесь, в поле URL-адрес Project Server .

  5. Нажмите кнопку ОК.

  6. В диалоговом окне учетные записи Project Web App выберите Задать значение по умолчанию и нажмите кнопку ОК.

  7. Перезапустите Project и войдите на сайт PWA.

  • Разрешения: Чтобы иметь необходимые разрешения для запуска скрипта, необходимо выполнить по крайней мере одно из следующих действий:

    1. Добавьте себя в качестве администратора семейства веб-сайтов на сайт PWA, для которого выполняется скрипт.

    2. Если вы находитесь в режиме разрешений Project, назначайте разрешения управление пользователями и группами и доступ к Службе отчетов Project Server для экземпляра Project Server. Если вы находитесь в режиме разрешений SharePoint, будьте в роли глобального администратора или администратора SharePoint.

Выполнение скрипта ExportProjectUserContent

Используйте сценарий PowerShellExportProjectUserContent.ps1 для экспорта данных пользователя.

При выполнении скрипта потребуется настроить четыре параметра.

-URL URL-адрес сайта PWA
-ResourceID Идентификатор ресурса пользователя.
-ClaimsAccount Учетная запись утверждений пользователя
-OutputDirectory Расположение для хранения файлов экспорта.

Вам также потребуется выбрать метод проверки подлинности.

Параметр Описание
Параметр проверки подлинности Description
[ничего передано] Проверка подлинности с помощью NTLM и протокола Kerberos в качестве текущего пользователя.
-PromptForCredential Проверка подлинности с помощью базового протокола или протокола дайджеста или NTLM и (или) Kerberos с другим пользователем.
-UseWebLogin Проверка подлинности с помощью Forms и протокола ADFS/SAML.

Вы можете запустить скрипт, указав идентификатор ресурса или имя входа пользователя.

Выполнение скрипта ExportProjectUser с использованием идентификатора ресурса users

В PowerShell используйте следующую команду с перечисленными выше параматерами:

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

Например, если вы хотите экспортировать данные пользователей с сайта Costoso PWA1 (URL-адрес https://contoso/sites/pwa1) сайта пользователя с идентификатором ресурса cb5c91cf-fd6b-e711-80d0-00155da4a406) и сохранить файлы экспорта в c:\pwa1siteOutput, введите:

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

Выполнение скрипта ExportProjectUser с помощью учетной записи утверждения пользователей

В PowerShell используйте следующую команду с перечисленными выше параматерами:

.\ExportProjectUserContent.ps1 -Url <PwaSiteURL> -ClaimAccount <UsersClaimAccount> -OutputDirectory <LocationToStoreOutput>

Например, если вы хотите экспортировать данные пользователей с сайта Costoso PWA1 (URL-адрес https://contoso/sites/pwa1) сайта пользователя с именем AdamB@contoso.onmicrosoft.comвхода ) и сохранить файлы экспорта в 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 для скачивания. К ним относятся:

-Параметры значений Полученные файлы JSON
Все Все json-файлы, связанные с функциями, все файлы JSON для конкретных проектов и все файлы списка проектов.
Engagements Engagements_page#.json
Ресурсы Resource.json, ReportingResource.json
Портфолио BusinessDrivers.json, DriverPrioritizations.json, PortfolioAnalyses.json
Projects

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

ResourcePlans ResourcePlans_page#.json, ReportingResourcePlans.json
Безопасность Security.json
ServerSettings CustomFields.json, LookupTables.json, Calendars.json, Delegations.json, QueueJobs.json, SubscribedReminders.json, UnsubscribedAlerts.json, ReminderEmails.json, AdminAudit.json
Расписания

Timesheets_Reporting.json, Timesheets_page#.json

Для Timesheets_page#.json вы получите файл для каждой страницы.

TaskStatus Rules.json, TaskStatus_AssignmentsHistory_page#.json, TaskStatus_AssignmentsSaved.json, TaskStatus_AssignmentsSubmitted.json
Отчеты о состоянии StatusReports.json
Рабочий процесс Workflow.json
WorkspaceItems WorkspaceItems.json
UserViewSettings UserViewSettings.json

Использование параметра -Options может быть полезно, если вы хотите экспортировать данные пользователей с сайта PWA для определенных функций. Например, если вы интересуетесь только данными пользователя в функции "Анализ портфеля", можно запустить параметр -Options со значением Portfolio:

.\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).

Шаг 6. Проверка экспортированного содержимого

После успешного выполнения скрипта PowerShell ExportProjectUserContent в выходном каталоге, указанном при выполнении команды, вы получите следующие выходные данные:

  • Файлы списка проектов . Вы получите три .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 Данные о приоритетах бизнес-драйвера.
Engagements Данные о вовлеченности ресурсов.
LookupTables Данные таблицы подстановки.
PortfolioAnalysis Анализ портфеля данных.
Задания очереди Данные о пользовательских заданиях обрабатываются через службу очередей.
ReminderEmails Данные электронной почты с напоминанием.
ReportingResourcePlans Данные отчетов о ресурсах.
Ресурс Данные ресурсов.
ResourcePlans Данные плана ресурсов.
Правила Данные правил.
Безопасности Данные о группах безопасности, категориях и разрешениях.
Отчеты о состоянии Данные отчета о состоянии.
SubscribedReminders Подписанные данные напоминаний.
TaskStatus_AssignmentsHistory Данные журнала назначений состояния.
TaskStatus_AssignmentsSaved При назначении состояния данные сохраняются.
TaskStatus_AssignmentsSubmitted Назначения с состоянием передают данные.
Расписания Данные о расписаниях.
Timesheets_Reporting Данные отчетов о расписаниях.
Отменить подпискуAlerts Данные оповещений об отмене подписки.
UserViewSettings Данные параметров пользовательского просмотра.
Рабочий процесс Данные рабочего процесса проекта.
WorkspaceItems Данные об элементах SharePoint с сайтов проектов.

Некоторые файлы JSON, относящиеся к конкретным функциям, могут быть большими, поэтому для повышения производительности следующие файлы JSON будут создаваться в нескольких файлах:

  • Engagements.json

  • ResourcePlans.json

  • Timesheets.json

  • TaskStatus_AssignmentHistory.json

Примечание. Дополнительные сведения об объектах, содержащихся в json-файлах каждого компонента, см. в разделе "Данные для конкретных компонентов" в определениях данных экспорта Project Online и Project Server.

  • Файлы, относящиеся к проекту . Если пользователь является частью любого проекта, то для каждого из этих проектов в выходной каталог будет экспортировано несколько отдельных файлов. Это произойдет, если пользователь является частью конкретного проекта одним из следующих вариантов:

    • Владелец проекта

    • Имеет задачу, назначенную ему или ей в проекте

    • Владелец назначения задачи в проекте

    • Диспетчер состояния задачи в проекте

Данные, относящиеся к проекту, отличаются от данных, связанных с функциями, тем, что данные относятся к одному проекту. Данные, связанные с функциями, могут включать данные пользователей во многих проектах на сайте PWA, частью которых был пользователь, но относящихся к одной функции.

Примечание. Для всех получаемых файлов для конкретного проекта они будут иметь префикс с именем проекта конкретного проекта. Например, если проект имеет имя проекта Project1, для всех файлов, относящихся к проекту, которые описаны в этом разделе, будет присвоен префикс Project1.

Для каждого проекта, в который входит пользователь, вы получите следующие три набора файлов:

  • Файл .xml проекта из черновиков и опубликованных баз данных:
Имя Описание
<projectName>_draft.xml Файл проекта из черновика схемы, сохраненный в формате .xml.
<projectName>_published.xml Файл проекта из опубликованной схемы, сохраненный в формате .xml.

Примечание: Сведения о xml-данных Project, содержащихся в этих файлах, см. в справочнике по схеме обмена данными Project XML .

  • MPP-файл для проекта из черновиков и опубликованных баз данных:
Имя Описание
<projectName>_draft.mpp Файл проекта из черновика схемы, сохраненный как MPP-файл проекта.
<projectName>_published.mpp Файл проекта из опубликованной схемы, сохраненный как MPP-файл проекта.

Примечание.

MPP-файл можно открыть с помощью Project профессиональный 2016, Project профессиональный 2019 года или клиента Project Online Desktop. Сохранение экспортированных MPP-файлов обратно в Project Online или Project Server не поддерживается.

  • Восемь JSON-файлов для проекта из схемы отчетов:
Имя Описание
<Project_projectName>_reporting_AssignmentBaselineTimephased.json Назначение базовых данных timephase для проекта из схемы отчетов.
<Project_projectName>_reporting_AssignmentTimephased.json Назначение данных timephase для проекта из схемы отчетов.
<Project_projectName>_reporting_ProjectBaseline.json Базовые данные проекта для проекта из схемы отчетов.
<Project_projectName>_reporting_Tasks.json Данные задач проекта для проекта из схемы отчетов.
<Project_projectName>_reporting_Assignments.json Назначение данных ресурсов для проекта из схемы отчетов.
<Project_projectName>_reporting_Resources.json Ресурсы данных для проекта из схемы отчетов.
<Project_projectName>_reporting_TaskBaselineTimephased.json Повременные данные базового плана задач для проекта из схемы отчетов.
<Project_projectName>_reporting_TaskTimephased.json Повременные данные задачи для проекта из схемы отчетов.

Примечание: Дополнительные сведения об объектах, содержащихся в каждом из JSON-файлов, см. в разделе Файлы данных для конкретных проектовProject Online экспорт определений объектов JSON.

  • Три JSON-файла с метаданными проекта из черновиков, опубликованных схем и схем отчетов:
Имя Описание
<projectName>_draft.json Файл метаданных проекта из схемы черновика
<projectName>_published.json Файл метаданных проекта из опубликованной схемы
<projectName>_reporting.json Файл метаданных проекта из схемы отчетов

Примечание. Дополнительные сведения об объектах, содержащихся в каждом из JSON-файлов, см. в разделе Файлы метаданных проекта определений данных экспорта Project Online и Project Server.

Шаг 7. Архивные элементы

ExportArchievdData2019.sql вернет следующие данные, хранящиеся в архивной базе данных, связанной с ресурсом.

Параметр экспорта Определения выходных данных
Архивные элементы — Календарь Календари
Архивные элементы — настраиваемые поля CustomFields
Архивные элементы — таблицы подстановки Таблица подстановки
Архивные элементы — проекты Список проектов
ProjectVersionId (идентификатор версии архива)
ProjectVersionDescription (дата и время резервной копии)
ProjectVersionDate (дата резервной копии)
Архивные элементы — ресурс Ресурс
Архивные элементы — настраиваемые поля ресурсов Ресурс — настраиваемые поля

Архивные данные проекта. Экспорт архивных проектов:

  1. Архивируйте текущий проект.

  2. Восстановите архивную версию.

  3. Экспорт данных, связанных с пользователем.

  4. Восстановите проект из архива.

Архивные данные, не относящиеся к проекту:

  1. Используйте резервное копирование и восстановление SharePoint , чтобы создать клон текущей фермы.

  2. Восстановите архивные элементы из административной резервной копии и восстановления (см. предыдущую процедуру).

  3. Экспорт данных, связанных с пользователем.

Шаг 8. Поиск и сохранение пользовательских представлений, настраиваемых фильтров, вложений и макросов

После получения экспортированного пользовательского содержимого можно использовать данные для поиска пользовательских представлений, настраиваемых фильтров, настраиваемых таблиц, вложений и макросов. Чтобы найти их, вам потребуется MPP-файл и XML-файл для каждого проекта, в котором требуется выполнить поиск. Дополнительные сведения о том, как это сделать, см. в разделах Поиск настраиваемых пользовательских элементов в Project Online и Экспорт данных пользователя Project Server.

Рекомендации по основным и вставленным проектам

Как отмечалось ранее, скрипт экспорта будет экспортировать только те проекты, в которые пользователь входил в качестве владельца, имеет назначенную задачу, является владельцем задачи или является диспетчером состояния задачи. Если пользователь является частью вставленного проекта, но не главным, экспортируется только вставляемый проект. Аналогичным образом, если пользователь является только частью главного проекта, а не каким-либо из вставленных проектов, экспортируется только главный проект.

При сохранении главного проекта, частью которых был пользователь, при появлении запроса не нужно сохранять связанные с ним проекты.

Шаг 9. Данные, которые необходимо экспортировать вручную

Автор проекта

Автор проекта не экспортируется с помощью описанных выше действий. Вы можете запустить ExportProjectAuthor2019.sql, чтобы получить список проектов, автор которых соответствует отображаемого имени пользователя или утверждениям пользователей.

Параметр Описание
@siteID Идентификатор сайта PWA для сайта, на котором вы хотите найти, является ли пользователь автором проекта. 
@searchName Отображаемое имя или утверждения пользователя Project Server.