0

現在、ちょっとしたつまずきがあり、正しい結果を得るために Google で正しいものを検索しているかどうかわかりません。

状況.... 1) GUI 経由の sharepoint では、サイトをセットアップするときに固有の権限を使用できます。2) グループの 3 つの可能性 (読み取り、投稿、および所有者) を示すページが表示されます。3) これらの可能性では、既存のグループを使用するか、新しいグループを作成するかを選択できます。

私が探している設定は、所有者に既存のグループを使用し、投稿と読み取り用に 2 つの新しいグループを作成することです。powershellでこれを行うにはどうすればよいですか?

これを行うことについて私が考えたもう1つの方法は、権限を壊さず、所有者グループ以外のすべてのグループを削除し、2つの新しいグループを作成し、それらに貢献を割り当て、読み取り、サイトに追加することです. <- これは機能するように聞こえますが、回避策のようにも聞こえます!

乾杯のTruez

4

2 に答える 2

0

私は解決策を見つけることができました。

すべてのグループが継承されるようにサイトを作成しました。

継承を壊した

壊れたら、すべてのグループをループして、所有者を含まないグループを削除しました。これは、ルート レベル サイトの所有者グループにメンバーを配置したときに、所有者グループがまだ更新されていたことを意味します。

次に、メンバーと読者グループを作成しました。

$businessUnitWeb = New-SPweb -Url "My Site" -Name "Test" -UseParentTopNav 

$businessUnitWeb.BreakRoleInheritance($true)

    $groupsToRemove = $businessUnitWeb.Groups| WHERE-OBJECT{$_.Name -ne "XXXXXXXXX Portal Owners"} | $businessUnitWeb.Groups.Remove($_)
    $groupsToRemove | FOREACH-OBJECT{$businessUnitWeb.Groups.Remove($_)}

    $usersToRemove = $businessUnitWeb.Users| WHERE-OBJECT{$_.Name -ne "XXXXXXXXXX Portal Owners"} 
    $usersToRemove  | FOREACH-OBJECT{$businessUnitWeb.Users.Remove($_)}
    }

            $businessUnitWeb.SiteGroups.Add("$businessUnitWeb Read", $businessUnitWeb.Site.Owner, $businessUnitWeb.Site.Owner, "The read group for $businessUnitWeb")
            $newGroup = $businessUnitWeb.SiteGroups["$businessUnitWeb Read"]


            $newGroupAssign = New-Object Microsoft.SharePoint.SPRoleAssignment($newGroup)

            $newGroupAssign.RoleDefinitionBindings.Add($businessUnitWeb.RoleDefinitions.GetByType("Reader"))
            $businessUnitWeb.RoleAssignments.Add($newGroupAssign)
            $businessUnitWeb.update()

            $businessUnitWeb.SiteGroups.Add("$businessUnitWeb Contributor", $businessUnitWeb.Site.Owner, $businessUnitWeb.Site.Owner, "The Contributor group for $businessUnitWeb")
            $newGroup = $businessUnitWeb.SiteGroups["$businessUnitWeb Contributor"]


            $newGroupAssign = New-Object Microsoft.SharePoint.SPRoleAssignment($newGroup)

            $newGroupAssign.RoleDefinitionBindings.Add($businessUnitWeb.RoleDefinitions.GetByType("Contributor"))
            $businessUnitWeb.RoleAssignments.Add($newGroupAssign)
            $businessUnitWeb.update()
            Write-Host "Creating $businessAreaURL..... " 
            $businessUnitWeb.ApplyWebTemplate(Template stuuf")

タイプミスがある場合は、コードから会社のタイを削除する必要がありました。

于 2013-11-11T09:11:24.190 に答える