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- SharePoint Server ファーム内のProject Web App インスタンスを見つける

手順 3- ユーザーのワークスペース項目をエクスポートする

手順 4 - 各 PWA サイトでユーザーのリソース ID または要求アカウントを見つける

手順 5 - 探しているユーザーを含むプロジェクトを検索する

手順 6 - データをエクスポートするための追加のクエリ

手順 7 - アーカイブ済みアイテム

手順 8 - 添付ファイル、ビュー、VBA ファイルを検索して保存する

プロセスの概要

特定のユーザーの情報をProject Web Appからエクスポートするプロセスの概要を次に示します。

  1. エクスポート スクリプトをダウンロードする: ユーザー データをエクスポートするための .sql スクリプトと Microsoft PowerShell スクリプトをダウンロードします。

  2. 環境内の PWA サイトを見つける: Project Server ファーム内のProject Web App インスタンスの一覧を見つけます。

  3. ユーザーのリソース ID を見つける: 各Project Web App インスタンスで、ユーザーの一意のリソース ID を見つけます。 ユーザー要求を指定することもできます。

  4. ユーザーのデータのエクスポートを実行する: scipts を使用して、確認する情報をエクスポートします。

    異なるバージョンの Project Server にスクリプトを使用する

この記事は、Project Server 2016、Project Server 2013、および Project Server 2010 に適用されます。 一般的なプロセスは 3 つのバージョンすべてに適用されますが、特に SQL スクリプトを実行する場合は、異なるバージョンに適用される可能性のある詳細があります。 以下のセクションで説明します。 ファームとProject Professional クライアントに最新の更新プログラムがデプロイされていることを確認します。

注:

プロジェクト作成者は、この記事の手順の一部としてエクスポートされません。

手順 1 - エクスポート スクリプト ファイルをダウンロードする

Microsoft ダウンロード センターからエクスポート スクリプトをダウンロードします。

ダウンロードには、Project Server のバージョンごとに個別のフォルダーを含む ZIP ファイルが含まれています。 以下の手順 5 で説明されているように、バージョンまたは Project Server のスクリプトを使用します。

エクスポート スクリプトの実行に関する重要な注意事項:

  • スクリプト フォルダーには、いくつかの .wsdl ファイルが含まれています。 これらは、PowerShell スクリプトで必要です。 実行するときに、それらが PowerShell スクリプトと同じディレクトリにあることを確認します。

  • SetupReportingProcedures201x.sql スクリプトは、SQL セッション内で使用可能な一部のグローバル ストアド プロシージャをメモリに一時的に作成します。 これらのストアド プロシージャは、次のスクリプトで必要です。

    • ExportReportingProject201x.sql

    • ExportReportingResource201x.sql

    • ExportTimesheetReporting201x.sql

注:

これらのスクリプトのいずれかを実行する前に、SetupReportingProcedures201x.sql を実行します。

  • 各スクリプトには、ユーザー ID やデータベース名など、それを実行する前に定義する必要がある 1 つ以上の変数があります。 スクリプト自体の説明セクションで、必要なパラメーターを確認します。

  • 情報が存在するデータベースのコンテキストで、各 .sql スクリプトを実行します。 データベースに対するdb_datareaderアクセス許可が必要です。

  • 既定では、インターネットからダウンロードしたスクリプトの実行が許可されていないため、zip ファイルのブロックを解除する必要がある場合があります。 ファイルのブロックを解除するには、次の操作を行います。

  1. エクスプローラーで、zip ファイルを保存した場所に移動します。

  2. zip ファイルを右クリックし、[ プロパティ] をクリックします。

  3. [ 全般 ] タブで、[ ブロック解除] を選択します。 ファイルのブロックを解除する。

  4. [OK] をクリックします。

    zip ファイルに含まれるすべてのファイルのブロックを解除する必要があります。 ファイルの [プロパティ] ページの [全般] タブに [ブロック解除] チェック ボックスが表示されなくなったかどうかを確認することで、個々のファイルでこれを確認できます。

    注:

    解凍されたファイルにのみアクセスできる場合は、各ファイルのブロックを個別に解除することもできます。

手順 2- SharePoint Server ファーム内のProject Web App インスタンスを見つける

次のフィルターでGet-SPProjectWebInstance コマンドレットを使用して、SharePoint Server ファームに存在する PWA サイトの URL、サイト ID、データベース名を取得します。

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

後の手順でユーザーの個人データを削除するときに、各サイトの情報が必要になります。

たとえば、サンプル Contoso Project Server ファームでコマンドレットを実行すると、次の 3 つの 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

SharePoint Server 2010 ファーム内のProject Web App インスタンスを検索する

Project Server 2010 の場合は、 Project Server PSI サービス アプリケーション のサービス アプリケーション ID も検索する必要があります。 これを行うには、次のパラメーターを使用して Get-ServiceApplication PowerShell コマンドレットを実行します。

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

これにより、Project Server サービス アプリケーションの名前も返されます。 その後、Get-SPProjectWebInstance コマンドレットを使用して、-ServiceApplication パラメーターでサービス アプリケーション名を指定することで、4 つの Project Server データベースの名前を返すことができます。

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

各データベースのデータベース名を参照できる必要があります。

注:

Project Server 2010 Reporting データベースは、他の 3 つのデータベースとは異なるSQL Serverインスタンスに配置できます。

手順 3 - ユーザーのワークスペース項目をエクスポートする

ExportWorkspaceItemsByDisplayName201x.sql スクリプトを実行し、ユーザーの表示名 (部分名検索) を使用してデータを検索します。

