ぷろじぇくと、みすじら。

SharePoint Online/OneDrive for Businessでファイル名に特殊記号(%,

Created at:

今までSharePoint OnlineとOneDrive for Businessではファイル名やフォルダ名に “ # % * : < > ? / \ | といった文字を利用できませんでした。そもそも大なり小なりやスラッシュ、バックスラッシュといったものはWindows上でファイル名として扱えないので困らないのですが#や%を扱えないのはかなり不便です。

例えばC#という単語が含まれているファイルをアップロードしようとするとエラーになる、と言うだけで充分すぎるといってもいいほど不便なのが理解いただけると思います。

そんな不便も随分と前からUser Voiceで上がっていて、去年にはステータスがイマヤッテルヨー(working on it)となっていたのですが、ついに今月ロールアウトされました。ヤッタネー!

# と % のサポートが有効かどうか

既存のテナントは# and % support is not enabled by defaultとあるようにデフォルトでは有効ではありません。有効にするには後述するPowerShellコマンドで設定をオプトインする必要があります。

ただし6月以降に作成された新しいテナントではenabled by defaultつまりデフォルトで有効となります

それとは別に既存のテナントも2017年の9月までに有効にするかどうかの設定をオプトインする必要があります。特に何もしなかった場合2017年度後半(つまり来年1月以降)にデフォルト有効になります。(September 2017までにオプトインしてH2 2017以降enabled by defaultなので多分H2は会計年度)。

# と % のサポートを有効にする

というわけで明示的に有効にする必要があることが分かったので有効にしてみます。具体的にはPowerShellによる管理コマンドで設定を変えるということを行います。サイトの方からは変更できないので注意が必要です。

PowerShellで管理するにはSharePoint Online Management Shell の16.0.6323.1200以降が必要なのでインストールされていない場合や古い場合には新しくインストールします。

モジュールをインストールできたら、まず初めにSharePoint Onlineに接続します。

Import-Module Microsoft.Online.SharePoint.PowerShell
Connect-SPOService -Url https://<TenantId>-admin.sharepoint.com -Credential <UserName>@<TenantId>.onmicrosoft.com

接続ができたら、現在のテナントの設定を取得します。設定を取得するにはGet-SPOTenantコマンドを利用します。

Get-SPOTenant

このコマンドを実行した結果にSpecialCharactersStateInFileFolderNames: NoPreferenceという項目があればそのテナントは設定可能となっているということです。もしかするとまだ機能が展開中でそのテナントに導入されていない場合には出てこないかもしれません。

項目があることを確認したらSet-SPOTenantコマンドで設定します。

SpecialCharactersStateInFileFolderNamesにはAllowed(許可)またはNotAllowed(不許可)のどちらかを指定できます。NoPreference(未設定)は設定できないので注意が必要です。

Set-SPOTenant -SpecialCharactersStateInFileFolderNames Allowed

これで再度Get-SPOTenant設定できたことを確認できれば完了です。

注意

設定後、すぐに利用できるわけではないようでしばらく待つ必要があります。どのぐらいの時間がかかるのかはわかりませんが気長に待つとよいと思います。手元では半日ぐらい待って使えましたが、もっと短いかもしれないし長いかもしれません。

また、既存のアプリケーションがこの挙動(今まで含まれるはずではなかった文字が含まれること)を理解していないと壊れることがあるというような感じの話が上記リンクにありますので自社やサードパーティーの何かを使っている場合には気を付けてください。

有効になったら

#% が含まれるファイル名やフォルダ名を作成したりアップロードできるようになります。