Búsqueda de sitios web

Encuentre correos electrónicos de usuarios huérfanos en elementos de la lista usando PowerShell


Requisito:
Nuestra aplicación personalizada para enviar boletines informativos a toda la organización mantiene su lista de usuarios para enviar correos electrónicos en una lista de SharePoint llamada "Suscripciones". Los usuarios se configuran en un campo de selección de personas de la lista. Ahora, cuando alguien abandona la organización, su cuenta queda huérfana y sus correos electrónicos también dejan de ser válidos.

Entonces, antes de procesar la columna Correos electrónicos, tuvimos que escanear la columna del selector de personas en la lista en busca de correos electrónicos de usuarios huérfanos.

Script de PowerShell para buscar usuarios huérfanos en sus correos electrónicos:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
Import-Module ActiveDirectory
 
$Web= Get-SPWeb "https://portal.crescent.com/News/"
$List = $Web.Lists["Subscriptions"]
$FieldName="Members"

foreach($item in $List.Items)
{
  if($Item[$FieldName] -ne $null)
  {
   #Get People picker field values collection
   $UserCollection = New-Object Microsoft.Sharepoint.SPFieldUserValueCollection($Web,$Item[$FieldName].ToString())
         
        #Get each User from the Person or Group field
        foreach($UserObj in $UserCollection)
        {
            #Try to get the user from AD from Email 
            $ADUser= Get-ADUser -Filter {mail -eq $UserObj.User.Email}
          
            #check if user email doesn't exist in AD
            if($ADUser -eq $null)
             {
                "https://portal.crescent.com/News/Pages/ViewUser.aspx?UserId=$($Item['ID'])" + $UserObj.User.LoginName + $UserObj.User.Email
             }
        }
    }
}

Artículos relacionados