Project Server 2010 の Reporting データベース、またはそれ以降のバージョンの関連 PWA サイトのデータベースでスクリプトを実行します。 手順 1 で提供される結果の例では、3 つのProject Web App インスタンスのデータベースはすべて WSS_Content です。

スクリプトで次のパラメーターの値を指定します。

パラメーター 説明
@siteID (Project Server 2016のみ)
ユーザーのリソース ID を検索するサイトの PWA サイト ID。 手順 1 で PWA サイトの PWA サイト ID の値が見つかりました。
@resDisplayName
Project Server ユーザーの表示名 (部分的な表示名)。

手順 4 - 各 PWA サイトでユーザーのリソース ID または要求アカウントを見つける

Project Server ファーム上のすべての PWA サイトの情報を取得したら、次に、個人データを削除するユーザーのリソース ID (ResID) またはクレーム アカウントを見つける必要があります。 手順 1 で検出した各 PWA サイトでこれを行います (各 PWA インスタンスで REsID が異なるため)。

FindUser201x.sql SQL スクリプトを実行して、ユーザーのリソース ID または要求アカウントを検索します。

注:

SQL Server Management Studioで FindUser201x.sql SQL スクリプトを実行する必要があり、適切なデータベースにアクセスするにはファーム管理者のアクセス許可が必要です。

Project Server 2010 の発行済みデータベース、またはそれ以降のバージョンの関連 PWA サイトのデータベースでスクリプトを実行します。 手順 1 で提供される結果の例では、3 つのProject Web App インスタンスのデータベースはすべて WSS_Content です。

スクリプトで次のパラメーターの値を指定します。

パラメーター 説明
@siteID (Project Server 2016のみ)
ユーザーのリソース ID を検索するサイトの PWA サイト ID。 手順 1 で PWA サイトの PWA サイト ID の値が見つかりました。
@searchName
Project Server ユーザーの表示名。

たとえば、手順 1 の例で見つけた Contoso PWA1 サイトで Adam Barr の userID を検索する場合は、スクリプト内のパラメーターの値を次のように編集します。

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

スクリプトは、ユーザーのリソース名、リソース ID、電子メール アドレス、および要求アカウントの値を返します。

手順 5 - 探しているユーザーを含むプロジェクトを検索する

手順 4 で見つけたリソース ID を使用して、ユーザーが関与していたプロジェクトを見つけることができます。 これを行うには、SQL スクリプトを使用して、プロジェクトの一覧に格納されている Project データを照会します。

Project Server のデータ ストアごとに個別のスクリプトがあります。 スクリプトの結果は似ている可能性がありますが、公開されていない下書きプロジェクトがある場合は、いくつかの違いが表示される場合があります。

スクリプトを実行する前に、探しているリソース ID でスクリプトを更新します。

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
QueueJobs
CustomFields
LookupTables
予定表
UnsubscribedAlerts
SubscribedReminders
ReminderEmails
代表 団
進捗レポート
ExportStatusReports2010.sql
StatusReports
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
Resource
ReportingResource
セキュリティ
ExportSecurity2013.sql
セキュリティ
サービス設定
ExportServerSettings2013.sql
QueueJobs
CustomFields
LookupTables
予定表
UnsubscribedAlerts
SubscribedReminders
ReminderEmails
代表 団
進捗レポート
ExportStatusReports2013.sql
StatusReports
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
Resource
ReportingResource
セキュリティ
ExportSecurity2016.sql
セキュリティ
サービス設定
ExportServerSettings2016.sql
QueueJobs
CustomFields
LookupTables
予定表
UnsubscribedAlerts
SubscribedReminders
ReminderEmails
代表 団
進捗レポート
ExportStatusReports2016.sql
StatusReports
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 (アーカイブ バージョン ID)
ProjectVersionDescription (バックアップの日付と時刻)
ProjectVersionDate (バックアップの日付)
アーカイブ済みアイテム - リソース Resource
アーカイブ済みアイテム - リソース のユーザー設定フィールド リソース - カスタム フィールド

アーカイブされたプロジェクト データ: アーカイブされたプロジェクトをエクスポートするには:

  1. 現在のプロジェクトをアーカイブします。 (2010)
  2. アーカイブされたバージョンを復元します。 (2010)
  3. ユーザー関連のデータをエクスポートします。
  4. プロジェクトをアーカイブから復元します。

アーカイブされたプロジェクト以外のデータ:

  1. SharePoint のバックアップと回復 (2010) を使用して、現在のファームの複製を作成します。
  2. 管理バックアップと復元からアーカイブ済みアイテムを復元します (前の手順を参照)。
  3. ユーザー関連のデータをエクスポートします。

手順 8 - 添付ファイル、ビュー、VBA ファイルを検索して保存する

添付ファイルとビューを検索するには、特定のプロジェクトを XML にエクスポートすることをお勧めします。 これを行うには、Project Professionalで開き、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 PWA サイトの URL
ResId ユーザーのリソース ID
OutputPath エクスポート ファイルを格納する場所。
ProjectId 同期するプロジェクト ワークスペース

また、スクリプトを実行するたびに、次のいずれかの承認パラメーターを含めます。

Auth パラメーター 説明
[何も渡されない] NTLM と Kerberos プロトコルを現在のユーザーとして使用して認証します。
PromptForCredential Basic またはダイジェスト プロトコルを使用するか、別のユーザーで NTLM や Kerberos を使用して認証します。
UseWebLogin フォームと 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. Export-SavedTaskStatusUpdates201x.ps1 PowerShell スクリプトを実行します。
  9. デリゲート セッションを停止します。

関連項目

Project Server からユーザー データを削除する