2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

リスト

本気のタイトル一覧


« 【DIYで家作り】真鍮製のアンティークのドアノブ-2- | トップページ | 【家庭菜園+】サトイモ植えたー、150株。 »

2012年4月27日 (金)

【SharePoint】コマンドライン経由でSharePointGroupのDescriptionを変更しても適応できない。

■こんなん普通わかりませんよ。

 

以前紹介した、SharePointグループを一括で登録するバッチや、なんらかのシステムから作ったSharePointグループのプロパティのうち、Name(名前)やOwner(所有者)、AllowEditMemberShip(メンバーへの編集権限の付与)など、一連のプロパティの値の新規登録、変更・削除などはコンソール⇔GUI(Web画面)で相互に行えるのですが、Description(説明)ついては奇妙な動作をしておりました。

 

奇妙な動きというのがまた説明するのがややこしいのですが・・・、

 

・コンソールから登録した$Group.Descriptionは、コンソールからも$Group.Descriptionで取得できる。

 

・コンソールから登録した$Group.Descriptionを、GUIから変更すると$Group.Descriptionで変更した情報が取得できない。

 

・GUIから登録したDescriptionは、コンソールから$Group.Descriptionで取得できない。

 

なんとも困った問題で、GroupのUpdate()が必要か?とかSPwebをUpdate()し忘れたのか?とかいろいろ試してみましたが全然わからない!

 

幸いにして、GUI⇔コンソールで相互に変更する運用はされない予定らしいですが、

 

一部の外部アプリケーションがDescriptionの情報をもとに動作している状態だったので、担当外ではありますが知的好奇心というか意地もあってしつこく調査しておりました。

 

国内のサイトではもちろん情報ありませんし、海外のサイトで情報調べると   
それなりにキーワードはヒットするのですが、解決されてる情報がない・・・(PowerShellにおいてはですが)

 

SharePointグループを変更してはいるのですが、名前、所有者情報どまり・・・   
「Change SharePoint Group Owner via PowerShell 」   
http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/26cb4dfb-27e3-42e5-91b3-ea8952d3f078

 

ほかにもいろいろあるのですが、登録はしてるけど変更してなかったり、堂々と”取れるよ”と言ってるけど、GUIで変更後に取れない(上と同じロジック)状態であったり、きれいに解決とはいきませんでした。

 

そんな中、以下のサイトを見つけました。

 

最終的に質問者自身によるC#での解決策が提示されているのですが、質問者自身もなぜそういうロジックになるかはわかってない様子。

 

Change description of a SharePoint group

 

http://stackoverflow.com/questions/968819/change-description-of-a-sharepoint-group

 

C#

 
   

SPGroup g = web.SiteGroups["GroupName"];       
SPFieldMultiLineText text =(SPFieldMultiLineText)web.SiteUserInfoList.Fields[SPBuiltInFieldId.Notes];         
SPListItem groupItem = web.SiteUserInfoList.GetItemById(g.ID);         
groupItem[text.InternalName]= groupDescription;         
groupItem.Update();

 

上記サイトで紹介されているのが上のソースですが、取得元をSiteUserInfoListにしています。   
これはユーザー(またはグループ)に関する情報を保持しておくためのSharePoint名前空間の中にある、とあるクラスなんですが、そのFieldsメンバに含まれるNotesのInternalNameに持っているようです。

 

なんでSiteGroup.Descriptionではないかというと、GUIでグループ情報の編集画面を見るとわかります。

 

説明以外のフィールドはプレーンテキストであるのに対し、説明のフィールドはリッチテキストと思しきインターフェイスがずらりと・・・。

 

この、編集情報(主にHTMLタグ)を含めた登録データはSiteGroup.Descriptionには反映されず、SiteUserInfoList.Fieldsにしか反映されません

 

このため、冒頭にあったようなConsole⇔GUIでの情報の差異が生まれておりました。

 

ということで、PowerShell向けにソースを修正。

 

PowerShell

 
   

$Group = $web.SiteGroups["GroupName"]      
$text = $web.SiteUserInfoList.Fields[[Microsoft.SharePoint.SPBuiltInFieldId]::Notes]      
$GroupItem = web.SiteUserInfoList.GetItemById($Group.ID)      
$GroupItem[$text.InternalName]= "説明の内容"      
$GroupItem.Update()

 

これでSharePointグループの説明の読み書きをすれば、問題なくGUIと連携できます。   
ちなみにSiteGroup.Descriptionに<>を含むタグなどHTMLやXMLを記述した場合、SiteUserInfoList.Fieldsで取得するとURLエンコードされて&gt;や&lt;となります。    
(もちろん&は&amp;など、HTMLルールに従って)

 

件の外部アプリケーションはどうもそこを考慮していないっぽいので、この後大変なことになりそうな予感が・・・。

 

東海地方のSharePointに関するお仕事情報、お問い合わせは、こちらまでどうぞ。

 

If you want to Change/Update SharePointGroup Description With Powershell,

 

Check Source on above and try it.

 

↓誰かこれプレゼントしてください・・・(切望)

                      
                                                            
                
【送料無料選択可!】インサイドMicrosoft SharePoint 2010 (マイクロソフト公式解説書) / 原タ...                     

【送料無料選択可!】インサイドMicrosoft SharePoint 2010 (マイクロソフト公式解説書) / 原タ...                      
価格:8,925円(税込、送料別)                      

                
               
      
 

~失敗しない家作りブログのAuthorの本職はSE。家作りとITがどうかかわるかわかりませんが、SEならではの視点でPC,ITに物申してみたいと思います。~

 

                                      
Share 
                                                        
                                                            
ブログランキング・にほんブログ村へにほんブログ村 IT技術ブログへ                  
にほんブログ村
      
                                                            
                  
人気ブログランキングへ
      
ランキング参加始めました。駄文ですが、ほんのチョビっとでも役に立ったと思われたらクリックお願いいたします:-)

« 【DIYで家作り】真鍮製のアンティークのドアノブ-2- | トップページ | 【家庭菜園+】サトイモ植えたー、150株。 »

06.■PC&Gadget」カテゴリの記事

★移行用★」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/53520/45014850

この記事へのトラックバック一覧です: 【SharePoint】コマンドライン経由でSharePointGroupのDescriptionを変更しても適応できない。:

« 【DIYで家作り】真鍮製のアンティークのドアノブ-2- | トップページ | 【家庭菜園+】サトイモ植えたー、150株。 »

RECOMEND

失敗しない家づくり