Usuarios ocultos en Skype for Business

Hoy quiero compartir algo que hace un tiempo tuve que resolver una situación en particular: Habilitar usuarios ocultos en Skype for Business.

Por qué habilitar? Porque a simple vista estos usuarios no existían. Es decir, al intentar habilitarlos en el Panel de Control de Skype for Business, no aparecían en las busquedas. Era como si los hubieran eliminados de Active Directory.

Luego de buscar información por un rato, me comentan que ellos habían realizado un piloto con Lync Server 2010. Y adivinen que usuarios participaron de ese piloto? Los mismos que no aparecían en la nueva implementación!

Empece a revisar los atributos de Active Directory y encontré varios cambios que estaban siendo utilizados con información y configuración que no era la actual.

Es por ello que quiero compartir una pequeña función para poder “ habilitar” (o limpiar) esos usuarios para las nuevas implementaciones:

Function Clean-SFBUsers {
    <#
    .SYNOPSIS
        Este Cmdlet permite borrar los valores de los atributos que usa Skype for Business/Lync Server
        en un usuario (o varios) de la organización.
    .EXAMPLE
        Clean-SFBUsers -User 'vsilva'
        Con el ejemplo anterior, todos los atributos de la indentidad 'vsilva'
        que estén con información pasarán a quedar de forma predeterminada sin valores asignados.
    .PARAMETER User
        Identidad a la que se pretende modificar los atributos.
    #>
    param (
      [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()][string]$User
    )
    process {
      $adUser = Get-ADUser $User
      $ldapDN = "LDAP://" + $adUser.distinguishedName
      $userObject = New-Object DirectoryServices.DirectoryEntry $ldapDN
      $userObject.PutEx(1, "msRTCSIP-UserEnabled", $null)
      $userObject.PutEx(1, "msRTCSIP-PrimaryHomeServer", $null)
      $userObject.PutEx(1, "msRTCSIP-PrimaryUserAddress", $null)
      $userObject.PutEx(1, "msRTCSIP-ArchivingEnabled", $null)
      $userObject.PutEx(1, "msRTCSIP-OptionFlags", $null)
      $userObject.PutEx(1, "msRTCSIP-DeploymentLocator", $null)
      $userObject.PutEx(1, "msRTCSIP-UserPolicies", $null)
      $userObject.PutEx(1, "msRTCSIP-FederationEnabled", $null)
      $userObject.PutEx(1, "msRTCSIP-InternetAccessEnabled", $null)
      $adUser.SetInfo()
    }
}

Con ésta función vamos a poder limpiar toda la basura en los atributos que son utilizados para Skype for Business 2015.

Saludos,

Comments