После изменения должностных обязанностей одного сотрудника появилась необходимость удалить у него повышенные права (полный доступ).
Руками решать эту задачу было бы очень долго...
прибегнул к PowerSell
данный скрип пробегает по всем сайтам в веб-приложении и удаляет от туда пользователя. После этого у пользователя остались права выданные через группы AD и через группу "ВСЕ"
Руками решать эту задачу было бы очень долго...
прибегнул к PowerSell
данный скрип пробегает по всем сайтам в веб-приложении и удаляет от туда пользователя. После этого у пользователя остались права выданные через группы AD и через группу "ВСЕ"
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 31 32 33 34 35 36 37 38 39 40 41 42 | cls $login = 'i:0#.w|doman\user' foreach ( $sites in $app .Sites) { $collSite = $sites .AllWebs foreach ( $web in $sites .AllWebs) { # удаляем из всех групп foreach ( $group in $web .Groups) { foreach ( $user in $group .Users ) { if( $user .UserLogin -eq $login ) { $web .Url $userRemove = $web .AllUsers.Item( $login ) $group .RemoveUser( $userRemove ) Write-Host "Сайт -" $web .Title " / удален из группы -" $group .Name -foregroundcolor Yellow } } } # удаляем из администраторов сайта $admins = $web .SiteAdministrators for ( $i = 0 ; $i -le $admins .Count; $i ++) { if( $admins [ $i ].UserLogin -eq $login ) { $web .Url $userRemove = $web .AllUsers.Item( $login ) $admins .RemoveByID( $userRemove .ID) Write-Host "Сайт -" $web .Title " / удален из администраторов сайта" -foregroundcolor blue } } $web .Dispose(); } } |