Сегодня я расскажу,
как я решил задачу по удалению пользователей и конкретной группы SharePoint. Дело в том, что в
данный момент администрирую коробочное решение документооборота. В коробочном
решении, лицензии, отслеживаются по
количеству пользователей в определённой группе. Когда пользователей далеко за
300, то искать и удалять пользователей из группы стандартными средствами весьма
долго. Решил написать скрипт.
Он проверяет
группу на разных сайтах (семействах) и если пользователь имеется в группе, то спрашивает,
удалять пользователя или нет.
#Перечень сайтов, в которых нужно произвести действия, адреса через запятую
$arraySite =
"http://server/site"
#Перечень пользователей, которых нужно удалить через запятую
$arraryUser =
"domain\S.Abramov",
"domain\V.Kozin"
foreach ($site in $arraySite)
{
$site = Get-SPWeb $site
$namegroup = "Участники SharePoint" #Название проверяемой группы
write-host ""$site":"
if ($site.SiteGroups["$namegroup"] -ne $null)
{
write-host проверяемая группа - ""$namegroup" ." -foregroundcolor Green
foreach ($username in $arraryUser)
{
$group = $site.SiteGroups["$namegroup"]
if ($group.Users["$username"] -ne $null)
{
write-host "пользователь "$username" есть." -foregroundcolor red
$delet = Read-Host "Удалить пользователя да [д] или нет [н]"
if ($delet -eq "д")
{
$User = $group.Users["$username"]
$group.RemoveUser($User)
write-host "пользователь "$username" удален" -foregroundcolor Yellow
}
else
{
write-host "пользователь "$username" не удален" -foregroundcolor Blue
}
}
else
{
write-host "пользователя "$username" нет в группе." -foregroundcolor Yellow
}
}
}
else
{
write-host ""$namegroup" - группы нет." -foregroundcolor red
}
$site.Dispose()
}
Да не самое
удобное средство, но все же. Неудобство в том , что нужно знать учетные записи
пользователя.
Надеюсь, что
данная статья будет Вам полезна.
Комментариев нет:
Отправить комментарий