Buscar por fecha en Outlook Web App (OWA)

Buscar en OWA correos entre determinadas fechas es menos intuitivo de lo esperado, por lo menos en Exchange 2010.

El problema está en que tenemos que utilizar las palabras clave en inglés y las fechas en formato americano, sin importar en cual idioma tenemos la interfaz de usuario.

Por ejemplo, si queremos buscar correos recibidos entre Junio del 2013 y Julio del 2015 tendríamos que colocar lo siguiente en la barra de busqueda de OWA:

received:06/01/2013..07/31/2014

Para los enviados tendríamos que colocar:

sent:06/01/2013..07/31/2014

Referencia

Administrar Active Directory con PowerShell y ActiveRoles Management Shell

La administración de Active Directory se ha hecho más sencilla con el paso de los años, se ha pasado por la interfaz ADUC (Active Directory Users and Computers), herramientas de línea de comando, el Centro de administración de Active Directory y en los últimos años los Snap-ins de PowerShell. Las interfaces gráficas son muy útiles para tareas puntulaes, tales como cambiar el nombre de un usuario, bloquear y desbloquear cuentas o mover PCs de una OU a otra. Sin embargo, para trabajos en lote es mejor utilizar scripts de PowerShell. El Snap-in de Active Directory incluído en las herramientas de RSAT de Windows 7 están bien, pero en mi opinión tiene fallos que dificultan su utilización. No quiero entrar en detalle, pero uno de estos fallos es que no muestra los Time Stamps de algunos campos en un formato legible y estos campos se utilizan mucho en los scripts.

Un sustituto de este Snap-in es el ActiveRoles Managemente Shell ofrecido de forma gratuita por DELL (antes Quest) desde hace algunos años. Lo puedes descargar desde aquí.

Algunos ejemplos de scripts que se pueden ejecutar con esta herramienta son los siguientes:

  • Listar usuarios con su última fecha de logon (la diferencia entre LastLogon y LastLogonTimeStamp para el próximo post)
    Get-QADUser -IncludedProperties LastLogonTimeStamp | Select-Object Name,ParentContainer,LastLogonTimeStamp
  • Listar usuarios deshabilitados
    Get-QADUser -Disabled:$true
  • Deshabilitar todas las cuentas de equipo que estén inactivas
    Get-QADComputer -Inactive | Disable-QADComputer
  • Exportar todos los usuarios de la OU Administración a un CSV delimitado por punto y coma
    Get-QADUser -SearchRoot "chorbo.es/Administracion" | Export-Csv -NoTypeInformation -Encoding UTF8 -Delimiter ";" UsuariosAdministracion.csv

Listar puntos de montaje en Windows

Los puntos de montaje, si bien son muy útiles algunos programas no los “entienden” y por lo tanto no los interpretan correctamente. En mi caso fue el VirusScan que no interpretaba las exclusiones correctamente.

La solución que ellos proponen es colocar la ruta verdadera en el listado de exclusiones. Para hacer esto necesitamos saber el GUID del volumén al que apunta el punto de montaje. Para saber este identificador ellos sugieren crear un fichero EICAR en la ruta a excluir y ver en los logs el GUID del volúmen. Esto para mí es bastante engorroso, es mucho más fácil ir a la linea de comandos y ejecutar la utilidad mountvol. Esta utilidad lista los puntos de montaje que tiene el sistema y a que volúmenes están apuntando.

Referencia

Error al instalar Distribution Point en SCCM 2012

Al intentar desplegar un punto de distribución me encontré con que la instalación fallaba con un error poco claro. En la pestaña de Distribution Point Configuration Status aparecía que la preparación del servidor había finalizado correctamente, sin embargo, al intentar distribuir el software del agente de SCCM la tarea fallaba. Después de forzar varias veces la distribución manualmente el error continuaba.

Revisando el log smsdpprov.log en el servidor de destino me encontré con lo siguiente:

sccm_dp

No se puede abrir el archivo D:\SCCMContentLib\DataLib\EAA00002.4.temp\ccmsetup.cab. Lógico, no se puede abrir un archivo que está en una unidad que ni siquiera existe. Este servidor no tiene unidad D:\. Entonces, ¿Por qué aparece esta ruta en los logs?

Uno de los problemas de las fusiones/separaciones de empresas es que muchas veces los proyectos quedan a medio completar y las tareas de separación no se realizan correctamente. En este caso en concreto, este servidor sí tenía una unidad D:\ y en algún momento fue un punto de distribución para otra instalación de SCCM. Sin embargo, antes de la separación entre las dos empresas no se eliminó este servidor de la jerarquía del SCCM, por lo que los antiguos valores continuaban en el registro.

Para solucionar este problema tuve que editar el registro de windows. La ruta en este caso fue HKLM\Software\Microsoft\SMS\DP. El valor problemático era ContentLibraryPath y tuve que cambiarlo de D:\SCCMContentLib a E:\SCCMContentLib.

sccm_dp2

Una vez hecho este cambio y forzada nuevamente la distribución de los archivos la tarea se ejecutó correctamente.

Error 0x80070660 (1632) al instalar Microsoft Visual C++ 2010 Redistributable (SCCM)

Hoy estaba preparando una máquina para hacer pruebas de despliegues de software con el SCCM 2012 R2 y me encontré con problemas apenas al iniciar. Creé una máquina virtual desde cero y le instalé Windows 7 Professional x64 con el Service Pack 1, la agregué al dominio y luego intenté instalarle el cliente de SCCM.

La instalación manual del cliente es muy fácil, solo tenía que copiar el archivo ccmsetup.exe al equipo y ejecutar el siguiente comando:

CCMSetup.exe /mp:MISERVIDOR /logon SMSSITECODE=AUTO

Sin embargo, pasados varios minutos me di cuenta de que el proceso ccmsetup.exe había finalizado y el agente todavía no estaba instalado.

Al abrir el fichero C:\Windows\ccmsetup\logs\ccmsetup.log vi que la instalación había fallado retornado el error 0x80070660. Este error es una “traducción” del error 1632.

ccmsetup

Si buscamos en la documentación de Microsoft qué significa este error veremos que hace referencia a la carpeta de archivos temporales, indicando que la unidad donde esta se encuentra puede estar llena o que el instalador no tiene permisos de escritura sobre la misma.

La carpeta de archivos temporales por lo general está en la ruta C:\Users\USUARIO\AppData\Local\Temp y en mi caso la unidad C:\ tenía espacio de sobra y los permisos eran correctos, así que el problema debía estar en otra parte.

Después de estar casi una hora revisando logs sin éxito decidí mirar en el log del instalador del Microsoft Visual C++ 2010 Redistributable. Este log se encuentra en la carpeta de archivos temporales con el nombre Microsoft Visual C++ 2010 x64 Redistributable Setup_FECHA_HORA.txt.

ccmsetup2

Como podéis ver en la captura, el log no dice mucho acerca de cual puede ser el origen del error. Sin embargo, este hace referencia a la carpeta C:\Windows\Installer. Intenté entrar a esta carpeta para ver si encontraba alguna pista sobre el origen del error y para mi sorpresa la carpeta no existía.

Creé la carpeta e intenté ejecutar la instalación nuevamente y esta vez concluyó exitosamente.

En resumen, el error fue causado porque, al ser una instalación nueva, el servicio de Windows Installer nunca se había ejecutado, por lo tanto la carpeta C:\Windows\Installer no había sido creada.