SharePoint モダン化スキャナーを使い始める

SharePoint モダン化スキャナーを使用すると、従来のサイトでモダン化の準備が行えます。 スキャナーは、以下のモダン化の作業の準備を行います。

  • モダン リストとライブラリの使用状況の最適化
  • これらのサイトを Microsoft 365 のグループに接続する
  • モダン サイト ページを作成して Wiki ページと Web パーツ ページをモダン化する
  • クラシック発行ポータルをモダン発行ポータルとして再構築する
  • InfoPath が使用されている場所の概要
  • 従来のブログ ページの使用方法の概要

このスキャナーは、サイトをモダン化する場合の難易度を実際のデータで示すことができるため、クラシック サイトをモダン化する準備のために使用する中心的なツールです。 スキャナーで生成されたダッシュボードを使用すると、サイトの「モダン化の準備状態」を正確に把握し、必要な対策の計画を適宜立てることができます。

注:

重要

モダン化ツールと他のすべての PnP コンポーネントは、それらをサポートしてくれるアクティブなコミュニティによって支援されているオープン ソース ツールです。 公式の Microsoft サポート チャネルのオープン ソース ツールのサポート用 SLA ではありません。

手順 1: SharePoint モダン化スキャナーの最新バージョンを入手する

SharePoint Online はより多くのモダン機能を追加しながら継続的に進化しているため、スキャナーの最新バージョンを常時ダウンロードする必要があります。 SharePoint モダン化スキャナー実行ファイルをダウンロードして、使用を開始します。 このページとそれにリンクされている他のページには、開始するためのすべての情報と、すべてのレポートの詳細、FAQ も含まれています。

手順 2: スキャンの準備

一般的なスキャンでは、すべてのサイト コレクションをスキャンする必要があるため、テナント スコープのアクセス許可を持つアプリ専用プリンシパルを使用してスキャンすることをお勧めします。 この方法を使うと、スキャナーはすべてのサイトに確実アクセスできます。アカウント (たとえば、SharePoint テナント管理者アカウント) を使用する場合は、スキャナーがアクセスできるサイトはこのアカウントがアクセスできるサイトに限られます。 アプリ専用のアクセスには、Azure AD アプリケーションまたはSharePoint アプリ プリンシパルを使用できます。以下のリンクは、手動で設定する方法を示しています。 推奨される方法は Azure AD アプリ専用であるため、 PnP PowerShellInitialize-PnPPowerShellAuthentication コマンドレットを使用して Azure AD アプリケーションのセットアップを簡単に行うことができます。 詳細については、「Initialize-PnPPowerShellAuthentication を使用して Azure AD アプリ専用をセットアップする」 の章を参照してください。

重要

Azure AD アプリ専用を選択する場合は、上記の手順で Azure AD アプリに Sites.FullControl.All 権限を付与します。これは、すべての スキャン コンポーネントを実行する場合に必要です。 ワークフロー スキャンに興味がない場合は、バージョン 2.6 以降、Sites.Read.All を権限として使用することもできます。 Teams チームがリンクされているサイト コレクションについてレポートする場合は、Group.Read.All 権限も追加する必要があります (バージョン 2.7 以降)。

準備作業が完了したら、スキャンの実行に進みます。

Initialize-PnPPowerShellAuthentication を使用して Azure AD アプリ専用をセットアップする

PnP PowerShell を使用して Azure AD アプリ専用を構成するには、次の手順を実行します。

  1. PnP PowerShell をインストールするか、2020 年 4 月またはそれより新しいバージョンに更新します。
  2. Initialize-PnPPowerShellAuthentication コマンドレットを使用して Azure AD アプリをセットアップする:
Initialize-PnPPowerShellAuthentication -ApplicationName ModernizationScannerApp -Tenant contoso.onmicrosoft.com -Scopes "SPO.Sites.FullControl.All","MSGraph.Group.Read.All"  -OutPath c:\temp -CertificatePassword (ConvertTo-SecureString -String "password" -AsPlainText -Force)
  1. 認証を求められます。テナント管理者のユーザーで認証されていることを確認します
  2. コマンドレットは Azure AD アプリをセットアップし、アプリの作成を処理するための Azure AD 時間を与えるために 60 秒待ちます
  3. 作成された Azure AD アプリケーションに付与された権限に同意するよう求められます:
    1. 最初に、もう一度ログインするように求められます。テナント管理者アカウントを使用してください
    2. 次に、同意ダイアログが要求された権限で表示されます (次のスクリーンショットを参照)。 [Accept] をクリックします
  4. 返された AzureAppId、作成された PFX ファイル、およびパスワードを安全な場所に保存します。次の章の説明に従って使用する必要があります。「Azure AD アプリ専用で認証」 を参照してください

スキャナーの同意

手順 3: ユーザー インターフェイスのオプションを使用してスキャンを起動する

最も簡単な方法は、スキャナーに備わっている UI を使用して SharePoint.Modernization.Scanner.exe を起動する方法です。 別の方法として、(PowerShell) コマンド プロンプトを起動して同フォルダーに移動し、コマンド ラインでスキャナーを使用する方法もあります。 この章では、UI を使用して標準的なフル スキャンを行う手順を説明します。 最初に、SharePoint.Modernization.Scanner.exe を起動します。

1 ページ目: スキャナー認証の構成

Azure AD アプリ専用経由での認証

モダン化スキャナー ウィザードの最初のページで、認証情報を求められます。 スキャナーでは 4 つのオプションが利用可能です。次に示すように、目的のオプションを選択して必要な情報を入力します。 スキャンする必要があるサイトすべてにスキャナーがアクセスできるように、アプリ専用モデルの使用をお勧めします。

Azure AD アプリ専用

Azure AD アプリ専用経由でアクセス権を設定 した場合、Azure アプリが作成され、アクセスの証明書が構成されます。 この情報をツールに提供する必要がありあります。

  • Azure AD Application ID: Azure AD 環境で作成されたアプリケーションの ID
  • Azure AD Domain name: Azure AD 環境の既定のドメイン。 この情報は、Azure AD 管理センターの概要ページから確認することができます。 通常、このドメインは *.onmicrosoft.com として書式設定されます (例: contoso.onmicrosoft.com)。
  • Certificate file: Azure AD に対してアプリ専用アクセスを許可する証明書。証明書ファイルは、パスワード保護された PFX ファイルとして提供する必要があります。
  • Password for the PFX file: 以前に提供した PFX ファイルを保護するために使用したパスワード
  • 認証領域: 使用しているテナントが米国政府機関 (ITAR)、ドイツ、中国のクラウド環境にある場合は、それぞれの地域を選びます。

注:

コンピューターに証明書をインストールし、-w コマンドライン パラメーターを使用してそれを参照することもできます。 証明書を参照するには、-w パラメーターに値 「My|CurrentUser|1FG498B468AV3895E7659C8A6F098FB701C8CDB1」を使用します。 My/Root および CurrentUser/LocalMachine を使用して、ストアを特定できます。 最後の引数は、証明書の拇印です。 このオプションは 2.7 リリース以降で使用できます。 LocalMachine を使用している場合は、スキャナーに LocalMachine ストアで読み取る権限があることを確認する必要があります。 これを行うには、管理者特権でスキャナー プロセスを実行するか、代わりに (さらに優れた方法で)、使用しているアカウントに、LocalMachine ストアに格納されている証明書の秘密キーを読み取るためのモダン化スキャンのアクセス許可を付与します。

