64 lines
1.3 KiB
PowerShell
64 lines
1.3 KiB
PowerShell
param(
|
|
[Parameter(Mandatory=$true)]
|
|
[string]$url
|
|
)
|
|
|
|
function Write-Log($msg)
|
|
{
|
|
Write-Host $msg -foregroundcolor green
|
|
($msg) | Out-File "remove-windows-users.txt" -Append
|
|
}
|
|
|
|
function Remove-Windows-Users-Site-Col($site)
|
|
{
|
|
Write-Log ("Site:" + $site.Url)
|
|
$web = $site.RootWeb
|
|
$usersToDelete = @()
|
|
foreach ($su in $web.SiteUsers)
|
|
{
|
|
if ($su.LoginName.ToLower().StartsWith("i:0#.w|howzee\"))
|
|
{
|
|
Write-Log (" SiteUser:" + $su.LoginName)
|
|
$usersToDelete += $su
|
|
}
|
|
}
|
|
|
|
foreach ($au in $web.AllUsers)
|
|
{
|
|
if ($au.LoginName.ToLower().StartsWith("i:0#.w|howzee\"))
|
|
{
|
|
$exists = $false
|
|
foreach ($u in $usersToDelete)
|
|
{
|
|
if ($u.LoginName.ToLower() -eq $au.LoginName.ToLower())
|
|
{
|
|
$exists = $true
|
|
break
|
|
}
|
|
}
|
|
|
|
if (-not $exists)
|
|
{
|
|
Write-Log (" AllUser:" + $au.LoginName)
|
|
$usersToDelete += $au
|
|
}
|
|
}
|
|
}
|
|
|
|
Write-Log (" UsersToDelete:")
|
|
foreach ($u in $usersToDelete)
|
|
{
|
|
Write-Log (" " + $u.LoginName)
|
|
Remove-SPUser -Id $u.LoginName -Web $web.Url -Confirm:$false
|
|
}
|
|
}
|
|
|
|
$wa = Get-SPWebApplication $url
|
|
foreach ($site in $wa.Sites)
|
|
{
|
|
Remove-Windows-Users-Site-Col $site
|
|
}
|
|
#$site = Get-SPSite $url
|
|
#Remove-Windows-Users-Site-Col $site
|
|
#$web = Get-SPWeb $url
|
|
#Enum-Users-Web $web |