PowerShell kullanarak SharePoint Farm-Web Uygulaması-Site Koleksiyonu-Sitesinin Tüm Kullanıcılarını Alın
Gereksinim: SharePoint Farm'ın tüm kullanıcılarını edinin.
SharePoint PowerShell, Tüm Kullanıcıları Çiftliğe Getirecek
SharePoint grubunuzdaki tüm kullanıcıların bir listesini almak ister misiniz? PowerShell bu konuda size yardımcı olabilir! Bu blog gönderisi, SharePoint grubunuzdaki tüm kullanıcıları hızlı bir şekilde bulmak için PowerShell'i nasıl kullanacağınızı gösterecektir.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Output Report File
$currentLocation = (Get-Location).Path
$outputReport = $currentLocation + "\" + "SharePointUsers.csv"
#Write CSV File Header
#Array to hold user data
$UserDataCollection = @()
#Get All Web Applications and iterate through
$WebAppsColl = Get-SPWebApplication
#To Get all Users from specific web application, Use: $WeAppsColl = Get-SPWebApplication "web-app-url"
#and remove line #12
foreach($WebApp in $WebAppsColl)
{
Write-host "Scanning Web Application:"$WebApp.Name
#Get All site collections and iterate through
$SitesColl = $WebApp.Sites
#To Get all Users from site collection, Use: $SitesColl = Get-SPSite "site-collection-url"
#and remove lines between #11 to #20 and Line #55 "}"
#get all users from site collection PowerShell
foreach ($Site in $SitesColl)
{
Write-host "Scanning Site Collection:"$Site.URL
#Get All Webs and iterate through
$WebsColl = $Site.AllWebs
#To Get all Users from aq site, Use: $WebsColl = Get-SPWeb "web-url"
#and remove lines between #11 to #28 and Lines #53, #54, #55 "}"
foreach ($web in $WebsColl)
{
Write-host "Scanning Web:"$Web.URL
#Get All Users of the Web
$UsersColl = $web.AllUsers #get all users programmatically
#list all users
foreach ($user in $UsersColl)
{
if($User.IsDomainGroup -eq $false)
{
$UserData = New-Object PSObject
$UserData | Add-Member -type NoteProperty -name "UserLogin" -value $user.UserLogin.ToString()
$UserData | Add-Member -type NoteProperty -name "DisplayName" -value $user.displayName.ToString()
$UserData | Add-Member -type NoteProperty -name "E-mailID" -value $user.Email.ToString()
$UserDataCollection += $UserData
}
}
$Web.dispose()
}
$site.dispose()
}
}
#Remove duplicates
$UserDataCollection = $UserDataCollection | sort-object -Property {$_.UserLogin } -Unique
#Remove duplicates and export all users to excel
$UserDataCollection | Export-Csv -LiteralPath $OutputReport -NoTypeInformation
Write-host "Total Number of Unique Users found:"$UserDataCollection.Length
Bu komut dosyası, tüm kullanıcıları site koleksiyonuna almak ve tüm kullanıcıları excel'e aktarmak için kullanılabilir.
PowerShell kullanarak SharePoint Grubundaki Tüm Benzersiz Kullanıcıları Alın:
SharePoint grubunun benzersiz kullanıcılarını elde etmek için tek satırlık PowerShell betiği:
Get-SPSite -Limit All | Select -ExpandProperty AllWebs | select -ExpandProperty AllUsers | ? {$_.IsDomainGroup -ne $true} | select -Unique LoginName
