Administrar Active Directory con Powershell: modificar la carpeta personal del perfil de usuario

El otro dia me encontré con un problema bastante «peasado» para resolver. En casa de un cliente, hicimos una migación de servidor de dominio de un Win2k3 hacia un Win2k8R2 con un Win2k12R2 como soporte secundario. La migración fue perfecta pero repasando los perfiles de usuario del ActiveDirectory, vi que muchos de ellos en su perfil tenian configurada una ruta hacia una carpeta personal que ya no servia de nada.

Problema: como hago para poder eliminar la ruta configurada en el perfil de usuario sin ir uno a uno, botón derecho, propieades, perfil … para unos 80 usuarios?

Solución: mi queridíssimo Powershell 🙂 Empezamos!

  • Primer paso (importante): Ejecutar powershell desde nuestro servidor controlador de dominio y tener instalado los modulos de gestión del ActiveDirectory (por defecto cuando promocionamos un servidor, se instalan).
AddWindowsFeature RSAT-AD-PowerShell
Import-Module ActiveDirectory
  • Segundo Paso: Una vez instalado e importado el módulo, deberemos sacar la información de los usuarios. Para ello usaremos el comando Get-ADUser. Pero atención, si lo usamos a «paloseco», se nos pedirà que apliquemos un filtro de búsqueda. Para que hagáis la prueba, ejecutad el siguiente comando:
Get-ADUser -Filter *

El parámetro «-Filter *» nos va a mostrar todos los usuarios del AD.

  • Tercer paso: ahora que sabemos buscar los usuarios, deberemos saber la información contenida en dicho usuario. Para ello usaremos el parámetro «-properties *». Esto nos sacará TODAS las propiedades del usuario. Con ello sabremos que campo modificar:
Get-ADUser [nombre de usuario con el que se loguea] -propierties *

Si nos fijamos en el resultado, ya vemos que campo queremos modificar en nuestro caso concreto: HomeDirectory. Sabiendo esto, podemos acotar aún más el filtro:

Get-ADUser [nombre de usuario con el que se loguea] -properties HomeDirectory
  • Quarto paso:Ahora teniendo ya toda la información, procedemos a la modificación del parámetro HomeDirectory para TODOS los usuarios del ActiveDirectory y lo dejaremos sin ninguna ruta:
Get-ADUser -Filter * -properties HomeDirectory | Set-ADUser -Clear HomeDirectory

Y listos! Nos hemos ahorrado ir usuario a usuario modificando el HomeDirectory y lo hemos podido hacer en solo una línea de código. Ahora bien, si somos un poco ordenados y tenemos inventariadas las rutas de las carpetas locales, podemos hacer filtros y modificar solamente aquellas rutas que nos interesen. Por ejemplo, si solo quiero modificar la ruta Z:\empresa\perfiles\usuarios\ usaría el siguiente comando:

