Экспорт данных пользователя из 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. Дополнительные запросы для экспорта данных
Шаг 8. Поиск и сохранение вложений, представлений и файлов VBA
Обзор процесса
Ниже приведен обзор процесса экспорта сведений о конкретном пользователе из Project Web App.
Скачайте скрипты экспорта. Скачайте скрипты .sql и Microsoft PowerShell для экспорта пользовательских данных.
Поиск сайтов PWA в вашей среде. Найдите список экземпляров Project Web App в ферме Project Server.
Поиск идентификатора ресурса пользователя. На каждом экземпляре Project Web App найдите уникальный идентификатор ресурса для пользователя. Вы также можете указать утверждение пользователя.
Выполнение экспорта данных пользователя. Экспортируйте сведения, которые вы хотите проверить, с помощью сципов.
Использование скриптов для различных версий 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-файл, так как по умолчанию выполнение скриптов, скачанных из Интернета, запрещено. Чтобы разблокировать файлы, сделайте следующее:
В проводник перейдите в расположение, в котором вы сохранили ZIP-файл.
Щелкните правой кнопкой мыши ZIP-файл и выберите пункт Свойства.
На вкладке Общие выберите Разблокировать.
Нажмите кнопку ОК.
Все файлы, содержащиеся в 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 (дата резервной копии) |
Архивные элементы — ресурс | Ресурс |
Архивные элементы — настраиваемые поля ресурсов | Ресурс — настраиваемые поля |
Архивные данные проекта. Экспорт архивных проектов:
- Архивируйте текущий проект. (2010)
- Восстановите архивную версию. (2010)
- Экспорт данных, связанных с пользователем.
- Восстановите проект из архива.
Архивные данные, не относящиеся к проекту:
- Используйте резервное копирование и восстановление SharePoint (2010), чтобы создать клон текущей фермы.
- Восстановите архивные элементы из административной резервной копии и восстановления (см. предыдущую процедуру).
- Экспорт данных, связанных с пользователем.
Шаг 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, необходимо запустить от имени делегата экспортируемого пользователя, чтобы просмотреть сохраненное назначение. Это можно сделать следующим образом:
- Включение делегирования в Project Server
- Включение разрешений на делегирование для экспортируемого пользователя
- Включите разрешения делегирования для себя, чтобы делегировать от имени этого пользователя. (У вас, как администратора, возможно, уже есть разрешения.)
- Настройка себя в качестве делегата экспортируемого пользователя
- Войдите в Project Web App.
- Щелкните значок шестеренки и щелкните Действовать в качестве делегата.
- Запустите сеанс делегата.
- Запустите сценарий PowerShell Export-SavedTaskStatusUpdates201x.ps1.
- Остановите сеанс делегата.