重要

  • Azure AD アプリに、すべてのスキャン コンポーネントを実行する場合に必要な Sites.FullControl.All 権限を付与するための既定の手順。 ワークフロー スキャンに興味がない場合は、SharePoint モダン化スキャナーのバージョン 2.6 以降、Sites.Read.All を権限として使用することもできます。
  • Azure AD App-Only は、米国政府 (ITAR)、ドイツ、中国のクラウド環境のテナントに対して唯一サポートされている認証オプションです。

SharePoint AD アプリ専用経由での認証

SharePoint アプリ専用

従来型の SharePoint アプリ専用を使用する方法を選択した場合は、次の情報を指定する必要があります。

  • Azure ACS Client ID: 作成されたアプリ専用プリンシパルの ID
  • Azure ACS Client Secret: アプリケーション プリンシパルを作成したときに取得したシークレット

資格情報による認証

資格情報

標準のユーザー名とパスワードの組み合わせを使用します (提供したユーザーが必要なアクセス許可を持っていることが前提です)。 スキャナーのバージョン 2.9 以降、ユーザー名とパスワード ベースの認証は、スキャンされたテナントで有効になっているレガシ認証に依存しなくなりました。 この種の認証が機能しないのは、使用するアカウントが多要素認証を必要とする場合のみです。 このような場合は、バージョン 2.9 以降で導入された多要素認証オプションを使用してください。

多要素認証を使用して認証する (バージョン 2.9 以降)

MFA

管理者を使用しているテナントとアカウントによっては、SharePoint Online にログインするために多要素認証が必要になる場合があります。 ユーザーの資格情報を使用してスキャナーを使用する場合は、このオプションを使用する必要があります。 アプリ専用のアプローチの使用もお勧めしますが、アプリ専用のセットアップに必要な権限がない場合は、このアプローチでは、ユーザーとして権限を持つサイト コレクションをスキャンできます。 これを使用するには、次の必要があります:

  • スキャンするサイトの URL を入力します (アクセスしたサイトはすべて問題ありません)
  • [ログイン] ボタンをクリックすると、多要素認証の流れがトリガーされます

注:

多要素認証を使用すると、正常にログインした後に、スキャナーにアクセス トークンが割り当てられます。 アクセス トークンの有効期間は制限されているため (通常は1時間)、トークンが有効な間のみ、スキャンが SharePoint サイトにアクセスできます。

2 ページ目: スキャナーのサイト範囲の構成

テナント全体をスキャンする

このページでは、スキャン対象のサイトを定義できます。 スキャナーでは、テナント全体のスキャンから、個別に選択したサイト コレクションのスキャンまでサポートされています。

テナント全体

テナントの完全なスキャンを行うとモダン化レポートが作成されるため、多くの場合この方法が推奨されます。 この方法を選択する場合は、テナント名を入力するだけで済みます。 テナントが sharepoint.com で終わらない URL を使用 している場合はこの方法は利用できません。該当する場合は、以下の 2 つの方法のうちいずれかを使用する必要があります。

定義されたサイト コレクションの一覧をスキャンする

ワイルドカード URL

このオプションでは、次のうちどちらかを提供して 1 つまたは複数のサイト コレクションを選択できます。

  • スキャン対象のサイト コレクションの完全修飾 URL
  • ワイルドカード URL: アスタリスクで終わる URL を追加すると、そのフィルターに一致するすべてのサイトを含められます。 アスタリスクで終わるワイルドカード URL のみを利用できます

sharepoint.com で終わっていない URL (バニティ URL) を使用している場合は、 https://contoso-admin.contoso.comテナント管理センター サイトの URL (たとえば) も指定する必要があります。

CSV ファイルで定義されているサイト コレクションの一覧をスキャンする

CSV ファイル

3 番目のオプションでは、スキャン対象のサイト コレクションを一覧表示する CSV ファイルをスキャナーに提供します。 この例が示すように、この CSV ファイルはヘッダーがないサイト コレクションのシンプルなリストです:

https://contoso.sharepoint.com/sites/hrteam
https://contoso.sharepoint.com/sites/funatwork
https://contoso.sharepoint.com/sites/opensourcerocks

