miércoles, 14 de septiembre de 2016

User profile cannot be loaded

Hoy, uno de los administradores quiso autenticarse en un servidor y recibió un error (Figura 1).
Figura 1

El error me resultaba conocido, y está relacionado con la corrupción del perfil del usuario. Varios artículos indican que se debe entrar en el registro del equipo y borrar una clave que contiene el SID del usuario, la cual finaliza con ".BAK". Pero éste no era el caso, ya que para poder aplicar esa resolución, era necesario que el usuario se hubiera validado al menos una vez en el equipo, para que el perfil pudiera crearse y luego corromperse.

Buscando otra solución, revisé el Event Viewer y encontré un evento relacionado (Figura 2).

Figura 2


Al parecer un KB aplicado al equipo cambió los permisos en el archivo que se indica en el Event 1509. La resolución fue modificar los permisos en el archivo para que herede los mismos permisos que el directorio que lo contenía, para que la copia del perfil del nuevo usuario se complete con éxito.




martes, 19 de abril de 2016

Buscar permisos en AD

Buscar en Active Directory los permisos que se han asignado a diferentes objetos, es una tarea complicada. En AD existen varios tipos de objeto: OU, usuarios, grupos, cuentas de equipo, etc, y a veces necesitamos saber dónde fue delegada una cuenta.
Para facilitar la búsqueda, podemos utilizar PowerShell!
Como vamos a trabajar con Active Directory, lo primero es importar el modulo de AD (Figura 1) y cambiar la ubicación de trabajo desde el C:\ a AD (Figura 1)
Figura 1
Luego le asignamos a una variable, el valor de todos los objetos de AD (Figura 2).
Figura 2

Por último, para cada valor de la variable donde tenemos todos los objetos de AD, hacemos una búsqueda de los permisos en su Access Control List (ACL) y mostramos los resultados (Figura 3).

Figura 3

cmdlets:
Import-Module ActiveDirectory

 
Set-Location AD:

 
$allO=(Get-ADObject -Filter * -Properties DistinguishedName).distinguishedname

 
foreach ($one in $allO) {(get-acl $one).access |? {$_.IdentityReference -like "*deleo*" }| ft @{Expression={$one};label="Nombre"},IdentityReference,AccessControlType,@{Expression={(Get-ADObject $one).objectClass};label="Type"}}

lunes, 21 de marzo de 2016

Evento en el MUG - Introducción a PowerShell para IT Pros

Para los que estén por Buenos Aires, el Miércoles 6 de Abril de 2016, de 18:30 a 20:30 hs, en el Auditorio del MUG, Rivadavia 1479  Primer Piso "A".

Será un encuentro introductorio para IT Pros que quieran iniciarse en el mundo de PowerShell. Orientado a administradores de red y técnicos de soporte. No es un evento para desarrolladores, aunque también son bienvenidos.

El evento es gratuito y puede registrarse en este link.

viernes, 18 de marzo de 2016

FlushDNS con problemas

Muchas veces usamos el comando "Ipconfig /FlushDNS" para borrar la lista de nombres almacenada en un equipo, algo tan simple que no parece probable que nos encontremos con un error.
Sin embargo, hace poco, al intentar borrar la lista de nombres utilizando ese comando me encontré con un error que parecía bastante complicado (Figura 1).
Figura 1
Could not flush the DNS Resolver Cache: Function failed during execution.
Por suerte, resolverlo resulta mucho más fácil de lo que parece. El problema es que el servicio "DNS Client" no estaba en ejecución, como pudimos ver por la consola de servicios (Figura 2) o por la línea de comandos (Figura 3).
Figura 2

Figura 3

Al iniciar el servicio (En la consola de Servicios, con el comando "Net Start DNSCache" o el comando "SC Start DNSCache") pudimos limpiar exitosamente la lista de nombres almacenados en memoria (Figura 4).
Figura 4