Power Shell を使用して SharePoint Server ワークフローを Power Automate に移行する

Microsoft は、2020 年 11 月 1 日に既存のテナントから SharePoint Server 2010 ワークフロー サービスを削除しました。 従来の SharePoint Server ワークフローを Power Automate フローに移行することをお勧めします。

これで、次のものを移行できるようになりました。

  • 既定 (OOTB) のSharePoint Server 2010 の承認と PowerAutomate へのフィードバック収集ワークフロー。
  • リストやライブラリの "既定" (OOTB) の承認ワークフロー
  • ワークフローの定義と関連付け

注:

SharePoint Designer または SharePoint Server 2013 を使用して作成されたワークフローは現在サポートされていません。

注:

SPMT を使用してワークフローを移行するには、「SPMT を使用して SharePoint Server 2010 ワークフローを Power Automate に移行する」を参照してください。

始める前に

ワークフローの移行を開始する前に、まず次の手順を実行する必要があります。

  • 必要なエンドポイントを構成します。
  • Power Automate を構成します。 このテナントで Power Automate を使用したことがない場合は、移行開始前に構成する必要があります。 Microsoft Edge または Internet Explorer の使用をお勧めします。

詳細な手順については、次を参照してください。

ワークフローのスキャン

このコマンドは、特定のサイトまたはリストのワークフローをスキャンし、スキャン レポートを生成します。


Register-SPMTMigration -ScanOnly $true -SPOCredential $targetCredential -UserMappingFile $userMappingFile -MigrationType WORKFLOW -DefaultFlowOwnerEmail  $defaultOwnerName -Force
...
Start-SPMTMigration

ワークフローの移行

このコマンドは、次の処理を実行します。

  • サイトまたはリストのワークフローを移行する
  • 移行パッケージを生成する
  • パッケージを Power Automate にインポートし、
  • 移行レポートを生成します。

MigrationType

MigrationType が WORKFLOW のとき、構造がまだ移行されていない場合、コマンドはサイト構造またはリスト構造 (コンテンツではない) を移行し、ワークフローを移行します。

DefaultFlowOwnerEmail

ワークフロー定義に所有者がいないため、OOTB 承認ワークフローには既定のフロー所有者が必要です。 移行後は、フロー所有者と Power Automate 管理者だけが移行されたフローにアクセスできます。 指定された所有者の電子メールが移行先の有効なユーザーでない場合、移行は失敗します。 また、フロー所有者は、宛先 SPO リストにアクセスするためのアクセス許可を持っている必要があります。


> Register-SPMTMigration -SPOCredential $targetCredential -UserMappingFile $userMappingFile -MigrationType WORKFLOW -DefaultFlowOwnerEmail $defaultOwnerName -Force
...
Start-SPMTMigration

PowerShell のサンプル スクリプト


Import-Module "$((Resolve-Path .\).Path)\Microsoft.SharePoint.MigrationTool.PowerShell.dll"

clear
Remove-Variable * -ErrorAction SilentlyContinue

$currentFolder = (Resolve-Path .\).Path
$userMappingFile = "$($currentFolder)\Sample-UserMap.csv"
$defaultOwnerName = "please enter flow owner email here"

$targetSite = "please enter destination site URL here"
$targetUserName = "please enter destination site admin user email here"
$targetPassWord = ConvertTo-SecureString -String "please enter destination user password here" -AsPlainText -Force 
$targetCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $targetUserName, $targetPassWord

Register-SPMTMigration -SPOCredential $targetCredential -UserMappingFile $userMappingFile -IgnoreUpdate -MigrationType WORKFLOW -DefaultFlowOwnerEmail $defaultOwnerName -Force

$sourceSite = "please enter source site URL here"
$sourceUsername = "please enter source site admin username here"
$sourcePassword = ConvertTo-SecureString -String "please enter destination user password here" -AsPlainText -Force
$sourceCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $sourceUsername, $sourcePassword
Add-SPMTTask -SharePointSourceCredential $sourcecredential -SharePointSourceSiteUrl $sourceSite -TargetSiteUrl $targetSite `
#-SourceList "please enter source list name here" -TargetList "please enter destination list name here"

Write-Host "Start migration"
$StartTime = [DateTime]::UtcNow

# Let the migration run in background using NoShow mode
Start-SPMTMigration

$migration = Get-SPMTMigration

# open report folder
start $migration.ReportFolderPath