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

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

Ваша организация может экспортировать содержимое определенного пользователя из среды Project Server. Чтобы экспортировать это содержимое, администратор фермы Project Server может выполнить следующие действия:

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

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

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

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

Шаг 5. Поиск проектов, содержащих нужного пользователя

Шаг 6. Дополнительные запросы для экспорта данных

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

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

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

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

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

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

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

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

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

Эта статья относится к Project Server 2016, Project Server 2013 и Project Server 2010. Хотя общий процесс относится ко всем трем версиям, существуют особенности, которые могут применяться к разным версиям, особенно при выполнении скриптов SQL. Они отмечены в разделах ниже. Убедитесь, что вы развернули последние обновления для фермы и Project профессиональный клиентов.

Примечание.

Автор проекта не экспортируется в рамках процедур, описанных в этой статье.

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

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

Скачивание содержит ZIP-файл с отдельными папками для каждой версии Project Server. Используйте скрипты для своей версии или Project Server, как описано в шаге 5 ниже.

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

  • Папка скриптов содержит несколько WSDL-файлов. Они необходимы для сценариев PowerShell. Убедитесь, что они находятся в том же каталоге, что и скрипты PowerShell при их запуске.

  • Скрипт SetupReportingProcedures201x.sql временно создает в памяти некоторые глобальные хранимые процедуры, доступные в сеансе SQL. Эти хранимые процедуры требуются для следующих скриптов:

    • ExportReportingProject201x.sql

    • ExportReportingResource201x.sql

    • ExportTimesheetReporting201x.sql

Примечание.

Запустите setupReportingProcedures201x.sql перед выполнением любого из этих скриптов.

  • Каждый скрипт имеет одну или несколько переменных, которые необходимо определить, например UserID или имя базы данных, перед его выполнением. Проверьте все необходимые параметры в разделе описания самого скрипта.

  • Запустите каждый 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

Поиск экземпляров Project Web App в ферме SharePoint Server 2010

Для Project Server 2010 также необходимо найти идентификатор приложения-службы Project Server PSI . Выполните командлет PowerShell Get-ServiceApplication со следующими параметрами:

Get-SPServiceApplication | ? { $_.TypeName -eq "Project Server PSI Service Application" } | ft -a

При этом также будет возвращено имя приложения-службы Project Server. Затем можно использовать командлет Get-SPProjectWebInstance, чтобы вернуть имена четырех баз данных Project Server, указав имя приложения службы с параметром -ServiceApplication:

Get-SPProjectWebInstance -ServiceApplication "Project Server"  | ft -a Url,PrimaryServer,PublishedDatabase,DraftDatabase,ArchiveDatabase,ReportingServer,ReportingDatabase

Необходимо иметь возможность ссылаться на имена баз данных для каждой базы данных.

Примечание.

База данных отчетов Project Server 2010 может находиться на экземпляре SQL Server, отличном от трех других баз данных.

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

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

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

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

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

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

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

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

Примечание.

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

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

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

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

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

DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'
DECLARE @searchName nvarchar(255) = 'Adam Barr'

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

Шаг 5. Поиск проектов, содержащих нужного пользователя

Идентификатор ресурса, найденный на шаге 4, можно использовать для поиска проектов, с которыми участвовал пользователь. Для этого используются скрипты SQL для запроса данных Project, хранящихся для списка проектов.

Для каждого хранилища данных в Project Server существуют отдельные скрипты. Результаты скриптов, скорее всего, будут похожи, хотя вы можете увидеть некоторые различия, если у вас есть черновики проектов, которые не были опубликованы.

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

Для Project Server 2010 выполните следующие скрипты:

(Обязательно прочитайте описание в верхней части каждого скрипта. Для некоторых сценариев требуется добавить имя базы данных или обновить другие параметры.)

  • ExportDraftProjectList2010.sql

  • ExportPublishedProjectList2010.sql

  • ExportReportingProjectList2010.sql

Для Project Server 2013 выполните следующие скрипты:

  • ExportDraftProjectList2013.sql

  • ExportPublishedProjectList2013.sql

  • ExportReportingProjectList2013.sql

Для Project Server 2016 выполните следующие скрипты:

  • ExportDraftProjectList2016.sql

  • ExportPublishedProjectList2016.sql

  • ExportReportingProjectList2016.sql

Изучите выходные данные запросов и определите проекты, в которых требуется найти определенные данные пользователя. Для удобства может потребоваться экспортировать список из SQL Server в CSV-файл.

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

Для Project Server 2010 выполните следующие скрипты:

(Обязательно прочитайте описание в верхней части каждого скрипта. Для некоторых сценариев требуется добавить имя базы данных или обновить другие параметры.)

  • ExportDraftProject2010.sql

  • ExportPublishedProject2010.sql

  • ExportReportingProjects2010.sql

  • ExportReportingProjectTimephasedData2010.sql