3 ページ目: スキャナー モードの構成

SharePoint モダン化スキャナーでは複数のモードが利用できます。モダン化のモードに合わせて、スキャンする範囲を一部の場所に限ったり、または全体をスキャンしたりできます。

スキャナー モード

ドロップダウン リストで目的のオプションを選択すると、選択したスキャンに含まれるコンポーネントのチェック ボックスがオンになります。 「Microsoft 365 グループ接続の準備状態」コンポーネントは中心的なコンポーネントであるため、すべてのスキャン モードに含まれます。

4 ページ目: スキャナーのオプション

最後のステップでは、スキャナー オプションの詳細を調整することができます。 先ほど選択したスキャナーのモードによっては、一部のオプションが無効になっている場合があります。

スキャナーのオプション

次のスキャン オプションが使用できます。

  • Number of threads: 実行されるスキャンはマルチ スレッドで既定値は 10ですが、大規模なスキャンではスレッド数を 20 - 30 にするとパフォーマンスが上がります (効果にばらつきがある場合があります)
  • Don't use search: ページやサイトの使用状況の情報が必要な場合には、このオプションの選択を解除できます。 サイト コレクションごとに検索クエリが 1 つ追加されるので、スキャンがわずかに低速化します
  • Don't include user information: 作成されたデータにユーザー情報 (ユーザー名) 表示する必要がない場合はこのボックスをオンにします
  • Exclude lists: [モダン リストとライブラリ エクスペリエンス] スキャンでは、アウトオブボックス に関する理由だけでブロックされているリストを除外することができます
  • Export page details: Web パーツの詳細情報 (Web パーツ プロパティ) のデータセットは巨大になる場合があるので、既定ではスキャンからエクスポートされません。 Web パーツ オプションの完全なデータが必要な場合は、このボックスをオンにします
  • Don't generate reports: 既定では、スキャンは Excel ベースのダッシュボードを出力しますが、生の CSV ファイルのみが必要な場合は、Excel レポートを省略できます
  • Disable feedback: スキャナーは、スキャナーの性能を向上させる目的で Microsoft にフィードバックを送信します。 希望しない場合は、このボックスをオンにします
  • Separator: 生成された CSV ファイルの既定の区切り記号はコンマですが、希望する場合はこれをセミコロンに変更できます。
  • Date format: 生成された CSV ファイルの既定の日付形式は月/日/年です。 オプションでこれを日/月/年に切り替えることができます

手順 3 (別のオプション): コマンドラインを使用してスキャンを開始する

以下に、ほとんどのお客様にご利用いただける、ツールの既定の使用方法を示します: モード、テナント名、作成されたクライアント ID、およびシークレットを指定します:

SharePoint.Modernization.Scanner.exe -t <tenant> -i <clientid> -s <clientsecret>

実例:

SharePoint.Modernization.Scanner.exe -t contoso -i 7a5c1615-997a-4059-a784-db2245ec7cc1 -s eOb6h+s805O/V3DOpd0dalec33Q6ShrHlSKkSra1FFw=

上記の使い方ではスキャンのオプションがすべて実行されますが、Mode パラメーター (-m) を使用してスキャンの対象を絞ることもできます。

SharePoint.Modernization.Scanner.exe -m <mode> -t <tenant> -i <clientid> -s <clientsecret>

実例:

SharePoint.Modernization.Scanner.exe -m GroupifyOnly -t contoso -i 7a5c1615-997a-4059-a784-db2245ec7cc1 -s eOb6h+s805O/V3DOpd0dalec33Q6ShrHlSKkSra1FFw=

利用できるスキャナー モード

