Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #PowerShell Script – Delete Inactive User Profiles – SharePoint 2010/2013
- #The scripts is distributet "as-is." Use it on your own risk. The author give no warranties, guarantees or conditions.
- if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
- Add-PSSnapin "Microsoft.SharePoint.PowerShell"
- }
- $site = Get-SPSite "<site url>"
- $ctx = Get-SPServiceContext $site
- $pm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($ctx)
- $ProfileDB = Get-SPDatabase | ? { $_.Type -eq "Microsoft.Office.Server.Administration.ProfileDatabase"}
- $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
- $SqlConnection.ConnectionString = $ProfileDB.DatabaseConnectionString
- $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
- $SqlCmd.CommandText = "select NTName,RecordId from UserProfile_Full where bDeleted=1″
- $SqlCmd.Connection = $SqlConnection
- $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
- $SqlAdapter.SelectCommand = $SqlCmd
- $DataSet = New-Object System.Data.DataSet
- $SqlAdapter.Fill($DataSet)
- $SqlConnection.Close()
- Write-host "Total Count: " $DataSet.Tables[0].Rows.Count
- Write-Host "Following Inactive Accounts will be deleted !"
- foreach($user in $DataSet.Tables[0].Rows)
- {
- write-host "Planning to delete :" $user["NTName"] -ForegroundColor Green
- $profile = $pm.GetProfile($user["RecordId"])
- #To enable delete operation remove comment out for below line
- #$pm.RemoveProfile($profile)
- #write-host $user["NTName"] is deleted!!! -ForegroundColor Red
- }
- write-host "Operation Completed !"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement