SharePoint :サイト作成時の案内や導線が変わった

SharePoint からサイトを作成する事って僕もそんなに多くないです。チームサイトの場合は Microsoft Teams でチームを作れば自動で作成されるけど、そうじゃなくて SharePoint 単体でサイトを作成する機会はあまりありません。なので以前作成したのがいつだったか忘れたけど…でも半年も前じゃなくここ1カ月2カ月前の話です。なので今日気が付いた変化はここ数カ月の変更かと思います。大きな変更ではないけどちょっと試します。

▼ SharePoint スタートページの左上の「+ サイトの作成」をクリック

あ、ここに「+ サイトの作成」がない人はテナント管理者がユーザーがサイト作成をNGにしている設定にしているのであきらめてください。これね、 Microsoft Teams は自由にチームが作成できるのに、 SharePoint は自由に作成できない設定にしているところもあるみたいで、何でそういう設定にしているんでしょうね?だって Microsoft Teams でチームを作成すれば、 Outlook から Microsoft 365 グループを作成すれば、 Microsoft Planner でプランを作成すれば…などなどで SharePoint のチームサイトも自動で作成されちゃうので…ユーザーにコミュニケーションサイトを作成させたくないという事なんですかね?まぁ、それはイイや。

“SharePoint :サイト作成時の案内や導線が変わった” の続きを読む

SharePoint : チームサイトやコミュニケーションサイトではライブラリにアップロードした.aspxファイルはクリックすると表示されずにダウンロードされてしまう

SharePoint Online の場合、HTMLファイルをライブラリにアップロードしても、ファイルをクリックすると表示されずにダウンロードされてしまいます。この場合の対策として、単に拡張子を.aspxに変更するだけで解決し、以下の太田さんの記事が参考になります。

静的 HTML ファイルを SharePoint にアップロードして公開する | idea.toString();
http://idea.tostring.jp/?p=1717

この方法でHTMLファイルを SharePoint Online のライブラリに保管して表示したりできるのですが、コミュニケーションサイトで同じ事をしたら、.aspxファイルをクリックすると表示ではなくダウンロードされてしまいました。まずは現象を再現してみます。

■再現

まず、拡張子を.aspxにしたファイルを用意します。(ソースはHTMLです。)

▼検証用途なので非常に簡単なHTMLです。作成後、拡張子を.aspxに変更します。

▼まずは SharePoint 管理センターから作成したサイトのライブラリにアップします。

▼sample.aspxをクリックするとブラウザ内に表示されます。(もっとわかりやすくサンプルがよかったですね…ゴメンナサイ。)

ここまでは想定の動作です。次はコミュニケーション サイトでやってみます。

▼コミュニケーション サイトを作成します。

▼作成されました。

▼ドキュメント ライブラリに移動し、先程と同じsample.aspxをアップロードします。そしてクリックすると…

▼クリックすると表示されずにダウンロードとなってしまいます。

■原因

正直言うと急いで解決したかったので人に聞いて回りました。そこで疑われたのが「カスタムスクリプト が禁止になっているのでは?」との事。

カスタム スクリプトを許可または禁止する – Office サポート
https://support.office.com/ja-jp/article/1f2c515f-5d7e-448a-9fd7-835da935584f

ではやってみましょう。

■対策

結局これも以前コミュニケーション サイトで外部ユーザーを招待できなかった際の対策と同じく、僕の苦手な PowerShell で対応します。

▼SharePoint Online Management Shell をダウンロードしてインストールします。

Download SharePoint Online Management Shell from Official Microsoft Download Center
https://www.microsoft.com/ja-jp/download/details.aspx?id=35588

▼SharePoint Online Management Shell を起動します。

SharePoint 管理センターに接続する以下のコマンドを実行します。

Connect-SPOService -Url https://<<hogehoge1>>-admin.sharepoint.com -Credential <<hogehoge2@hogehoge.com>>

<<hogehoge1>>:自分の環境に合わせて変更してください。
<<hogehoge2@hogehoge.com>>:管理者のアカウントのメールアドレス

▼サインインを促されるのでサインインしてください。

カスタム スクリプトを許可する以下のコマンドを実行します。(上述で紹介した Office サポートのページ内に記載されていたのを利用します。)

Set-SPOsite <SiteURL> -DenyAddAndCustomizePages 0

<SiteURL>:サイトのURL

実行すると相変わらず特に反応はなくスンっと終わります。

さて、これで.aspxファイルをクリックするとダウンロードじゃなくブラウザ内で表示されれば解決です!

▼おいおい、クリックしてもダウンロードされるぞ!

カスタム スクリプトの禁止が原因ではなかった!?と思いましたが、一応試してみようと思ったのが、.aspxファイルをアップロードし直す!

▼すでにアップロードしているファイルを一旦削除します。

▼再び同じsample.aspxファイルをアップロードします。そしてクリック!

▼やった!ダウンロードされずにブラウザ内で表示された!

