PowerShell — New-SPWeb с уникальными разрешениями

Я хочу создать новый SPWeb с помощью PowerShell. Мой код создает сайт и добавляет группу на сайт, но не пользователя «TestUser1». Тест\testuser1 не принадлежит TestGroup1 и получает отдельные разрешения.

 $web = New-spweb http://http:/mysharepointurl/site/web -Template "STS#0" -UniquePermissions 

$user = $web.EnsureUser('test\testuser4')

$web.Users.AddUser($user, "Full") #Not working, Add a existing User

$newGroup = $web.SiteGroups["TestGroup6"] #Working, Add a existing Group
$web.Roles["Full"].AddGroup($newGroup)

person LaPhi    schedule 07.02.2011    source источник


Ответы (3)


Ты пытался

$web.Users.Add -or- $web.AllUsers.Add

public void Add(
    string loginName,
    string email,
    string name,
    string notes
)

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spusercollection.add.aspx

person Hinek    schedule 08.02.2011
comment
$web.AllUsers.Add у меня сработало - спасибо! Обычный метод Add выдал исключение InvalidOperationException с сообщением «Операция недействительна из-за текущего состояния объекта». - person Goyuix; 22.10.2013

Вы используете New-SPWeb, значит, вам нужно добавлять пользователей в SPWeb.

$web.SiteUsers — это группа семейства веб-сайтов.

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.siteusers.aspx

Вы должны использовать

$web.Users

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.users.aspx

person djeeg    schedule 07.02.2011
comment
Спасибо за Ваш ответ! Я изменил свой код, но он не работает. Я не нашел способа добавить пользователя в свой веб-объект. Можете ли вы объяснить немного больше, пожалуйста? - person LaPhi; 07.02.2011

Мое рабочее решение:

$web = Get-SPWeb "http://http:/mysharepointurl/site/web" 
$user = $web.AllUsers["test\testuser1"]
$roledef = $web.RoleDefinitions["Vollzugriff"]
$roleass = New-Object Microsoft.SharePoint.SPRoleAssignment($user)
$roleass.RoleDefinitionBindings.Add($roledef)
$web.RoleAssignments.Add($roleass)
$web.Update()

Спасибо за поддержку!

person LaPhi    schedule 14.02.2011