locked
ライブラリ、リストの権限をコマンドで行うには RRS feed

  • 質問

  • サイトやライブラリ、リストの権限をPowershellで
    与えたいと思っております。

    下記コマンドでユーザーにサイトの権限をを与えることができました。

     例、ユーザー (Contoso\jdoe) を http://test の投稿者として設定
     Set-SPUser -Identity 'Contoso\jdoe' -Web http://test -AddPermissionLevel "Contributor"

    しかし、上記コマンドだとライブラリ、リストの権限の設定ができませんでした。
    (Set-SPUserの-Webオプションはサイトは認識するが、ライブラリ、リストは認識されない?)

    どなたかライブラリ、リストの権限を設定するコマンドをご存知の方が
    いましたらご教授いただきたいと思います。

    <環境>
    SharePoint Server 2010 SP1

    2011年9月19日 9:33

回答

  • 用意されたPSのコマンドというわけではないのですが、以下の方法で可能です。

     

     //1.ドキュメントライブラリを作成します。
    $spWeb = Get-SPWeb -Identity http://spsite //サイトを設定します。
    $listTemplate = [Microsoft.SharePoint.SPListTemplateType]::DocumentLibrary
    $spWeb.Lists.Add("My Documents","My Doc Library",$listTemplate)
     
     
    //2.作成したドキュメントライブラリにフォルダを作成します。
    $spDocumentLibrary = $spWeb.GetList("My Documents")
    $spFolder = $spDocumentLibrary.AddItem("",[Microsoft.SharePoint.SPFileSystemObjectType]::Folder,"フォルダ名") //作成するフォルダを指定します。
    $spFolder.Update()
    $web.Dispose()
     
     
    //リスト・ライブラリにアクセス権を設定します。
    $web = Get-SPWeb http://spsite //サイトを設定します。
    $account = $web.EnsureUser("SHAREPOINT\user1")//ユーザーを指定します。
    $role = $web.RoleDefinitions["Contribute"] //権限を設定します。
    $list = $web.Lists["Shared Documents"] //リスト・ライブラリを設定します。
    $list.BreakRoleInheritance($true)
    $assignment = New-Object Microsoft.SharePoint.SPRoleAssignment($account)
    $assignment.RoleDefinitionBindings.Add($role)
    $list.RoleAssignments.Add($assignment)
    $list.Update()
    $web.Dispose()

    • 回答としてマーク kaxhix 2011年9月21日 5:41
    2011年9月19日 14:07

すべての返信

  • 用意されたPSのコマンドというわけではないのですが、以下の方法で可能です。

     

     //1.ドキュメントライブラリを作成します。
    $spWeb = Get-SPWeb -Identity http://spsite //サイトを設定します。
    $listTemplate = [Microsoft.SharePoint.SPListTemplateType]::DocumentLibrary
    $spWeb.Lists.Add("My Documents","My Doc Library",$listTemplate)
     
     
    //2.作成したドキュメントライブラリにフォルダを作成します。
    $spDocumentLibrary = $spWeb.GetList("My Documents")
    $spFolder = $spDocumentLibrary.AddItem("",[Microsoft.SharePoint.SPFileSystemObjectType]::Folder,"フォルダ名") //作成するフォルダを指定します。
    $spFolder.Update()
    $web.Dispose()
     
     
    //リスト・ライブラリにアクセス権を設定します。
    $web = Get-SPWeb http://spsite //サイトを設定します。
    $account = $web.EnsureUser("SHAREPOINT\user1")//ユーザーを指定します。
    $role = $web.RoleDefinitions["Contribute"] //権限を設定します。
    $list = $web.Lists["Shared Documents"] //リスト・ライブラリを設定します。
    $list.BreakRoleInheritance($true)
    $assignment = New-Object Microsoft.SharePoint.SPRoleAssignment($account)
    $assignment.RoleDefinitionBindings.Add($role)
    $list.RoleAssignments.Add($assignment)
    $list.Update()
    $web.Dispose()

    • 回答としてマーク kaxhix 2011年9月21日 5:41
    2011年9月19日 14:07
  • adsepkalaug様

    本件のご回答ありがとうございます。

    リスト・ライブラリにアクセス権を設定する方法、
    ご紹介いただいたソースで設定できました。

     

    2011年9月21日 5:41