Archive for the ‘サーバー機能’ Category

SharePoint管理ツールキットとInfoPath ifilterの公開

日曜日, 8 月 31st, 2008

いつの間にか、SharePoint Server 2007 お役立ちツールというページができてました。

そこに以下のものが公開されていました。

SharePoint管理ツールキット

  • Batch Site Manager:サイトコレクションの移動・ロック・削除をするための機能のようです

インストールが正常に終わると、以下のメニューが追加されます。

0831-01.jpg

で、こんな画面でサイトコレクションの移動・ロック・削除をします(英語UIのようです)。

0831-02.png

  • Updatealert Stsadm:こちらは、既存のWebアプリの名前変更後・代替アクセスマッピング変更後に電子メールの通知の再設定するためのコマンドのようです

  • UserProfileReplication:あるServerからほかのServerにUserProfileをコピーするツールのようです。

こちらは、下記のようなアプリケーションがインストールされます。いまいち用途がわからない…ステージングとプロダクション環境を利用しているとか、他のファームにプロファイルを送る??だれか正しい用途を教えてください。

0831-03.png

上記の3つの機能がについては、日本語版の操作ガイドもダウンロードできます…助かりました
InfoPath ifilter

メイン?はInfoPathに添付されたファイルに対しても全文検索できるためのifilterのようです(動作確認した範囲ですが…あ、きちんと各フィールドの値も検索対象でした)…InfoPathに添付した場合、添付ファイルデータは、XMLのタグに囲まれたbase64でエンコードされた状態で*.xmlに保存されています。既存のXMLのifilterだと、エンコードされた状態の文字列が検索対象となりますが、このifilterを利用すると、添付ファイルをきちんと元のファイルに復元したあと、そのファイルのifilterでクロールを行うようです。

Webサービスの登録

月曜日, 8 月 18th, 2008

松崎さんのBlogに記載されていたAJAX+WebサービスのDemoを実装してみました。

http://blogs.msdn.com/tsmatsuz/archive/2008/06/09/vs08-sharepoint-ux-2-asp-net-ajax-web-part.aspx

Blogの中にあるSharePointへのWebサービスの登録手順について詳細に書いておきます(自分のメモのために・・・)。ちなみにMSDNに記載されているWebサービスの登録手順はこちら

手順1 

SharePointハイブ(C:\Program Files\Common Files\Microsoft Shared\web server extensions\12)のTemplates\LayoutsにKakakuSearch.asmxをコピーした後(ISAPIだとDiscoが上手く動きませんでした…)、VSのコマンドプロンプト(すべてのプログラムにメニューがあります)からDiscoを実施(Disco http://servername:port/_layouts/KakakuSearch.asmx)します。そうすると、
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\にKakakuSearch.discoとKakakuSearch.wsdlが作成されます 

手順2

KakakuSearch.wsdlとKakakuSearch.discoの<?xml version="1.0" encoding="utf-8"?> を以下のコードと置き換えます

<%@ Page Language="C#" Inherits="System.Web.UI.Page" %>
<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint.Utilities" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<% Response.ContentType = "text/xml"; %>

手順3

次に、KakakuSearch.discoの<ContractRef ref="http://servername:port/_layouts/KakakuSearch.asmx?wsdl"の"http://servername:port/_layouts/KakakuSearch.asmx?wsdl" を<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request) + "?wsdl"),Response.Output); %> に置き換え、次に、同様にdocRefの"http://servername:port/_layouts/KakakuSearch.asmx"を<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %>に置き換えます。

手順4

次にKakakuSearch.discoの(2つある内の上のほうの)<soap address="http://servername:port/_layouts/KakakuSearch.asmx"の

"http://servername:port/_layouts/KakakuSearch.asmx"を
<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %>に置き換えます。
同様に(2つある内の下のほうの)<soap address="http://servername:port/_layouts/KakakuSearch.asmx"を<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(SPWeb.OriginalBaseUrl(Request)),Response.Output); %>に置き換えます
 

手順5
MSDNには

In the .wsdl file, make the following similar substitution for the SOAP address that is specified:

という表現がしてあり、「soap address=」を「soap:address location=」に置き換える??という風に理解しましたが、全く自信がありません。ちなみに、soap addressでもsoap:address locationでもどちらでもきちんと動作しました。InfoPathでWebサービスを呼び出した場合はsoap addressじゃないとダメみたいです…よくわかりません。

手順6

そして、KakakuSearch.discoをKakakuSearchdisco.aspxに変更し、KakakuSearch.wsdlをKakakuSearchwsdl.aspxに変更します。その後、KakakuSearch.asmxとKakakuSearchdisco.aspxとKakakuSearchwsdl.aspxをSharePointハイブのISAPIフォルダにコピーします。

手順7

