Kuriaki ha fallecido

Hoy me ha llegado la triste noticia de que nuestro querido compañero Enrique Jorquera ha fallecido.


Para los que le conocimos a través de los foros ha sido un punto de referencia por su dedicación a la comunidad. Para los que no le conocieron, que sepan la gran pérdida ocurrida.


Enrique, recibe un fuerte abrazo allá donde estás ahora con el Creador, donde algún día nos podremos conocer en persona.


Descansa en Paz

Acceder a carpetas compartidas en servidores de distintos dominios

Si no existe una relación de confianza entre ambos dominios, entonces te vas al panel de control, contraseñas almacenadas, y agregas una entrada para el
servidor al que quieres acceder (lo mejor es ponerlo en la forma servidor.el.dominio.uno) y especificando una cuenta de ese dominio (ponla como usuario@el.dominio.uno) y la correspondiente contraseña. Reinicia la sesión en el equipo del dominio dos y ya está.

Restaurar los registros de servicio en la zona _msdcs

El eterno error causa de buena parte de los problemas en el Directorio Activo es usar una incorrecta configuración DNS, generalmente poniendo como servidores DNS los de un proveedor de internet. Si esto además lo hacemos en un DC, éste no se va a publicar correctamente en la zona DNS del dominio. Para solventarlo hay que hacer lo siguiente: 


Ve a la configuración tcpip del servidor y te aseguras de que como servidor DNS principal se tiene a su propia dirección ip y no tienes ningún otro
servidor DNS que no sea un DC del dominio (y mucho menos servidores DNS de internet). En la misma configuración, pulsando el botón de avanzadas, te vas a la solapa DNS y en la parte inferior le escribes como sufijo DNS, el nombre de tu dominio (midominio.com), y le marcas las dos casillas de registrarse en DNS y de
usar ese sufijo para registrarse.
 A continuación mira las propiedades de la zona DNS y te aseguras de que permite actualizaciones dinámicas y que está almacenada en Active Directory (esto último no es imprescindible, pero sí más que aconsejable). Si la tuvieras de otra forma cámbialo.
Una vez hecho, abre una ventana de comando y teclea lo siguiente:

IPCONFIG /REGISTERDNS
NET STOP NETLOGON
NET START NETLOGON

Tras esto cierras la ventana de comando y en la consola de administración del servidor DNS ya te tendrá que aparecer la zona _msdcs y los registros correspondientes.

Cómo hacer que un logon script .bat o .cmd no muestre la ventana de comando de ejecución.