モード 説明
Full すべてのコンポーネントが含まれます。-m を省略しても同じ結果が得られます。
GroupifyOnly Microsoft 365 グループ接続の準備状態コンポーネントのみを使用します。このコンポーネントは、各スキャンの一部です
ListOnly リストの詳細スキャンおよび Microsoft 365 グループ接続の準備状態コンポーネントが含まれます
HomePageOnly Wiki ページ と Web パーツ ページ ホーム ページのスキャンおよび Microsoft 365 グループ接続の準備状態コンポーネントが含まれます
PageOnly Wiki ページ と Web パーツ ページのスキャンおよび Microsoft 365 グループ接続の準備状態コンポーネントが含まれます
PublishingOnly サイト レベルおよび Web レベルでのクラシック発行ポータルのスキャンおよび Microsoft 365 グループ接続の準備状態コンポーネントが含まれます
PublishingWithPagesOnly サイト レベル、Web レベル、およびページ レベルでのクラシック発行ポータルのスキャンおよび Microsoft 365 グループ接続の準備状態コンポーネントが含まれます
InfoPathOnly InfoPath スキャンおよび Microsoft 365 グループ接続の準備状態コンポーネントが含まれます
BlogOnly ブログ スキャンおよび Microsoft 365 グループ接続の準備状態コンポーネントが含まれます
CustomizedFormsOnly カスタマイズされたフォームのスキャンおよび Microsoft 365 グループ接続の準備状態コンポーネントが含まれます

注:

ワークフロー 2013 の使用状況の評価は、Microsoft 365 Assessment ツールを使用して行う必要があります

コマンドライン パラメーターの概要

SharePoint PnP Modernization scanner 2.19.0.0
Copyright (C) 2020 SharePoint PnP
==========================================================

See the sp-dev-modernization repo for more information at:
https://github.com/SharePoint/sp-dev-modernization/tree/master/Tools/SharePoint.Modernization

Let the tool figure out your urls (works only for SPO MT):
==========================================================
Using Azure AD app-only:
SharePoint.Modernization.Scanner.exe -t <tenant> -i <your client id> -z <Azure AD domain> -f <PFX file> -x <PFX file
password>
e.g. SharePoint.Modernization.Scanner.exe -t contoso -i e5808e8b-6119-44a9-b9d8-9003db04a882 -z conto.onmicrosoft.com
-f apponlycert.pfx -x pwd

Using app-only:
SharePoint.Modernization.Scanner.exe -t <tenant> -i <your client id> -s <your client secret>
e.g. SharePoint.Modernization.Scanner.exe -t contoso -i 7a5c1615-997a-4059-a784-db2245ec7cc1 -s
eOb6h+s805O/V3DOpd0dalec33Q6ShrHlSKkSra1FFw=

Using credentials:
SharePoint.Modernization.Scanner.exe -t <tenant> -u <your user id> -p <your user password>

e.g. SharePoint.Modernization.Scanner.exe -t contoso -u spadmin@contoso.onmicrosoft.com -p pwd

Specifying url to your sites and tenant admin (needed for SPO with vanity urls):
================================================================================
Using Azure AD app-only:
SharePoint.Modernization.Scanner.exe -r <wildcard urls> -a <tenant admin site>  -i <your client id> -z <Azure AD
domain> -f <PFX file> -x <PFX file password>
e.g. SharePoint.Modernization.Scanner.exe -r "https://teams.contoso.com/sites/*,https://my.contoso.com/personal/*" -a
https://contoso-admin.contoso.com -i e5808e8b-6119-44a9-b9d8-9003db04a882 -z conto.onmicrosoft.com  -f apponlycert.pfx
-x pwd

Using app-only:
SharePoint.Modernization.Scanner.exe -r <wildcard urls> -a <tenant admin site> -i <your client id> -s <your client
secret>
e.g. SharePoint.Modernization.Scanner.exe -r "https://teams.contoso.com/sites/*,https://my.contoso.com/personal/*" -a
https://contoso-admin.contoso.com -i 7a5c1615-997a-4059-a784-db2245ec7cc1 -s
eOb6h+s805O/V3DOpd0dalec33Q6ShrHlSKkSra1FFw=

