ShareGate アップデート情報紹介（PowerShellを使ったメール移行） 

## はじめに
Microsoft 365 への移行において、多くの現場で利用されているツールが「ShareGate」です。直感的な操作性と高い移行性能で知られており、特に最近では、PowerShellとの連携機能が強化されたことで、より柔軟で効率的なメール移行が可能になりました。 

本記事では、ShareGateの最新アップデートのポイントを紹介するとともに、PowerShellを活用したメール移行の具体的な手順、そして実際の活用事例やスクリプト集を交えて詳しくご紹介します。

## 目次 
1. ShareGateとは？ 
2. アップデートで強化されたポイント 
3. PowerShellでのメール移行がどう変わったか 
4. 活用事例のご紹介 
5. PowerShellスクリプト集 
6. まとめ 

## １．ShareGateとは？ 
![dm08162023-data-migration-best-practices.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3987440/d316300c-7730-44c6-9101-b144276134fd.png)


ShareGateは、SharePointやTeams、OneDriveなどのMicrosoft 365関連サービスへの移行を行えるツールです。 

主に以下のような環境からの移行に対応しています： 
 ・SharePoint Server（オンプレミス） → Microsoft 365（クラウド） 
 ・OneDrive for Business（旧テナント） → 新テナント 
 ・Microsoft Teams間の移行（テナント間・チーム間） 
 ・ファイルサーバー → SharePoint または OneDrive  

ファイルの移行だけでなく、権限やメタデータも保持したまま移行できる点が特長で、多くの企業や教育機関で採用されています。 
直感的な操作画面と豊富なログ機能により、移行作業を「見える化」できる点も大きな魅力です。 

## ２．アップデートで強化されたポイント
ShareGateが、2024年12月10日に バージョン24.12.1 をリリースし、PowerShellを用いたメール移行機能において大きなアップデートが行われました。 

#### 2.1　新しいPowerShellコマンドの導入 
![PowerShell-1536x864.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3987440/7474d53b-f1a4-4324-9576-5c85bf8a24b5.jpeg)

ShareGate 24.12.1では、Copy mailboxes 操作を自動化するための新しいPowerShellコマンドが追加されました。 

これにより、メールボックス移行がスクリプトでより柔軟にコントロールできるようになり、夜間や休日など、業務に支障が出にくいタイミングでの自動移行にも対応しやすくなります。 

#### 2.2　レポート機能の改善 
![Mailbox-Copy-success.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3987440/ca5ee83b-9500-4f96-b2b1-c0bcd64923ec.png)
メール移行後のレポート出力が強化され、以下のように情報を明確に把握できるようになりました。 

・移行の概要レポート：全体の移行状況を一目で確認 
・個別レポート：各メールボックスの詳細ログでエラーや進捗を把握 

#### 2.3　不具合の修正 
今回のアップデートでは、以下のような不具合も解消されています： 
・PowerShellで表示されていたLaunchDarklyのログが非表示 
→ 作業中の画面が見やすくなり、ログの確認もスムーズに。 

・保存したセッション再開時のエラー改善 
→ 「Fail to load mailboxes」エラーが発生せず、正常にテナントへ再接続可能に。 

## 3．PowerShellでのメール移行がどう変わったか 
![Mailbox-mapping-unmapped.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3987440/b569f9ec-ddf7-42bc-9706-0e4475fa26df.png)
従来からPowerShellとの連携は可能でしたが、今回のアップデートにより以下のような点で明確に利便性が向上しています。


|項目  |アップデート前  |24.12.1アップデート後  |
|---|---|---|
|コマンドの柔軟性   |限定的な操作   |Mailbox移行に特化した新コマンドを提供 |
|ログ出力  |全体的に一括  |メールボックスごとの詳細レポート付き  |
|セッション管理  |エラーで中断することも  |自動的にテナント再接続  |

これにより、現場での手戻りや確認作業の負担が減り、作業全体の信頼性がアップしています。 

## 4．活用事例のご紹介 

#### 4.1　グループ企業の統合プロジェクト 
複数の子会社を1つのMicrosoft 365テナントへ統合する際に、ShareGate + PowerShellでメールボックス移行を段階的に実施。計画的に200名以上の移行を行い、週末ごとのバッチ移行で業務に影響を与えることなく完了しました。 