SharePointハイブのISAPI/spdisco.exeを開き、下記の<contractRef>タグと<discoveryRef>タグを追加します。
<contractRef ref=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(spWeb.Url + "/_vti_bin/MyCustomWebService.asmx?wsdl"), Response.Output); %>
docRef=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(spWeb.Url + "/_vti_bin/MyCustomWebService.asmx"), Response.Output); %>
xmlns=" http://schemas.xmlsoap.org/disco/scl/ " />
<discoveryRef ref=<% SPHttpUtility.AddQuote(SPHttpUtility.HtmlEncode(spWeb.Url + "/_vti_bin/MyCustomWebService.asmx?disco"),Response.Output); %>
xmlns="http://schemas.xmlsoap.org/disco/" />

以上で設定は終わりです。上記の設定以外は松崎さんのブログを参照してください。正直、かなり面倒臭かったです…というか背伸びし過ぎた感じです…本当に動いてよかったです!あ、ちなみに、検索ボックスに入れる文字は、Blog通りの文字を入れるか、前半の数人の部分を入れないときちんと結果が返ってきませんでした…

stsadmによる個人用サイトの作成

日曜日, 7 月 13th, 2008

管理上の理由で、個人用サイトを特定のコンテンツDBに入るようにしておきたい場合ってありませんか?個人用サイトを作成するには、そのログオンユーザが画面右上の個人用サイトというリンクをクリックして作成する必要があります。ですので、実際に個人用サイトを作成するタイミングを管理者が制御できないので、管理者はサイトコレクションを手動で目的のコンテンツDBに移す必要があります…やってられません!で、どうにかして、事前に作成できないかなと探してみました!

stsadm -o createsite -url http://servername/personal/username -ownerlogin domain\username -owneremail user@domain.com -sitetemplate SPSPERS

※http://servername/personal/usernameは個人用サイトのホスト設定になります。

ただ、確かにこのコマンドを実施すると、コンテンツDBの中に、個人用サイトが作成されていることが確認できましたが、最終的に各ユーザが個人用サイトをクリックする必要があります…

ちょっと調べてみましたが、stsadmでは、サイトコレクションはできているのですが、ADのWebサイトの属性には個人用サイトのURLが登録されていなかったです。ですので、サイトコレクションはできているけれども、ADのWebサイトの属性への登録などの事前処理が行われないため、個人用サイトをクリックする必要があるようです…

ん~当初の目的が達成されるのでよしとしましょう

クォータテンプレート

金曜日, 7 月 4th, 2008

 小ネタです。

クォータテンプレートを利用して、1つのサイトあたりに利用できるサイトのコンテンツ量を制限することができます。

  • サイト単位の最大容量
  • 通知メールを出す基準となる容量

クォータテンプレートの適用範囲はWebアプリケーション単位で設定すると、その中に作成されるサイトコレクションに継承されます(サイトコレクション作成者がクォータテンプレートの中から選択可能です)。また、作成済みのサイトコレクションに対して、個々に任意の数値を入力してクォータを設定することも可能です。また、クォータを設定すると、各ルートサイトコレクションで、現在どの程度容量を利用しているかを把握することが可能になります。リストやライブラリといったフィルタもかけることが可能です…でも、微妙なんですよね

コンテンツのクエリWebパーツの問題??

火曜日, 7 月 1st, 2008

なんか、コンテンツのクエリWebパーツって動作が不安定じゃないですか?というか仕様がよくわかんないんですよね…たとえば、コンテンツのクエリWebパーツを設定したページを表示するとします。その時に、そのユーザがクエリ参照先に読み取り権限があると、クエリに合致するアイテムが表示されます…よね?というのはプロパティに対して、クエリをかけるためには、そのプロパティはサイトの内の列である必要があります。そして、そのサイト内の列が既定のプロパティではなく、追加したプロパティの場合は、そのアイテムに対して投稿権限が必要っぽいです…私の環境依存ですかね??

 ちなみに、原因を探しているうちに下記のKBを見つけました。 

http://support.microsoft.com/kb/935502/ja

⇒クエリ対象が1000を超えるとエラーが起きる・・・なんともいえないですね。

なんかいろんな意味で疲れます…SharePoint Server

SharePointにインポートしたユーザの表示名が更新されない。

月曜日, 6 月 30th, 2008

以下のKBを見つけました。

http://support.microsoft.com/default.aspx?scid=kb;ja;953131&sd=rss&spid=11373

確かに、何回か私もこの現象にあったとがあります。上記のKBには詳細に書いてませんが、ユーザの表示名は、プロファイルをインポートした直後には反映されず、別にユーザの表示名を更新するためのタイマージョブがあり、そのジョブが実行されることで表示名も同期されます。ただし、このジョブが1時間毎と設定されているのでタイムラグが発生します。また、このジョブはすべてのユーザーに対して同期が取られるわけではなく、Activeなユーザに対してのみ表示名の同期を実施します。このActiveなユーザとは、私が調べた限りでは、アップロードやアイテムの編集を行ったユーザのみアクティブであると判断され、同期が実行されます…おそらくKBの下のほうに記載されている~Edit Item~がそのことを指しているようです。

本当に管理者泣かせの製品です…はぁ~

追記

