Skip to main content

Convert classic users to claims using PowerShell

# START INITIALISATIONS
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
#Initialise Web
$web = Get-SPWeb -identity "site collection URL"
#Initialise Sharepoint list
$list = $web.Lists["Site Owner Survey Input Form"]    
write-host $web
write-host $list

#Initialise AD
$_Searcher= New-Object System.DirectoryServices.DirectorySearcher
$_Searcher.PageSize = 1000

# END INITIALISATIONS

# START Main Code

$filepath = "D:\MyInput.csv"
Import-CSV $filepath | foreach-object{
$siteurl = $_.siteurl
$landid = $_.lanid
$sameaccountname = $landid
write-host $siteurl
write-host $landid
write-host $sameaccountname
 
$claim = "i:0ǵ.t|federation.global.xyz.com|" + $sameaccountname
$cp = New-SPClaimsPrincipal -Identity $claim -IdentityType "EncodedClaim"
$user = $web.EnsureUser($cp.ToEncodedString())
                   
$newItem = $list.Items.Add()
$newItem["Title"] = $siteurl;
$newItem["Primary Owner"] = $user;
$newItem.Update();

}

Comments

Popular posts from this blog

Permission audit report for site and all sub sites using PowerShell

Use below script to get Permission audit report for site and all sub sites using PowerShell, Add-PSSnapin "Microsoft.SharePoint.PowerShell" $URL="https://intranet.contoso.com/sales/mysite/"      $site = Get-SPSite $URL      #Write the Header to "Tab Separated Text File"         "Site Name`t  URL `t Group Name `t User Account `t User Name `t E-Mail" | out-file "E:\Ulhas\UsersandGroupsRpt.txt"          #Iterate through all Webs       foreach ($web in $site.AllWebs)       {         #Write the Header to "Tab Separated Text File"         "$($web.title) `t $($web.URL) `t  `t  `t `t " | out-file "E:\Ulhas\UsersandGroupsRpt.txt" -append          #Get all Groups and Iterate through            foreach ($group in $Web.groups)         ...