Using credentials:
SharePoint.Modernization.Scanner.exe -r <wildcard urls> -a <tenant admin site> -u <your user id> -p <your user
password>
e.g. SharePoint.Modernization.Scanner.exe -r "https://teams.contoso.com/sites/*,https://my.contoso.com/personal/*" -a
https://contoso-admin.contoso.com -u spadmin@contoso.com -p pwd


  -i, --clientid                           Client ID of the app-only principal used to scan your site collections

  -s, --clientsecret                       Client Secret of the app-only principal used to scan your site collections

  -u, --user                               User id used to scan/enumerate your site collections

  -p, --password                           Password of the user used to scan/enumerate your site collections

  -z, --azuretenant                        Azure tenant (e.g. contoso.microsoftonline.com)

  -y, --azureenvironment                   (Default: Production) Azure environment (only works for Azure AD Cert
                                           auth!). Possible values: Production, USGovernment, Germany, China

  -f, --certificatepfx                     Path + name of the pfx file holding the certificate to authenticate

  -x, --certificatepfxpassword             Password of the pfx file holding the certificate to authenticate

  -a, --tenantadminsite                    Url to your tenant admin site (e.g. https://contoso-admin.contoso.com): only
                                           needed when your not using SPO MT

  -t, --tenant                             Tenant name, e.g. contoso when your sites are under
                                           https://contoso.sharepoint.com/sites. This is the recommended model for
                                           SharePoint Online MT as this way all site collections will be scanned

  -r, --urls                               List of (wildcard) urls (e.g.
                                           https://contoso.sharepoint.com/*,https://contoso-my.sharepoint.com,https://co
                                           ntoso-my.sharepoint.com/personal/*) that you want to get scanned. Ignored if
                                           -t or --tenant are provided.

  -o, --includeod4b                        (Default: False) Include OD4B sites in the scan

  -v, --csvfile                            CSV file name (e.g. input.csv) which contains the list of site collection
                                           urls that you want to scan

  -h, --threads                            (Default: 10) Number of parallel threads, maximum = 100

  -e, --separator                          (Default: ,) Separator used in output CSV files (e.g. ";")

  -m, --mode                               (Default: Full) Execution mode. Use following modes: Full, GroupifyOnly,
                                           ListOnly, PageOnly, HomePageOnly, PublishingOnly, PublishingWithPagesOnly,
                                           WorkflowOnly, WorkflowWithDetailsOnly, InfoPathOnly, BlogOnly or CustomizedFormsOnly. Omit or use
                                           full for a full scan

  -b, --exportwebpartproperties            (Default: False) Export the web part property data

  -c, --skipusageinformation               (Default: False) Don't use search to get the site/page usage information and
                                           don't export that data

  -j, --skipuserinformation                (Default: False) Don't include user information in the exported data

  -k, --skiplistsonlyblockedbyoobreaons    (Default: False) Exclude lists which are blocked due to out of the box
                                           reasons: base template, view type of field type

  -d, --skipreport                         (Default: False) Don't generate an Excel report for the found data

  -g, --exportpaths                        List of paths (e.g. c:\temp\636529695601669598,c:\temp\636529695601656430)
                                           containing scan results you want to add to the report

  -n, --disabletelemetry                   (Default: False) We use telemetry to make this a better tool...but you're
                                           free to disable that

  -q, --dateformat                         (Default: M/d/yyyy) Date format to use for date export in the CSV files. Use
                                           M/d/yyyy or d/M/yyyy

  -w, --storedcertificate                  (Default: ) Path to stored certificate in the form of
                                           StoreName|StoreLocation|Thumbprint. E.g.
                                           My|LocalMachine|3FG496B468BE3828E2359A8A6F092FB701C8CDB1

  --help                                   Display this help screen.