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 鈥渉abilitar鈥 (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