Для Project Server 2013 выполните следующие скрипты:

  • ExportDraftProject2013.sql

  • ExportPublishedProject2013.sql

  • ExportReportingProjects2013.sql

  • ExportReportingProjectTimephasedData2013.sql

Для Project Server 2016 выполните следующие скрипты:

  • ExportDraftProject2016.sql

  • ExportPublishedProject2016.sql

  • ExportReportingProjects2016.sql

  • ExportReportingProjectsTimephased2016.sql

Сведения о выходных значениях этих запросов см. в разделе Данные пользователя для конкретных проектов из данных отчетов.

Если вам нужны дополнительные сведения о пользователе, см. шаг 6 для сценариев для получения сведений о ресурсах, расписаниях, состоянии и т. д.

Шаг 6. Дополнительные запросы для экспорта данных

Выполните эти дополнительные запросы, чтобы найти дополнительные сведения о ресурсах, расписаниях, состоянии и т. д.

Сведения о выполнении сценариев PowerShell см. в разделе Выполнение скриптов PowerShell ниже.

Экспорт данных из Project Server 2010

Чтобы экспортировать данные из Project Server 2010, используйте скрипты .sql и сценарии Microsoft PowerShell, как указано в следующей таблице. Дополнительные сведения о каждом из полей в выходных данных см. по ссылке в столбце Определения выходных данных .

(Обязательно прочитайте описание в верхней части каждого скрипта. Для некоторых сценариев требуется добавить имя базы данных или обновить другие параметры.)

Параметр экспорта Выполните следующие скрипты: Определения выходных данных
Портфолио
ExportPortfolioModels2010.sql
Драйверы
Определение приоритетов
Анализ
планы ресурсов.
Export-ResourcePlanTimephasedData2010.ps1
ExportResourcePlans2010.sql
ExportReportingResourcePlans2010.sql
ResourcePlan
Ресурсы
ExportResource2010.sql
ExportReportingResource2010.sql
Ресурсы
ReportingResource
Безопасность
ExportSecurity2010.sql
Безопасность
Параметры службы
ExportServerSettings2010.sql
Задания очереди
CustomFields
LookupTables
Календари
Отменить подпискуAlerts
SubscribedReminders
ReminderEmails
Делегации
Отчеты о состоянии
ExportStatusReports2010.sql
Отчеты о состоянии
TaskStatus
ExportAssignmentsSavedData2010.sql
ExportSubmittedTaskStatusUpdates2010.sql
ExportAssignmentTransactionHistory2010.sql
ExportAssignmentHistoryData2010.ps1
ExportSavedTaskStatusUpdates2010.sql
Export-SavedTaskStatusUpdates2010.ps1 (примечание)
StatusAssignSaved
StatusAssignHistory
Расписания
ExportTimesheets2010.sql
ExportReportingTimesheets2010.sql
Расписания
Timesheets_Reporting
Параметры пользовательского представления
Export-UserViewSettings2010.ps1
UserViewSettings
Рабочий процесс
ExportWorkflow2010.sql
Рабочий процесс
Элементы рабочей области
ExportWorkspaceItemsByDisplayName2010.sql
WorkspaceItems

Экспорт данных из Project Server 2013

Чтобы экспортировать данные из Project Server 2013, используйте скрипты .sql и сценарии Microsoft PowerShell, как указано в следующей таблице. Дополнительные сведения о каждом из полей в выходных данных см. по ссылке в столбце Определения выходных данных .

Параметр экспорта Выполните следующие скрипты: Определения выходных данных
Портфолио
ExportPortfolioModels2013.sql
Драйверы
Определение приоритетов
Анализ
планы ресурсов.
ExportResourcePlanTimephasedData2013.ps1
ExportResourcePlans2013.sql
ResourcePlan
Ресурсы
ExportResource2013.sql
ExportReportingResource2013.sql
Ресурс
ReportingResource
Безопасность
ExportSecurity2013.sql
Безопасность
Параметры службы
ExportServerSettings2013.sql
Задания очереди
CustomFields
LookupTables
Календари
Отменить подпискуAlerts
SubscribedReminders
ReminderEmails
Делегации
Отчеты о состоянии
ExportStatusReports2013.sql
Отчеты о состоянии
TaskStatus
ExportAssignmentsSavedData2013.sql
ExportSubmittedTaskStatusUpdates2013.sql
ExportAssignmentTransactionHistory2013.sql
ExportAssignmentHistoryData2013.ps1
ExportSavedTaskStatusUpdates2013.sql
Export-SavedTaskStatusUpdates2013.ps1 (примечание)
StatusAssignSaved
StatusAssignHistory
Расписания
ExportTimesheets2013.sql
ExportReportingTimesheets2013.sql
Расписания
Timesheets_Reporting
Параметры пользовательского представления
Export-UserViewSettings2013.ps1
UserViewSettings
Рабочий процесс
ExportWorkflow2013.sql
Рабочий процесс
Элементы рабочей области
ExportWorkspaceItemsByDisplayName2013.sql
WorkspaceItems

