[System.Reflection.Assembly]:: LoadWithPartialName (”Microsoft.SharePoint”) > $null
$site = ny-anmärker Microsoft.SharePoint.SPSite ($SiteCollectionURL)
$web = $site.openweb ()
$siteCollUsers = $web.SiteUsers
foreach ($MyUser i $siteCollUsers)
{
om (($MyUser.LoginName.ToLower () - ne ”sharepoint \ system”) - och ($MyUser.LoginName.ToLower () - ne ”nt-myndighet \ legitimerade användare”) - och, ne (för $MyUser.LoginName.ToLower () - ”den tjänste- nt-myndighet \ lokalen”))
{
$UserName = $MyUser.LoginName.ToLower ()
$UserNameSplit = $UserName.split (”\”)
#Write-Vara värd ”användareinloggningen: ” $MyUser.LoginName, ”SID: ” $MyUser.Sid
$returncheck = Check_User_In_ActiveDirectory $UserNameSplit [1] $mydomaincnx
om ($returncheck - eq $False)
{
$nameFromSID = ConvertTo-Namnger $MyUser.Sid
om ($nameFromSID - ne ”inte-funnen användare”)
{
$command = ”stsadm.exe - nolla-migrateuser - oldlogin” + $MyUser.LoginNAme + ”- newlogin” + $nameFromSID + ”- ignoresidhistory”,
Skriva-tillverkad $command | ut-spara C:\migrateUsers.txt - fästa
}
}
}
}
$web. Kassera ()
$site. Kassera ()
fungera ConvertTo-Namnger ($SID)
{
fälla
{
”Inte-funnen användare”; fortsätta
}
(ny-anmärka security.principal.securityidentifier $SID) (.translate ([security.principal.ntaccount])). Värdera
}
fungera Check_User_In_ActiveDirectory ([stränga], $LoginName, [stränga], $domaincnx)
{
$returnValue = $false
#Filter på användaren som finns och aktiverade
$strFilter = ”(& (|(objectCategory=user) (objectCategory=group))(samAccountName=$LoginName))”,
$objDomain = Ny-Anmärker System.DirectoryServices.DirectoryEntry ($domaincnx)
$objSearcher = Ny-Anmärker System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = ”Subtree”,
#$objSearcher.PropertiesToLoad.Add (”namnge”),
$colResults = $objSearcher.FindAll ()
om ($colResults.Count - gt 0)
{
#Write-Vara värd ”kontot finns och aktivet: ” $LoginName
$returnValue = $true
}
återgång $returnValue
}
|