2018年2月9日

2018年2月 9日 (金)

サイトのテンプレート化保存ができなくなるケースはこれまで、"発行インフラストラクチャー" 機能がアクティブになっている、もしくはかつてアクティブ化したことがある(今は非アクティブ)といったことが考えられます。

しかし、これだけでなく "サイトの削除" メニューがサイトの設定ページから消えてしまう事案が発生しました。同一サイトコレクション内はサブサイトも軒並み同じ状況です。

これは何事か? 

2018-02-09_13-23-54

 

原因をあれこれ探っていると、昨年から使えるようになった "サイトコレクションのアプリカタログ" を利用できるように設定したからでした。

検証用に設定しておいたのをうっかり忘れていたのですが、「サイトの操作」セクションにどのサイトも「サイトの削除」さえ表示されないのは困りますね。

ということで、以下のコマンドを実行し、サイトコレクションのアプリカタログ機能を削除たら治りました。

Connect-SPOService -Url "<テナント名>-admin.sharepoint.com
$site=Get-SPOSite "<目的のサイトのURL>"
Remove-SPOSIteCollectionAppCatalog -Site $site

ちなみに、このコマンドを実行しても、トップレベルサイトの "SharePoint用アプリ" 自体は消えないんですね。使えなくはなったみたいですが。

それから、試し忘れましたが、「サイトの操作」メニューからは"サイトの削除" リンクは消えていましたが、「サイトの管理」セクションの "サイトとワークスペース」(サイトのURL//_layouts/15/mngsubwebs.aspx) にはサブサイト一覧が表示されていたので、サブサイトは消せたかもしれません。検証したら追記しておきます。

 

SharePoint Patterns and Practices で公開されている SharePoint PnP PowerShellを使って SharePoint Onlineにアクセスするときのトラブルシューティングを備忘録として記載します。とはいえ、私の環境が少し特殊なので、あくまでもご参考まで。

まず、私の環境がどのように特殊なのかという説明から始めましょう。手持ちの複数の Office 365 テナントにアクセスする必要があるため、Internet Explorerでアクセスしているテナントと EdgeやChromeでアクセスするテナントを分けて利用しています。で Edge や Chrome でアクセスしているアカウントは MFA (多要素認証)を使ってMicrosoft Authenticator を使った認証を組み合わせています。

さてここで Edge でアクセスしている方のテナントに前述の PnP PowerShellで接続したかったのですが、MFA を利用している場合は次のようにコマンドを実行します。

Connect-PnPOnline -Url <サイトのURL> -UseWebLogin

この "UseWebLogin" パラメータが大切で、これを指定することでブラウザーを使ったユーザー認証ができMFAの認証コード送信などができるようになります。しかし、今回これがうまくいかなかった。認証ウィンドウが表示されたかと思うとすぐに閉じ、下記のようなエラーが表示されてしまうのです。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Connect-PnPOnline : リモート サーバーがエラーを返しました: (403) 使用不可能
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2018-02-09_6-04-38

さて、解決策ですが、そもそも認証ウィンドウは IE が起動するようになっている。つまり、すぐ消えたウィンドウはIEが提供しているようです。そのため、まずIEの側をサインアウトします。ただし、サインイン時に"認証情報を継続利用" するように指定していたため、これも消します。キャッシュされている認証情報の削除にはコントロールパネルから "資格情報マネージャー" を起動し https://login.microsoftonline.com/ が対象になっている IE でログインしていた時のアカウント情報を削除します。

ここまでそろえたうえで、上記のコマンドを実行するとうまく MFA を使った認証が通ります。