"SharePoint 2013" にカテゴリー登録されている117 投稿

[SharePoint] 絞り込み検索の filetype と fileextension の違い

SharePoint では"プロパティ制限" という絞り込み検索が可能です。これは、ファイルのメタデータを使って絞り込み検索を行う際に利用します。このときよく利用するプロパティ(厳密には管理プロパティといいますが)  に "filetype" と "fileextension" があります。いずれもファイルの種類による絞り込み検索ですが、違いがあります。

FileExtension は文字通りファイルの拡張子による絞り込み検索であり、検索ボックスに "fileextension:pptx" などと指定するとPPTXの拡張子を持つファイルを絞り込み検索できます。エンタープライズ検索センターサイトなどで試してみるとよくわかるはずです(ちなみに、検索の大文字小文字は区別しません)。

一方の FileType は SharePoint がファイルの内容を判定した結果です。拡張子に依存しません。例えば、本当は Sample.txt というテキストファイルだったものを、無理やりに拡張子をPPTXとして保存したとき、SharePoint は "FileType:txt" と検索するとこの PPTX ファイルを見つけるという理屈です。

もちろん実際に検索する際には、このように本来のファイルの拡張子とは異なるということはあまり多くないと思います。したがって、どちらのプロパティを使って絞り込み検索しても大抵は同じような結果が得られます。

しかし、「リストの添付ファイルを検索する」時には区別して利用するとよいでしょう。リストの添付ファイルを検索するときには、まず、目的のリストの検索ボックスにアクセスします。この検索ボックスに検索キーワードを入れて絞り込む際に、filetypeで絞り込まないと添付ファイルがヒットしません。添付ファイルはリストアイテムの一部とみなされているため、単純な拡張子での絞り込み検索では駄目なようです。

FileType検索

とはいえ、ライブラリと異なり、検索結果は添付ファイルが単独で表示されることはなく、当該ファイルが見つかったリストアイテムが表示されます。またサイトの検索ボックス等では添付ファイルの絞り込みは単純ではなく、リストの検索ボックスを利用するような結果になりません。検索機能を使って目的のファイルを絞り込みたいときには、なるべくライブラリを使った方がファイルの利便性(再利用性)が高まることは覚えておきましょう。

 補足

ちなみに、SharePoint Online では Microsoft Project で作成したファイルは FileExtension:mpp としてもヒットしませんが、FileType:mpp とするとヒットします。ただし、先ほどとは異なりリスト内の検索ボックスではこの絞り込み検索はうまくいきません。サイトの検索ボックスまたはエンタープライズ検索センターサイトから検索しましょう。また、オンプレミスの SharePoint 2013/2016 など使っている方は、サーバー管理者が検索の設定でファイルの拡張子を登録しておけば FileExtension:mpp での検索が同様にできるようになります。

と、、微妙な違いでややこしいところですが、覚えておくと便利です。まずは実際に検索してみて試してみてくだい。

 


[SharePoint] サイトのユーザーの部署情報などをExcel から取得する

SharePoint のリストやライブラリのビューは Excel にエクスポートできますが、部署情報なども含めてエクスポートしたいというニーズも多いでしょう。しかし、意外に簡単ではありません。

そこで、 Excel アドインであるで Power Query を使って、サイトに登録されているユーザー情報(UserInfo)を取得する方法を紹介します。この方法を覚えておけば、リストやライブラリからエクスポートしたデータと組み合わせ vlookup 関数など組み合わせて利用することで部署、肩書、電子メールアドレスなどをマップできるようになります。

 

 


[SharePoint] Wiki ページライブラリの "ホームページ" について

SharePoint 上でチーム サイトを作成すると Wikiページライブラリが 「サイトのページ」という名称で自動作成されます。Wikiページライブラリはサイト内に複数追加できるため、用語集、製品情報などの情報で分類したりもできます。

さて、この Wiki ページライブラリには "ホーム ページ" があります。"ホーム ページ" というと、インターネットに公開されているWebサイト全般のことを思い浮かべる方も多いかもしれませんが、"最初に表示されるページ" という狭義が本来あります(厳密にはサイト内の特定のページまでアドレス指定しなくてもサイトのURLまで指定すれば勝手に表示される既定のページです)。

Wiki ページ ライブラリを新規に追加すると次の 2つのページが同時に自動生成されます。

  • ホーム.aspx
  • このライブラリの使用方法.aspx

このうち、ホーム.aspx が Wiki ページ ライブラリのホームページであり、Wiki ページライブラリのURLまで指定したときに最初に表示されるページとなります。サイドリンクバーなどに[最近使った項目]見出し配下に表示される Wikiページ ライブラリのURLをクリックすると既定では ホーム.aspx が表示されます。

さて、ここから開発面でのお話です。

Wiki ページライブラリのRootFolderオブジェクトには WelcomePageプロパティがあります。新規作成のWikiページライブラリなどは既定値が "ホーム.aspx" になっています。この値は変更できるため、同一ライブラリ内の任意のWikiページをホームページとして設定できます。たとえば、「Wikiページライブラリのホームページとなるページのタイトルが常に "ホーム" と表示されるのは、サイトのホームページと混同するので変えたいといったニーズがあれば、知っていると役立ちます。

JavaScript Object Model の例)