Get-ADUser -Filter * -properties HomeDirectory | where {$_.homedirectory -like "Z:\empresa\perfiles\usuarios" | Set-ADUser -Clear HomeDirectory

O si quiero cambiar a otro directorio de red:

Get-ADUser -Filter * -properties HomeDirectory | where {$_.homedirectory -like "[Directorio Viejo" | Set-ADUser -HomeDirectory "[Directorio Nuevo]"

PowerShell si lo sabemos usar o si queremos administrar nuestro dominio de una forma sencilla y rápida, es una herramienta muy poderosa. Además, siempre podemos tener nuestro repositorio de comandos en un OneNote para tenerlos a mano. En mi caso, no siempre me acuerdo de todo 😛

Espero haberos ayudado!

Recuperar el password de inicio de sesión en Windows

Una de las cosas que más odiaba hace un tiempo era cuando debía acceder a una máquina de la que nadie sabía ni se acordaba del password. Hoy en día esto para mi supone perder solamente 5 minutos de mi tiempo. Os presento una solución muy útil para solventar este problema : se llama chntpw.

Es un Live CD basado en una distribución Linux que nos permite acceder a los ficheros donde se almacenan los passwords de Windows (el fichero SAM y Security) y cambiar o eliminar por completo la contraseña de inicio de sesión. El sistema funciona para las versiones NT/2000/XP/Vista/Win7 .

A primer vista puede parecer muy difícil pero la verdad es que cuando lo haces un par de veces, el proceso esta chupado.

  • Primero nos descargamos la ISO y la grabamos en un CD | Descarga
  • Cambiamos la secuencia de arranque del PC y hacemos que arranque mediante el CD y dejamos que cargue el sistema.

Cuando se carga el chntpw pulsamos Intro para cargar el software

En el primer menú, nos dice que ha encontrado una partición Windows y que debemos activarla. Pulsamos el número de la partición (normalmente 1) y seguidamente nos pedirá cual es la ruta donde se encuentran los ficheros. Pulsamos [Intro] (puesto que chntpw ya encuentra la ruta por defecto) vamos al tercer punto.

Seguidamente seleccionamos la opción [1] que nos dice «Password reset [sam system security]»

Aquí pulsaremos otra vez la opción [1] puesto que lo que queremos es editar la información del usuario y de los passwords (Edit user data and password)

Este es el paso que podríamos decir más «complejo». Veremos que nos aparecen en pantalla los usuarios que tienen nuestro sistema operativo. Entonces, debemos seleccionar el usuario del que hemos perdido la contraseña, y esto lo haremos poniendo su RID que son los números que hay a la izquierda de la tabla escribiendo 0x<RID> p.ej. si queremos elegir el usuario Administrador, escribiremos 0x01f4

Una vez seleccionado el usuario,  nos aparecerá un menú con varias opciones. En nuestro caso (y como ya he dicho, para facilitar el proceso) seleccionaremos la opción [1] «Clear (blank) user password»

Bien. Una vez elegido la opción [1], el sistema eliminará el password. Ahora, deberemos salir del menú escribiendo el símbolo de admiración [!] y seguidamente, escribiremos [q] para salir y nos pedirá si queremos guardar. Le decimos que sí pulsando la [y]

Nos pedirá si queremos hacer más operaciones. Pulsamos no escribiendo la [n], pulsamos Control+Shift+Del para reiniciar, sacamos el CD y ….

… ¡Listo! Ya podremos acceder a Windows nuevamente con nuestro usuario y sin password.  Espero que os haya servido 🙂

Tip: renombrar muchos ficheros de golpe en Windows 7

Pues tal y como reza el título, hay un simple truco para poder renombrar muchos ficheros de golpe. Un ejemplo en su aplicación sería renombrar todas las fotos sacas de la cámara de fotos, y cambiar el nombre DSCXXXXX.jpg por foto_1.jpg, foto_2.jpg, etcétera.

  • Abrimos la carpeta donde tenemos los archivos a renombrar

  • Vamos a Organizar -> Seleccionar todo

  • Una vez seleccionado todo, pulsamos F2 y nos dejará renombrar un fichero.

  • Le cambiamos el nombre por el que queramos y …

  • …. ¡voilá! ya tenemos todos nuestros ficheros renombrados

Un NOTA importante a tener en cuenta es que renombrar múltiples ficheros, no implica ordenarlos. Espero que os haya servido de ayuda.

Cambiar puerto 3389 de Terminal Services por otro puerto en Windows

Terminal Services es un servicio de conexión remota muy usado en Windows/Linux para conectarse a otros ordenadores, ya sean dentro de una misma red o desde fuera de la misma. El puerto por defecto es el 3389 pero,¿qué sucede si en el mismo router ya tenemos una IP asignada a este puerto y queremos/necesitamos abrir otra conexión Terminal Services? (Des de otro PC y con IP local distinta, se entiende) Este «how to» es sólo para Windows XP/Vista/7

  • Abrimos regedit

Inicio -> Ejecutar -> Regedit

  • Buscamos la siguiente llave en el registro

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\

TerminalServer\Wds\rdpwd\Tds\tcp

  • Y en el valor PortNumber hacemos doble click y le cambiamos la visualización de Hexadecimal a Decimal. Entonces nos mostrarà el puerto 3389 y lo que haremos será cambiarlo (p.ej.) por el 3388 o el puerto que deseemos
  • Ahora, buscamos la siguiente llave:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\

TerminalServer\WinStations\RDP-tcp

  • Y hacemos el mismo paso anterior. Modificamos el valor Decimal de PortNumber y le ponemos el mismo puerto que hemos puesto en el paso anterior

Cerramos el registro, reiniciamos la máquina y ya tendremos en ese Windows el puerto Terminal Service modificado. Ahora, sólo debemos ir al router y redireccionar la IP xxx.xxx.xxx.xxx hacia el nuevo puerto.