En la GPO del dominio, ve a la rama Configuración de usuario – Plantillas
administrativas – Sistema – Scripts y habilita la política “Ejecutar scripts
de inicio de sesión heredados de forma oculta”.
Cuando habla de “heredados” se refiere a los archivos .bat o .cmd, ya que
los .vbs o .js no los muestra por defecto (si te fijas, hay otra política al
lado para permitir ver estos últimos en caso de necesidad.

Diferencia entre Detener y Pausar el servicio DHCP

Realmente el concepto de detener y parar (o pausar) existe para todos los
servicios en Windows. La diferencia principal entre ambos es que detener el
servicio lo quita totalmente de memoria y deja de dar servicio
completamente. Sin embargo, pausar el servicio no lo quita de memoria, sino
que deja de atender a nuevas peticiones pero mantiene las existentes hasta
que finalicen. En el caso de DHCP no hay realmente diferencia entre una y
otra, pero en otros servicios, como el servicio servidor, sí la hay. En
este, por ejemplo, si lo detienes echas a todo el mundo del servidor. Sin
embargo, si lo pausas, impides que usuarios se puedan conectar a los
recursos del servidor, pero los que tienen conexiones activas las mantienen.
De esta forma puedes avisarles para que guarden sus trabajos y cierren, sin
que otros vuelvan a conectarse al servidor; una vez veas que todos se han
desconectado (cuando uno lo hace ya no le deja volver a conectarse), ya
puedes detener completamente el servicio sin que tus usuarios hayan perdido
datos.

Cómo hacer que un servidor DHCP sólo de direcciones a MACs que tengan hecha una reserva.

Es muy sencillo. Creas un ámbito para la subred, y defines una exclusión que
coja todo el ámbito completo, por lo que nunca dará direcciones a quien se
la pida, salvo que hayas creado explícitamente una reserva para ese equipo.
Mejor práctica aún es definir las exclusiones por tramos; de esta forma
puedes con posterioridad permitir cualquiera de esos tramos simplemente
borrando la exclusión del mismo.

Iniciar sesión automáticamente en un servidor

Para poder hacerlo hay que editar la GPO de los controladores del dominio
si lo es, o una que se aplique al servidor si sólo es servidor miembro, y en
la rama “Configuración de Equipo – Configuración de Windows – Configuración
de Seguridad – Directivas locales – Opciones de Seguridad” tienes la
política “Inicio de Sesión Interactivo: No requerir Ctrl-Alt-Sup”, que tan
sólo tienes que habilitar (otra cosa es que en un dominio no sea
aconsejable, pero poder, se puede hacer).
 Una vez hecho esto hay que decirle al sistema que inicie sesión
automáticamente con un usuario del dominio, para lo cual lo más cómodo es
instalar en el servidor el último TweakUI, que funciona perfectamente en
Server 2003 y que se puede descargar de la siguiente página (ojo que hay dos
versiones allí, no vayas a descargar la de Itanium):
http://www.microsoft.com/spain/windowsxp/downloads/powertoys/xppowertoys.mspx

Una vez instalado se ejecuta, y en la rama “Logon” tienes la subrama
“Autologon”; Marcas la casilla de iniciar sesión automáticamente, pones
usuario y dominio, pinchas el botón “Set Password” para decirle la
contraseña, y listo, reinicias y funciona a la perfección.

Cambiar contraseñas periódicamente a varios usuarios

Un usuario me preguntaba si era posible automatizarlo. Esta es la respuesta que le dí:


Esto lo puedes hacer mediante un script .vbs que ejecutarás en el servidor.
Lo puedes poner en el escritorio, editarlo para cambiar la password y
ejecutarlo.  La complejidad de la clave debe coincidir con la que tengas
establecida en la GPO del dominio, donde además tendrás que establecer la
frecuencia mínima del cambio de contraseña a 1 día (deberás probarlo, pues
quizá tengas que reducirlo a 0 para que te permita el cambio todos los días
a la misma hora, ya que si lo ejecutas de forma manual es posible que no
hayan transcurrido 24 horas exactas desde el cambio del día anterior).
El script sería similar al siguiente:

Set clave = “LaContraseña99!#”
Set objUser = GetObject _
(“LDAP://cn=usuario1,ou=visitantes,dc=dominio,dc=local“)
objUser.SetPassword clave
Set objUser = GetObject _
(“LDAP://cn=usuario2,ou=visitantes,dc=dominio,dc=local“)
objUser.SetPassword clave

y así. Esto si les quieres poner la misma clave a todos. Por supuesto, si
son muchos el código se puede hacer más elegante, con un bucle que lea los
nombres de usuarios de la OU y les vaya cambiando las claves.
Si en vez de que tengan todos la misma las quieres diferentes, en lugar de
especificarla al principio les pones en cada línea la que quieras.

Y si lo quieres automatizar, podrías crear un fichero de texto con las
claves de todo el mes en el que cada línea tenga el día del mes y las claves
correspondientes a los usuarios, separadas por comas. Al principio del script haces una
lectura del fichero en la que busques la línea cuyo primer campo coincida
con el día del mes en que estás, y el segundo campo sería la contraseña a
establecer a los usuarios. De esta forma puedes programar la ejecución del
.vbs todos los días a primera hora y sólo tendrás que actualizar una vez al
mes el fichero de contraseñas. Quedaría algo así como lo siguiente:

Const ForReading = 1
strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2″)
Set colItems = objWMIService.ExecQuery(“Select * from Win32_LocalTime”)
For Each objItem in colItems
    hoy = objItem.Day
Next

Set objFSO = CreateObject(“Scripting.FileSystemObject”)
Set objTextFile = objFSO.OpenTextFile _
(“c:\scripts\passwords.txt”, ForReading)
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
arrClaves = Split(strNextLine , “,”)
If arrClaves(0) = hoy then
    clave1 = arrClaves(1)
    clave2 = arrClaves(2)
    clave3 = arrClaves(3)
    clave4 = arrClaves(4)
End If
Next
Loop
Set objUser = GetObject _
(“LDAP://cn=usuario1,ou=visitantes,dc=dominio,dc=local“)
objUser.SetPassword clave1
Set objUser = GetObject _
(“LDAP://cn=usuario2,ou=visitantes,dc=dominio,dc=local“)
objUser.SetPassword clave2