//Wiki ページライブラリのホームページの確認
...
var ctx=new SP.ClientContext();
//リストのオブジェクトを取得
var list = ctx.get_web().get_lists().getByTitle("Wikiページライブラリの名前");
var rootFolder=list.get_rootFolder();
ctx.load(rootFolder);
ctx.executeQueryAsync(function(){
//成功時のハンドラ
alert("結果 : rootFolder.get_welcomePage());
//set_welcomePage()メソッドの引数に任意のページを指定すればよい。最後RootFolderのupdate()メソッドを忘れずに!
},
function(){//失敗時のハンドラ});

[初心者向け] SharePoint の種類を把握しよう !

最近 SharePoint の種類について同じような説明をする機会が増えたので、念のためブログにも記載しておきます。あまりシステムに詳しくない方向けです。

SharePoint には次の2種類があります。

  • オンプレミス : On-premise (社内設置) 版
  • クラウド版

SharePoint Server 2013 や SharePoint Server 2016 といった "Server" と名前がついているのはオンプレミス版の SharePoint です。オンプレミスとは、自社内にサーバーを構築しメンテナンスなどは自社内で行います。

一方クラウド版は SharePoint Online というサービス名となっています。クラウド版は、平たく言えば、Microsoft 社がクラウド環境に SharePoint サーバーを構築し、インターネット越しにサービスを利用できるようにしているものです。ですから、サーバー自体のメンテナンス等はMicrosoft社任せであり、機能更新などが継続的に行われています。SharePoint Onlineはこのサービスだけを単独で契約することもできれば、Office 365 Business, Office 365 Enterprise などのような契約プラン内に含まれている場合もあります。実際に利用されているケースでは、後者が多いようです。ちなみに、他のサービスとしては Exchange Online や Skype for Business Online 、最新の Office クライアント アプリケーション(Word, Excel, PowerPoint) などがあります。Exchange Online が利用できると Outlook と組み合わせて電子メールが利用できたり、個人の予定を管理したりできます。Office 2010, 2013, 2016 に含まれている Outlook とは別に、Web版のOutlook があり、これは Outlook on the Web と呼ばれますが、 Exchange Online を契約しているとこれも利用できます。

SharePointVersions1

オンプレミス版とクラウド版ではそれぞれ良し悪しがあるため、組織によってはどちらか一方を使っていたり、組み合わせて利用していたりします。たとえば、大きな違いとしては、オンプレミス版の場合は、インターネット越しに利用させないようにしているケースも多く、社外から簡単にはSharePoint サイトにアクセスできないようになっていたりします。一方のクラウド版はインターネットへの接続環境があれば、原則、どの端末からでもアクセスできます (最近、SharePoint Online も特定のネットワーク環境からのアクセスを制限する設定もできるようになったため、"原則"と書きました)。たとえば、カフェや空港などにあるインターネット接続端末からアクセスしたり、iPad, iPhone その他、携帯端末からも Webブラウザーがあれば、アクセスできます。もちろん、ユーザー認証が必要であるため誰でもアクセスできるという意味ではありません。

さて、機能的な視点で補足しておきましょう。少し技術的な話です。

現在のSharePoint Online は、もともとは SharePoint Server 2013 がベースとなっていたため、利用できる機能も画面操作もオンプレミス版の SharePoint 2013 と当初はあまり変わりませんでした。逆に、SharePoint Online の方がいくらか利用できる機能が制限されている面もあったのです。しかし、クラウド環境である利点を生かし、SharePoint Onlineは継続的に機能アップデートを続けて進化しており、現在は SharePoint Online や Office 365 と組み合わせないと利用できない機能が多くなってきています。そして、昨年春に登場した最新のオンプレミス版の SharePoint が SharePoint Server 2016 です。このバージョンは、SharePoint Online のノウハウをそのままオンプレミス環境で利用できるようにしているものであるため、利用できる機能や見た目が SharePoint Online に近いものになっています。ただし、社内設置型は頻繁にアップデートされるわけではないため、SharePoint Online の新機能の一部は SharePoint Server 2016 には搭載されていなかったりするのです。たとえば、このブログでもよく取り上げている、モダンUIなどへの対応はほんのごく一部です。

SharePoint Server 2013 も 2016 も1か月ごとに、主にバグ修正を行う更新プログラムが提供されています。ただし、SharePoint Server 2016 には特殊な更新プログラムである Feature Pack が適宜提供されるようになっており、これを適用することで SharePoint Online や Office 365 で提供されている機能の一部が使えるようになるような大幅な機能拡張がされるようになっています。最初の Feature Pack は 2016年11月に公開され、これにより SharePoint Server 2016 の OneDrive for Business にのみモダンUIが導入されています。今年も、Feature Pack が提供される予定となっているようです。

SharePointVersions2

 


分散キャッシュのサービス アカウントの変更

SharePoint Server 2013 以降では分散キャッシュサービスが導入されています。

分散キャッシュサービスの既定のアカウントはファームアカウントであるため、必要に応じて変更します。Health Analyzer はこの状態を検知し、他の管理アカウントに変更するようにメッセージを表示します。

2016-10-18_7-32-27

分散キャッシュサービスのアカウントはサーバー全体管理サイト>[セキュリティ]>[サービス アカウントの構成]で確認できます。

2016-10-18_7-36-28

しかし、この画面からアカウントを変更しようとするとエラーになります。分散キャッシュのアカウントはPowerShellから変更する必要があるためです。

2016-10-18_7-16-46

変更には次のコマンドを実行します。

$farm = Get-SPFarm
$cacheService = $farm.Services | where {$_.Name -eq "AppFabricCachingService"}
$accnt = Get-SPManagedAccount -Identity domain_name\user_name
$cacheService.ProcessIdentity.CurrentIdentityType = "SpecificUser"
$cacheService.ProcessIdentity.ManagedAccount = $accnt
$cacheService.ProcessIdentity.Update()
$cacheService.ProcessIdentity.Deploy()

[出典] https://technet.microsoft.com/en-us/library/jj219613(v=office.16).aspx