I had to find all the users of a site collection and write to a file, to add to another site. I was looking for one but couldn't find any, this script will dump all the users into a file with a semicolumn so it will be a straight copy paste.
Download-
http://1drv.ms/1PYONI8
Add-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue
[System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.SharePoint”) > $null
$SiteCollectionURL = "http://You site/collection name"
$site = new-object Microsoft.SharePoint.SPSite($SiteCollectionURL)
$web = $site.openweb()
$siteUsers = $web.SiteUsers
foreach($user in $siteUsers)
{
Write-Host "Site Collection URL:", $SiteCollectionURL
if($user.IsSiteAdmin -eq $true)
{
Write-Host "ADMIN: ", $user.LoginName
}
else
{
<# This will append all users on to a Text file
Add-Content c:\userlist.txt $user.LoginName -Append #>
<# This will append all users on to a Text file with no newline
$user.LoginName | Out-File c:\userlist.txt -nonewline #>
<# Another way to output the file
Write-output $user.LoginName | Out-File c:\myfile.txt -Append #>
<# This will add all the user on a Single line with a semicolumn so that you can directly reuse this with no formatting #>
$alluserlist += $user.LoginName + ";"
}
}
<# Showing the set of userd and writing the users to a txt file #>
Write-Host $alluserlist
[system.io.file]::WriteAllText("C:\io.txt", $alluserlist)
$web.Dispose()
$site.Dispose()