none
SharePoint Удаления пользователя из всех групп Powershell

    Вопрос

  • Всем Привет.

    Подскажите плз как пользователя удалить из всех групп SharePoint на конкретном портале.

    вот мой пример делаю вот так:

    Get-SPSite https://portal.domen.ru |Get-SPWeb | Remove-SPUser "domen\polyakov"

    Получаю ошибку:

    Remove-SPUser : Необходимо указать допустимый пользовательский объект или идентификатор пользователя.
    строка:1 знак:53
    + Get-SPSite https://portal.domen.ru |Get-SPWeb | Remove-SPUser "domen\polyakov ...
    +                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Remove-SPUser], PSArgumentException
        + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletRemoveUser

    Подскажите плз что не так делаю?


    3 декабря 2018 г. 9:06

Ответы

Все ответы

  • Добрый день

    попробуйте указать пользователя так 'i:0#.w|doman\user'


    мой блог не много о SharePoint

    • Помечено в качестве ответа Piligrim2k3 7 декабря 2018 г. 9:18
    3 декабря 2018 г. 9:29
  • Добрый день

    попробуйте указать пользователя так 'i:0#.w|doman\user'



    PS C:\Windows\system32> Get-SPSite https://portal.domen.ru |Get-SPWeb | Remove-SPUser 'i:0#.w|domen\Ppolyakov'
    Remove-SPUser : Необходимо указать допустимый пользовательский объект или идентификатор пользователя.
    строка:1 знак:53
    + Get-SPSite https://portal.domen.ru |Get-SPWeb | Remove-SPUser 'i:0#.w|domen\Ppolyakov' ...
    +                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Remove-SPUser], PSArgumentException
        + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletRemoveUser

    неа все равно, ругается пишет ошибку...


    3 декабря 2018 г. 14:28
  • How to Remove User Permissions in SharePoint 2013/2016 using Powershell

    $sites = Get-SPSite -Limit All

    #This loops through each site collection and calls it ‘siteCollection’
    foreach ($siteCollection in $sites)
    {
    # all the webs in the site collection
    $webs = $siteCollection.AllWebs

    #all the webs
    foreach ($website in $webs)
    {
    $user = get-spuser -Identity 'i:0#.w|domen\Ppolyakov' -Web $website.url
    #gets all the lists in the library
    $lists = $web.Lists
    foreach ($list in $lists)
    {
    $list.RoleAssignments.Remove( $user)
    }

    }

    пишет ошибку отказано в доступе.

    запускаю Sharepoint от уч. зап. Spinstall тоесть с полными правами.

    Произошло следующее исключение при попытке перечисления коллекции: "Отказано в доступе. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)
    )".
    строка:6 знак:22
    + foreach ($website in $webs)
    +                      ~~~~~
        + CategoryInfo          : NotSpecified: (:) [], ExtendedTypeSystemException
        + FullyQualifiedErrorId : ExceptionInGetEnumerator

    Произошло следующее исключение при попытке перечисления коллекции: "Отказано в доступе. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)
    )".
    строка:6 знак:22
    + foreach ($website in $webs)
    +                      ~~~~~
        + CategoryInfo          : NotSpecified: (:) [], ExtendedTypeSystemException
        + FullyQualifiedErrorId : ExceptionInGetEnumerator

    PS H:\>


    3 декабря 2018 г. 14:41
  • Добрый день

    попробуйте указать пользователя так 'i:0#.w|doman\user'


    мой блог не много о SharePoint

    этот вариант сработал, он удалил пользователя из всех групп. Но вопрос, как можно подкорректировать командлет, что бы он 20 раз не ругался одной и той же ошибкой?

    Remove-SPUser : Необходимо указать допустимый пользовательский объект или идентификатор пользователя.
    строка:1 знак:53

    3 декабря 2018 г. 14:59
  • можно пробовать так (сам не тестировал, лучше пробовать в тестовой среде)

    $siteUrl = https://portal.domen.ru
    $userLogin =  'i:0#.w|doman\user'
    $site = Get-SPSite $siteUrl
    foreach($web in $site.AllWebs){
        try{
         Remove-SPUser  -Identity $userLogin -Web $web.Url -Confirm 
        }catch{}
    }


    мой блог не много о SharePoint

    4 декабря 2018 г. 9:26
  • можно пробовать так (сам не тестировал, лучше пробовать в тестовой среде)

    $siteUrl = https://portal.domen.ru
    $userLogin =  'i:0#.w|doman\user'
    $site = Get-SPSite $siteUrl
    foreach($web in $site.AllWebs){
        try{
         Remove-SPUser  -Identity $userLogin -Web $web.Url -Confirm 
        }catch{}
    }


    мой блог не много о SharePoint

    Пробовал разными способами, не выходит, ошибку пишет туже самую,

    Remove-SPUser :You must specify a valid user object or user ID.
    line: 1 character: 53
    + Get-SPSite https://portal.domen.ru |Get-SPWeb | Remove-SPUser 'i:0#.w|domen\$username'
    +                                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Remove-SPUser], PSArgumentException
        + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletRemoveUser

    в добавок перестал пользователя удалять.

    7 декабря 2018 г. 9:20