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    
無料ブログはココログ

リスト

本気のタイトル一覧


« 【SharePoint】サイトコレクションに登録してあるSharePointグループを一括出力する。 | トップページ | 【SharePoint】Webパーツ ページの管理の表示方法 »

2012年4月 8日 (日)

【SharePoint】PowerShellを使って、Sharepointグループを一括登録

■またもSharePointのかゆい所に手が届かないネタ。

 

Sharepointグループを一括で登録したいニーズって結構な頻度で発生します。   
しかし、SharePoint標準でそのような機能は提供されていないし、日本語で紹介しているページもありませんでした・・・。ということで、例によって海外サイトを調べると、ありましたありました。    
解説はインラインで。

 

   
・サイトの継承を外す    
・既存グループを削除する    
・サイトコレクションにグループを作成する    
・グループにユーザーを追加する    
・サイトコレクションに登録されたグループにユーザーを追加する    
・サイトコレクションに登録されたグループを、権限を付与しながらサイトにアサインする    
といった手順を踏んでいますが、もちろんそれぞれ単体でも便利に使えると思います。

 

~引用元~   
PowerShell to create SharePoint groups    
http://blog.pointbeyond.com/2011/06/03/powershell-to-create-sharepoint-groups/

 

 

 
   

    
##### PowerShellを使って、任意のサイトに新しいSharePointグループを作成します。      
##### このTIPSのいいところは、実際の運用で必要になる、      
##### ・権限の継承の破棄      
##### ・既存ユーザーの削除      
##### も含んでいるところです。      
##### グループの作成やユーザーの登録なんていう作業は導入時に結構なタスク量で      
##### 発生しますし、組織変更や部署異動など恒常的に発生することなので      
##### ここまで考えられていると便利ですね。      
###### Get the web object that requires the new groups      
#####新たにグループを作成したい”WEB”オブジェクトを取得      
ちなみに日本語環境では、権限がすべて日本語です。      
・フル コントロール      
・デザイン      
・投稿      
・閲覧      
・制限付きアクセス      
・表示のみ      
・承認

   

    
$web = Get-SPWeb http://site/subsite

   

    
###### If the web object is currently inheriting permission then break the inheritance      
#####WEBオブジェクトに継承が設定されたいた場合、継承を破棄。      
if ($web.HasUniquePerm -eq $false)      
{      
$web.BreakRoleInheritance($true, $true)      
}

   

    
###### Remove unnecessary groups/users from the site permissions      
###### サイトに設定された既存のユーザー・グループを削除します。      
for ($i = $web.RoleAssignments.Count – 1; $i -ge 0; $i–)      
{      
$web.RoleAssignments.Remove($i)      
}

   

    
###### Create the new groups      
##### 新しいグループを作成します。      
# Owner Group      
# ”所有者”グループ      
$web.SiteGroups.Add(“$web Owners”, $web.Site.Owner, $web.Site.Owner, “Use this group to grant people full control permissions to the $web site”)      
$ownerGroup = $web.SiteGroups["$web Owners"]      
$ownerGroup.AllowMembersEditMembership = $true      
$ownerGroup.Update()

   

    
# Members Group      
# ”メンバー”グループ      
$web.SiteGroups.Add(“$web Members”, $web.Site.Owner, $web.Site.Owner, “Use this group to grant people contribute permissions to the $web site”)      
$membersGroup = $web.SiteGroups["$web Members"]      
$membersGroup.AllowMembersEditMembership = $true      
$membersGroup.Update()

   

    
# Visitors Group      
# ”訪問者”グループ      
$web.SiteGroups.Add(“$web Visitors”, $web.Site.Owner, $web.Site.Owner, “Use this group to grant people read permissions to the $web site”)      
$visitorsGroup = $web.SiteGroups["$web Visitors"]      
$visitorsGroup.AllowMembersEditMembership = $true      
$visitorsGroup.Update()

   

    
###### Add users to group as required      
##### 必要に応じてユーザーをグループに追加します。      
$user1 = $web.Site.RootWeb.EnsureUser(“domain\ownerusername”)      
$ownerGroup.AddUser($user1)      
$user2 = $web.Site.RootWeb.EnsureUser(“domain\memberusername”)      
$membersGroup.AddUser($user2)      
$user3 = $web.Site.RootWeb.EnsureUser(“domain\visitorusername”)      
$visitorsGroup.AddUser($user3)

   

    
###### Create a new assignment (group and permission level pair) which will be added to the web object      
##### WEBオブジェクトに追加する新しい権限(グループと権限レベルの組み合わせ)を作成します。      
$ownerGroupAssignment = new-object Microsoft.SharePoint.SPRoleAssignment($ownerGroup)      
$membersGroupAssignment = new-object Microsoft.SharePoint.SPRoleAssignment($membersGroup)      
$visitorsGroupAssignment = new-object Microsoft.SharePoint.SPRoleAssignment($visitorsGroup)

   

    
###### Get the permission levels to apply to the new groups      
##### 新しいグループに設定するため、権限レベルを取得します。      
$ownerRoleDefinition = $web.Site.RootWeb.RoleDefinitions["Full Control"]      
$membersRoleDefinition = $web.Site.RootWeb.RoleDefinitions["Contribute"]      
$visitorsRoleDefinition = $web.Site.RootWeb.RoleDefinitions["Read"]

   

    
###### Assign the groups the appropriate permission level      
##### グループに適切な権限レベルを設定します。      
$ownerGroupAssignment.RoleDefinitionBindings.Add($ownerRoleDefinition)      
$membersGroupAssignment.RoleDefinitionBindings.Add($membersRoleDefinition)      
$visitorsGroupAssignment.RoleDefinitionBindings.Add($visitorsRoleDefinition)

   

    
###### Add the groups with the permission level to the site      
##### 権限を設定したグループをサイトに設定します。      
$web.RoleAssignments.Add($ownerGroupAssignment)      
$web.RoleAssignments.Add($membersGroupAssignment)      
$web.RoleAssignments.Add($visitorsGroupAssignment)

   

    
# 変更をコミットします。      
$web.Update()

   

    
# WEBオブジェクトを解放します。      
$web.Dispose()

 

例によってファイルに書いて、PowerShellで実行です。

 

 

                     
                                                            
                
【送料無料】 インサイドmicrosoft Sharepoint 2010 マイクロソフト公式解説書 / テッド・パッ...                     

【送料無料】 インサイドmicrosoft Sharepoint 2010 マイクロソフト公式解説書 / テッド・パッ...                      

                
               
      
 

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

 

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

« 【SharePoint】サイトコレクションに登録してあるSharePointグループを一括出力する。 | トップページ | 【SharePoint】Webパーツ ページの管理の表示方法 »

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

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

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: 【SharePoint】PowerShellを使って、Sharepointグループを一括登録:

» PowerShellでSharePointにグループ作成してサイトに権限を設定する [SharePoint Maniacs]
Powershell(パワーシェル)はコマンドプロンプトを代替する新しいサーバ管理コンソールです。SharePointの管理・運用にもとても便利に使えるのですが…しかし、不慣れな為か、ついついコマンドプロンプト+stsadmに頼ってしまいがちです(主に私が)。 そこで、PowershellでSharePointを操作する実例をひとつ、ドリル形式でご紹介したいと思います。題して「SharePoint担当のための即効PowerShellドリル 第一回」!…続くかどうかは約束できませんが(笑) さて、まず... [続きを読む]

« 【SharePoint】サイトコレクションに登録してあるSharePointグループを一括出力する。 | トップページ | 【SharePoint】Webパーツ ページの管理の表示方法 »

RECOMEND

失敗しない家づくり