非アクティブ ユーザー:セキュリティグループのユーザーで、かつ書き込みを実施したことがない
アクティブ ユーザー:サイトに直接権限が付与されたユーザー、サイトに書き込みを実施したことがあるユーザー

アクセス権要求先の設定

水曜日, 6 月 25th, 2008

小ネタです。

アクセス権の要求先は、デフォルトで有効になり、かつサイトの作成者がアクセス権の要求先に設定されます。設定は、

サイトの設定→権限の設定→設定→アクセス権の要求で変更できます。

設定を有効にするか、無効にするかもここで設定できます。

SharePointのバリエーションについて

日曜日, 6 月 22nd, 2008

弊社では、一部英語用のサイトを作成していますが、当初の段階でバリエーションが利用できるか評価をしました。

バリエーションを実際に試すと、単なる多言語対応だけではない!ということがわかりました。

たとえば、日本語・英語・韓国語でバリエーションを構成する場合、

  1. トップサイトコレクションの設定バリエーションでバリエーションを設定する場所を選択します。たとえば、http://portal/ホームとして設定すると、論理的にTopサイトコレクションの下に、日本語・英語・韓国語の3つのサイトが作成されます。
  2. 次に、各言語に対するバリエーションラベルを作成します。今回だと、日本語をソースバリエーションラベルとして登録し、英語・韓国語もバリエーションラベルとして登録します。仮にバリエーションラベル表示名をja、en、ko設定したとします。
  3. バリエーションラベル設定後、階層の作成クリックします。
  4. 階層の作成が完了すると、http://portalのサブサイトとして、ja、en、koが作成されます。グローバルナビゲーション(画面上部にあるサイトリンクのタブ)は左から、「Topサイトコレクションのサイト名」「ja」「en」「ko」となります。
さて、この状態で何が起きるかというと、たとえば、グローバルナビゲーションの「Topサイトコレクション」をクリックすると、IEの言語設定に合わせて、ja、en、koにリダイレクトされます。

ちなみに、ルートのTopサイトにアクセスしたい場合は、IEからURLを直接入力するといけます(実質、ルートのTopサイトは使えません

さらに面白いのは、ソースとして設定したサイトのページを編集(たとえば、コンテンツエディタWebパーツで文字を入力するなど)すると、分毎にその編集内容が、en、koに反映されます(サブサイトの作成も反映されました~)。

すなわち!1つのサイトを編集すると、あとは自動的に他のサイトが出来てしまうわけです!(自動作成対象はバリエーションの設定からある程度は選べます)

ただ、残念なのは、既存のコンテンツをバリエーション対象にできないんですよね…ま、結局、弊社の事情によりバリエーションはなしになりましたが…
以下のWPを読むと、シナリオに合わせての利用例が記載されています。

http://office.microsoft.com/search/redir.aspx?AssetID=AM102118421041

SharePointの"システムアカウント"という表記について

日曜日, 6 月 22nd, 2008

小ネタです。

サイトにログインした時にユーザ名が表示されると思いますが、その時に"システムアカウント"と表記されるユーザって何に登録したアカウント
というのを以前、簡単に確認したので、その結果です。

システムアカウントと表記される場合

  • アプリケーションプールアカウントに登録したユーザ
  • ファームを構築したユーザ(既定の場合だとdomain\administratorになると思います。このユーザがMOSS的にはどこに登録したユーザなのかは未確認です…面倒だったので・・・)
  • BUILTIN\administrator

ちなみに、サイトコレクションの管理者は、"表記名"で表示されます。
また、このときに、サーバー構成管理ファーム管理グループというのが単なる全体管理のサイトにアクセスできるユーザを指していることを知りました・・・名前紛らわしいですよね?

ごみ箱について

日曜日, 6 月 22nd, 2008

リスト・ライブラリのごみ箱にあるアイテムは30日経つと削除されます。
また、ごみ箱から削除された後は、サイトコレクションのごみ箱に移動され、30日経つと削除されます。
サイトコレクションのごみ箱から削除された場合は、復旧はできません。…が、実は日数が変更できたりします

変更方法1 stsadmの利用

stsadm -o setproperty -propertyname recycle-bin-retention-period -propertyvalue <保存日数> -url <対象となる仮想サイト>


stsadm -o setproperty -propertyname recycle-bin-retention-period -propertyvalue 40 -url http://portal/

※日数を指定しない場合は、40⇒noにします。

変更方法2 Webアプリケーションの管理の利用

Webアプリケーションの全般設定からごみ箱の保存日数を選択することができます。こちらのやり方が簡単ですね

でも、どうやらリスト単位のごみ箱と、サイトコレクション単位のごみ箱で日数を変更することはできないみたいですね・・・ ちなみに、削除済みのデータバックアップクォータというのがあります。
たとえば、Webアプリのクォータに100Mを設定し、削除済みデータバックアップを50%に設定すると、
Webアプリ全体では、最大150Mになります…100Mの中の50%じゃないんですよ、これが、安全側設計じゃないな~


ホットワード サーバー background border SharePoint
割引クーポンまとめ情報 - クー割