#### 4.2　教育資料や研修レポートの作成 
大学のITチームが、教職員の旧アカウントから新システムへの移行を夜間に自動化。PowerShellスクリプトを利用し、学部ごとの処理スケジュールを組んで移行を効率化しました。 

## 5． PowerShellスクリプト集 
よく使われる基本的なスクリプト例をご紹介します。 

#### 5.1　基本的なメール移行スクリプト
以下のスクリプトは、1人のユーザーのメールボックスを旧テナントから新テナントへ移行する処理を行います。 

```powershell
# ShareGate モジュールの読み込み 
Import-Module ShareGate 

# 認証情報の取得（実行時に入力プロンプトが出ます） 
# 移行元テナントの管理者アカウント（例: admin@oldtenant.onmicrosoft.com）
$source = Get-Credential

# 移行先テナントの管理者アカウント（例: admin@newtenant.onmicrosoft.com）
$destination = Get-Credential

# メール移行の実行（InboxとSent Itemsのみを対象） 
Start-EmailMigration ` 
  -Source "user1@old.com" ` 
  -Destination "user1@new.com" ` 
  -SourceCredentials $source ` 
  -DestinationCredentials $destination ` 
  -IncludeFolders "Inbox", "Sent Items" ` 
  -LogPath "C:\Logs\user1.log" 
```
このスクリプトでは、送信元と送信先のアカウントを指定し、InboxとSent Itemsのみを移行対象にしています。ログファイルも指定のフォルダに保存されます。 

#### 5.2　複数ユーザー一括処理（CSV利用） 
大量のユーザーを一括で移行する場合には、CSVファイルで情報を管理し、繰り返し処理を行うスクリプトが便利です。 

```powershell
# ユーザー一覧をCSVから読み込む
$users = Import-Csv "C:\MigrationList.csv"

# 認証情報を一度だけ入力して使い回す
$sourceCred = Get-Credential -UserName "admin@oldtenant.onmicrosoft.com"       # 移行元管理者
$destCred   = Get-Credential -UserName "admin@newtenant.onmicrosoft.com"       # 移行先管理者

foreach ($u in $users) { 
    Start-EmailMigration ` 
      -Source $u.SourceEmail ` 
      -Destination $u.DestinationEmail ` 
      -SourceCredentials (Get-Credential -UserName $u.SourceAdmin) ` 
      -DestinationCredentials (Get-Credential -UserName $u.DestinationAdmin) ` 
      -IncludeFolders "Inbox" ` 
      -LogPath "C:\Logs\$($u.DestinationEmail).log" 
} 
```

#### ・CSVの構成例: 

```csvs
SourceEmail,DestinationEmail
user1@old.com,user1@new.com
user2@old.com,user2@new.com
```
※ この例では管理者アカウントはスクリプト内に記述し、ユーザーごとのメールアドレスのみCSVに記載しています。

この方法なら、数百件以上の移行も自動で実行できます。管理者の負担も軽減され、人的ミスも防げます。 

詳しくは以下のShareGateのPowerShell記事集をご参照ください： 
https://help.sharegate.com/en/collections/11073311-powershell 
ShareGate公式のPowerShellドキュメントには、より詳細なコマンド解説や実例が豊富に掲載されています。自社のニーズに応じてカスタマイズしたスクリプトを組む際にも、非常に役立ちます。 

## 6.まとめ 
今回の ShareGate Migrate 24.12.1 は、メールボックス移行の効率化と安定性に大きく貢献するアップデートです。 
特に、PowerShell連携の強化によって、より高度なスクリプト運用が可能となり、大量移行や段階的な運用にも柔軟に対応できます。 

「スムーズに、安全に、確実に」── 

移行作業を成功させるための選択肢として、ShareGateの最新版をぜひ活用してみてください。 

## 最後に 
テンダでは、「こんなプロジェクトに挑戦したい」「こんなチームで働きたい」「理想のチームを創りたい」と願う仲間を求めています。 
カジュアル面談も随時受付中です。ぜひ一度お話ししましょう。 

[募集職種一覧 ](https://hrmos.co/pages/tenda/jobs)
[カジュアル面談の申込 ](https://hrmos.co/pages/tenda/jobs/031002/apply)
[テンダで働く人や社風について ](https://note.com/tenda_recruit)