46 lines
867 B
PowerShell
46 lines
867 B
PowerShell
param(
|
|
[Parameter(Mandatory=$true)]
|
|
[string]$url
|
|
)
|
|
|
|
function Write-Log($msg)
|
|
{
|
|
Write-Host $msg -foregroundcolor green
|
|
($msg) | Out-File "log-enum-users.txt" -Append
|
|
}
|
|
|
|
function ContainsUser($users, $loginName)
|
|
{
|
|
foreach ($user in $users)
|
|
{
|
|
if ($user.LoginName.ToLower() -eq $loginName.ToLower())
|
|
{
|
|
return $true
|
|
}
|
|
}
|
|
return $false
|
|
}
|
|
|
|
$users = New-Object System.Collections.ArrayList
|
|
$site = Get-SPSite $url
|
|
foreach ($user in $site.RootWeb.AllUsers)
|
|
{
|
|
if ([System.String]::IsNullOrEmpty($user.Email))
|
|
{
|
|
$users.Add($user) > $null
|
|
}
|
|
}
|
|
foreach ($user in $site.RootWeb.SiteUsers)
|
|
{
|
|
$contains = ContainsUser $users $user.LoginName
|
|
if ([System.String]::IsNullOrEmpty($user.Email) -and (-not $contains))
|
|
{
|
|
$users.Add($user) > $null
|
|
}
|
|
}
|
|
|
|
foreach ($user in $users)
|
|
{
|
|
Write-Log($user.LoginName)
|
|
}
|