って事でライブラリにアップロードした.aspxファイルがクリックすると表示されずにダウンロードされてしまう場合は、

  1. PowerShell でカスタム スクリプトを許可する。
  2. すでにアップロードしているファイルは再アップロードする。

という大きく2つの手順で解決できました。

PowerShell に慣れていない人はいろいろと怖いので検証用サイトコレクションを作ってテストしてみると良いですね。また、そもそもカスタム スクリプトを禁止から許可に変更した際の影響範囲なども考えないとですね。

SharePoint : コミュニケーションサイトでは外部ユーザーの招待ができない


全体的な管理は以下の設定になっているとします。

▼ Office 365 管理センター > セキュリティとプライバシー > 共有

「オン」

▼そこからのリンク「サイトの設定」

「オン」
「新規と既存の外部ユーザー」

▼ SharePoint 管理センター > 共有

組織外との共有
「ユーザーに認証済み外部ユーザーの招待および共有を許可する」

この設定で通常は SharePoint に外部ユーザーを招待できます。しかし、コミュニケーションサイトで外部ユーザーを招待しようとしたところ、できませんでした。

▼このようにコミュニケーションサイトを作成

▼作成完了。共有します。

▼外部ユーザーのメールアドレスを入力するとエラーが

エラー内容
「このユーザーとの共有が組織で許可されていません。 Office 365 管理センターの外部共有に移動して、共有を有効にしてください。」

エラー内容を見る限り、その設定はすでに有効化しているんですよね。設定をいろいろ見直したのですがこのエラーが消える事はありませんでした。

他のサイトコレクションのサイトでは外部ユーザーを招待できることから、このサイトレクション固有の問題であるという原因の切り分けができます。このコミュニケーションサイトは今作ったばかりなので、つまりコミュニケーションサイトはデフォルトでは外部ユーザーの招待はできない設定になっているのでは?と推測ができます。

実際に管理センターで全体的に有効化していても、個々のサイトコレクションで外部ユーザーの招待の有効/無効は設定可能なんですよね。

▼ SharePoint 管理センターで該当サイトコレクションを選択し、「共有」

▼サイトコレクション単位でも設定が可能になっています。

では、コミュニケーションサイトもこの方法で設定を有効にすれば解決!!ではないんですよね…。

現時点での SharePoint 管理センターでは、Teams のチーム作成や Office 365 グループ のグループ作成などで自動で作成されるサイトコレクションは管理できません。そしてコミュニケーションサイトも管理できません。 SharePoint 管理センターのサイトコレクション一覧に表示されないんですよね。なので、コミュニケーションサイトの外部ユーザー招待機能を有効化はできないんです。

ここであきらめても良いのですが、僕の苦手な(苦手はたくさんありますが) PowerShell を使えば解決します。

▼SharePoint Online Management Shell をダウンロードしてインストールします。

Download SharePoint Online Management Shell from Official Microsoft Download Center
https://www.microsoft.com/ja-jp/download/details.aspx?id=35588

▼SharePoint Online Management Shell を起動します。(この画面見ただけで僕はしんどいです。)

SharePoint 管理センターに接続する以下のコマンドを実行します。


Connect-SPOService -Url https://<<hogehoge1>>-admin.sharepoint.com -Credential <<hogehoge2@hogehoge.com>>


<<hogehoge1>>:自分の環境に合わせて変更してください。
<<hogehoge2@hogehoge.com>>:管理者のアカウントのメールアドレス

▼サインインを促されるのでサインインしてください。

外部ユーザーの招待を有効にする以下のコマンドを実行します。


Set-SPOsite <<hogehoge3>> -SharingCapability ExternalUserSharingOnly


<<hogehoge3>>:サイトのURL
ExternalUserSharingOnly :他にも設定の選択肢はありますが割愛。

このサイトのURLは少し注意が必要です。例えば以下はブラウザでサイトを開いた時のURLをそのままコピった場合ですが、これではダメです。
https://hogehoge.sharepoint.com/sites/comtest01/SitePages/Home.aspx

SitePages以下を削除したのですが、これでもダメです。最後のスラッシュが不要でエラーになりました。
https://hogehoge.sharepoint.com/sites/comtest01/

これでイケます。
https://hogehoge.sharepoint.com/sites/comtest01

▼コマンドに問題があるとエラーになり、問題がないと特に「成功!」的な反応はなく、スン…と次の行が現れます。

↑赤いエラーがたくさん出ていますが、 PowerShell 苦手なので、試行錯誤した痕跡です。お恥ずかしい…。

これでたぶん PowerShell にて設定が変更されたハズ!

▼先ほど招待できなかった同じメールアドレスで外部ユーザーを招待したところ、問題なく招待できました。

とはいえ、やはりただ外部ユーザーを招待したいだけなのに PowerShell には抵抗感ありますよね…。

現在、 SharePoint 管理センターは新しくなろうとしています。(もうすぐ対象指定リリースで使えるとの事。)この新しい SharePoint 管理センターでは、これらの現時点で表示されないサイトコレクションも管理できるとの事なので、期待します!