Экспорт данных из Project Server 2016

Чтобы экспортировать данные из Project Server 2016, используйте скрипты .sql и сценарии Microsoft PowerShell, как указано в следующей таблице. Дополнительные сведения о каждом из полей в выходных данных см. по ссылке в столбце Определения выходных данных .

Параметр экспорта Выполните следующие скрипты: Определения выходных данных
Engagements
ExportEngagementScripts2016.sql
Engagements
Портфолио
ExportPortfolioModels2016.sql
Драйверы
Определение приоритетов
Анализ
планы ресурсов.
ExportResourcePlans2016.sql
ResourcePlan
Ресурсы
ExportResource2016.sql
ExportReportingResource.sql
Ресурс
ReportingResource
Безопасность
ExportSecurity2016.sql
Безопасность
Параметры службы
ExportServerSettings2016.sql
Задания очереди
CustomFields
LookupTables
Календари
Отменить подпискуAlerts
SubscribedReminders
ReminderEmails
Делегации
Отчеты о состоянии
ExportStatusReports2016.sql
Отчеты о состоянии
TaskStatus
ExportAssignmentsSavedData2016.sql
ExportSubmittedTaskStatusUpdates2016.sql
ExportAssignmentTransactionHistory2016.sql
ExportAssignmentHistoryData.ps1
ExportSavedTaskStatusUpdates2016.sql
Export-SavedTaskStatusUpdates2016.ps1
StatusAssignSaved
StatusAssignHistory
Расписания
ExportTimesheets2016.sql
ExportReportingTimesheets2016.sql
Расписания
Timesheets_Reporting
Параметры пользовательского представления
Export-UserViewSettings2016.ps1
UserViewSettings
Рабочий процесс
ExportWorkflow2016.sql
Рабочий процесс
Элементы рабочей области
ExportWorkspaceItemsByDisplayName2016.sql
WorkspaceItems

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

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

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

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

  1. Архивируйте текущий проект. (2010)
  2. Восстановите архивную версию. (2010)
  3. Экспорт данных, связанных с пользователем.
  4. Восстановите проект из архива.

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

  1. Используйте резервное копирование и восстановление SharePoint (2010), чтобы создать клон текущей фермы.
  2. Восстановите архивные элементы из административной резервной копии и восстановления (см. предыдущую процедуру).
  3. Экспорт данных, связанных с пользователем.

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

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

Выполнение скриптов PowerShell

В таблице ниже показаны параметры, необходимые для данного скрипта. Запустите каждый скрипт в командной консоли SharePoint от имени администратора фермы.

Script Параметры
ResourcePlanTimephasedData201x.ps1
Export-SavedTaskStatusUpdates201x.ps1
ExportTaskStatusUpdateHistory201x.ps1
ProjectServerURL
ResId
OutputPath
PromptForCredential
UseWebLogin
Sync-ProjectWorkspace201x.ps1 ProjectServerURL
ProjectId
PromptForCredential
UseWebLogin
Export-UserViewSettings201x.ps1 ProjectServerURL
ResId
OutputPath

Соответствующие параметры описаны в таблице ниже.

Параметр Описание
ProjectServerURL URL-адрес сайта PWA
ResId Идентификатор ресурса пользователя
OutputPath Расположение для хранения файлов экспорта.
ProjectId Рабочая область проекта для синхронизации

Кроме того, при каждом запуске скрипта включайте один из следующих параметров авторизации:

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

Например:

.\Export-UserViewSettings2016.ps1 -ProjectServerURL "https://pwa" -resId "55efd6ff-853c-4fec-8abd-6df2c90b94e5" -OutputPath "C:\"

Дополнительные примеры и сведения о параметрах см. в каждом файле скрипта PowerShell.

Выполнение Export-SavedTaskStatusUpdates201x.ps1 (только в 2010 и 2013 годах)

Чтобы запустить скрипт Export-SavedTaskStatusUpdates201x.ps1, необходимо запустить от имени делегата экспортируемого пользователя, чтобы просмотреть сохраненное назначение. Это можно сделать следующим образом:

  1. Включение делегирования в Project Server
  2. Включение разрешений на делегирование для экспортируемого пользователя
  3. Включите разрешения делегирования для себя, чтобы делегировать от имени этого пользователя. (У вас, как администратора, возможно, уже есть разрешения.)
  4. Настройка себя в качестве делегата экспортируемого пользователя
  5. Войдите в Project Web App.
  6. Щелкните значок шестеренки и щелкните Действовать в качестве делегата.
  7. Запустите сеанс делегата.
  8. Запустите сценарий PowerShell Export-SavedTaskStatusUpdates201x.ps1.
  9. Остановите сеанс делегата.

См. также

Удаление данных пользователя из Project Server