PoweShell V de V

 

Artículos anteriores de PowerShell:


 










  •  


    Llegamos a la última entrega de esta serie dedicada a PowerShel en Windows Vista. En esta ocasión me gustaría centrar la atención un poco más en las funcionalidades de scripting que incorpora PowerShell.


    Probablemente la mayoría de los que leéis este Blog sois administradores o usuarios, sin embargo en muchas ocasiones seguro que habéis tenido que tratar con algún problema que solo se podía resolver mediante la programación de un script.

    PowerShell nos aporta toda la potencia de la administración por línea de comandos, pero además nos permite extender la funcionalidad creando nuestros propios scripts para resolver situaciones más complejas. Comenzaremos creando un sencillo script para crear n usuarios de forma recursiva. Podemos emplear las siguientes opciones de bucle: 

    • Do ….. while

    • Do ….. Until

    • For

    $n = 1$conn=[ADSI]»WinNT://localhost»  Do {$user = $conn.Create(«user»,»TestUser» + $n) $user.SetPassword(«Passw0rd»)$user.SetInfo()            $n++}While ($n –lt 10)
    Escribimos este script en un archivo de texto y lo guardamos con la extensión .ps1Para ejecutarlo solo debemos ir a la consola de PowerShell y escribir el nombre del script antecedido de “.”, por ejemplo, si lo hemos llamado CrearUsuario.ps1, entonces escribiremos en la consola .CrearUsuarios.ps1  

    Sin embago rápidamente observareis que os da un error de ejecución del script. Esto se debe a que por motivos de seguridad, de forma predeterminada PowerShell no ejecuta scripts que no estén firmados digitalmente por una entidad de confianza.

      Para cambiar este comportamiento y que nos permita ejecutar nuestros scripts, necesitaremos establecer el nivel de seguridad en no restringido o firma remota: 

    • Unrestricted: No se verifica la firma de ningún script

    • remoteSigned: Se verifica la firma de los scripts descargados de Internet, pero se puedenejecutar los scripts creados en el equipo local.
    Lógicamente es una mejor opción de seguridad configurar remoteSigned que Unrestricted, por lo tanto: 

    • Set-executionpolicy RemoteSigned
    Si queremos comprobar el estado de la directiva de seguridad: 

    • Get-executionpolicy
    Ahora bien, si en vez de crear usuarios a partir de un bucle numerado, queremos leer la información desde un archivo de texto en formato .csv, entonces podemos escribir algo como lo siguiente: 
    $conn=[ADSI]»WinNT://localhost» import-csv Usuarios.csv | forEach {             $user = $conn.Create(«user»,$_.Nombre)             $user.SetPassword($_.Pass)            $user.SetInfo()            }
     El archivo .csv debemos escribir los nombres de las propiedades de los usuarios y un usuario en cada línea: 
    Nombre,PassJulio,Passw0rdMaria, Passw0rdLuis, Passw0rdPedro, Passw0rd
    En esta ocasión hacemos uso de los cmdlets import-csv y forEach El cmdlet import-csv, lee datos de archivos de texto separado por comas e interpreta una a una cada línea de información. No es necesario hacer un ciclo de lectura ya que está intrínsecamente incorporado al cmdlet.Por otro lado, el cmdlet forEach (o forEach-Object) es en sí un ciclo de procesamiento, el cual finaliza cuando ya no hay más objetos en el arreglo. Como podeis observar se pasan los resultados del import-csv a forEach mediante el uso de la tubería ( | ) El cmdlet import-csv se utiliza habitualmente en entornos de Exchange Server para crear de forma masiva multiples usuarios y buzones con un mínimo esfuerzo: 
    Import-CSV ListadeBuzones.csv | foreach {new-mailbox -alias $_.alias -name $_.name -userPrincipalName $_.UPN -database «Mailbox Database» -org Users -Password $Password}
    Finalmente podemos exportar la información recogida o los cambios realizados en el sistema en un informe html para su archivado. Informe de usuarios locales:

    • Get-WmiObject win32_Useraccount -ComputerName localhost | where {$_.LocalAccount} | select-object -property Name,Domain,SID,AccountType | convertto-html | out-file C:usuariosLocales.html
    Informe de recursos compartidos (el punto después de ComputerName indica el equipo local. Si se desea obtener la información de otro equipo, se debe sustituir el . por el nombre del equipo remoto)

    • Get-WmiObject -Namespace rootcimv2 -Class Win32_Share -ComputerName .| select-object -property Name,Path,Description,Computer | ConvertTo-html | out-file C:RecursosCompartidos.html
    Hemos visto como con unos conocimientos básicos de programación y con PowerShell podemos realizar tareas muy potentes en muy poco tiempo. Os recomiendo seguir profundizando y ampliando conocimientos con esta consola de Microsoft, ya que no solo Windows Vista la incorpora, sino que la mayoría de productos Microsoft que ya están en el mercado o a punto de salir incluyen PowerShell.

    System Center Operations Manager 2007, System Center Virtual Machine Manager 2007, SQL Server 2008, Exchange Server 2007, Windows Server 2008, IIS 7, etc.

    PoweShell IV de V

    Los anteriores artículos de esta serie los podéis leer en:



    De nuevo con otra entrega de la serie de artículos dedicados a PowerShell en Windows Vista.


    En esta ocasión os voy a comentar cómo podemos realizar un par de tareas prácticas que cualquier administrador hace habitualmente, con PowerShell como son la administración de usuarios y grupos locales y la administración de dispositivos de red.


    Administración de usuarios locales:


    Si queremos listar los usuarios y grupos de nuestro equipo, necesitaremos hacer una consulta a la clase correspondiente de la Instrumentación del Sistema (WMI), para ello utilizaremos el cmdlet get-wmiobject y escribiremos lo siguiente:




    • Get-WmiObject win32_Useraccount -ComputerName localhost

    El en resultado probablemente aparezcan todas las cuentas que están creadas en el equipo, incluidas las de sistema, por lo tanto vamos a filtrar los resultados por el parámetro .localAccount, es decir, que solo se incluyan aquellas cuentas definidas como locales.




    • Get-WmiObject win32_Useraccount -ComputerName localhost | where {$_.LocalAccount}

    De igual forma, para listar los grupos, haremos una consulta a la clase win32_Group, escribiendo lo siguiente:




    • Get-WmiObject win32_Group -ComputerName localhost

    Pero, ¿qué debemos hacer para crear un nuevo usuario o grupo con PowerShell? La creación de cuentas no es un proceso tan directo como la obtención de información, ya que debemos aportar datos como el nombre, contraseña, etc.


    Para poder crear una cuenta local debemos conectarnos con el servicio ADSI local y posteriormente crear un objeto de tipo “User” con los parámetros que se requieran. Trabajaremos con una variable $conn que establecerá la conexión a ADSI y otra variable $user que almacenará el objeto a crear. Finalmente, guardamos las propiedades con SetInfo().



    $conn=[ADSI]»WinNT://localhost»
    $user = $conn.Create(«user»,»TestUser»)
    $user.SetPassword(«Passw0rd»)
    $user.SetInfo()


    Al igual que antes, para crear un grupo nuevo, solo cambiamos el tipo de objeto y eliminamos la línea de contraseña, ya que no se requiere. Por lo tanto escribiremos lo siguiente en la consola de PowerShell:



    $conn=[ADSI]»WinNT://localhost»
    $group = $conn.Create(«group»,»GrupoTest»)
    $group.setinfo()


    Administración de dispositivos de red:


    Si queremos listar los dispositivos de red que tenemos, lo podemos hacer apoyándonos en la integración de PowerShell con .Net Framework. En este caso llamaremos a la función correspondiente en .Net




    • [System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces()

    Claramente se observa cómo hacemos una llamada a la función GetAllNetworkInterfaces (), la cual forma parte del namespace System.NET.NetworkInterface.


    Igualmente podemos extraer la información de los dispositivos de red, haciendo una consulta WMI:




    • Get-WMIObject Win32_NetworkAdapter

    Aunque si queremos únicamente aquellas que están conectadas, podemos hacerlo con un filtro por velocidad.




    • Get-WMIObject win32_NetworkAdapter | where {$_.speed -gt 0}


    ¿Cómo establecemos la configuración IP de un dispositivo con PowerShell? Para ello debemos hacer un pequeño script:



    $NIC = Get-WMIObject Win32_NetworkAdapterConfiguration | where {$_.Index -eq “12”}
    $NIC.IPAddress = «192.168.0.150»
    $NIC.DefaultIPGateway = «192.168.0.1»
    $NIC.DHCPEnabled = $false
    $NIC.DNSServerSearchOrder = «192.168.0.1, 192.168.0.2»


    En este último ejemplo, el Index 12 corresponde en mi lista al dispositivo de bucle invertido. Debemos hacer un filtro para configurar únicamente el dispositivo que queremos. Si no sabeis el índice del dispositivo, lo podéis extraer con una simple consulta:




    • Get-WMIObject Win32_NetworkAdapterConfiguration

    Como podéis observar, la potencia de Powershell se extiende mucho más allá de las fronteras del sistema de archivos y el registro. Podemos interactuar directamente con funciones de .Net Framework y con clases de la Instrumentación del Sistema (WMI), todo con un mismo entorno que es válido tanto para administradores como para desarrolladores.


    Hasta el próximo post

    Digital Locker o Almacén Digital en Windows Vista

    No sé si os ha pasado alguna vez: querer instalar un programa que habéis comprado hace tiempo y no encontráis la clave de instalación e incluso ni si quiera el CD. A mí me ha ocurrido alguna que otra vez y la verdad que cada vez que me pasaba perdía un tiempo valioso buscando ese CD que nunca aparecía.


    Ahora todos mis programas los tengo en un disco duro externo con una copia de seguridad en otro disco duro, el cual lo tengo guardado y solo lo actualizo cuando sale un nueva aplicación que me interesa tener o una nueva versión.


    Pero para aquellos que no sean tan raros como yo y tengan dos discos duros solo para almacenar su software y mantenerlo seguro ante daños del CD, DVD o simplemente pérdidas, Windows Vista incorpora una solución similar llamada Almacén Digital, con la diferencia que el disco duro en este caso es Windows Marketplace.


    El Almacén Digital de Windows Vista permite almacenar software que hemos adquirido, así como la licencia de instalación, en un entorno seguro y accesible desde cualquier equipo con conexión a Internet, autenticándonos únicamente con una cuenta Passport de Windows Live.


    Podemos acceder a Almacén Digital desde el Panel de Control > Programas > Administrar los programas adquiridos en línea.


     


    Antes de poder gestionar los programas, debemos crear una cuenta Passport o utilizar la que ya tenemos y vincularla al servicio de Windows Marketplace. Para ello seleccionamos el vínculo comprar software en línea y en la página Web seleccionamos Sign In. A continuación Sign Up Now




    Una vez completado este proceso, podemos iniciar sesión en el Almacén Digital, por lo tanto minimizamos la página Web e iniciamos sesión desde el asistente.
    Si ya hemos adquirido algún software, lo tendremos disponible en la lista que aparece a continuación, así como la licencia correspondiente. Además si estamos en otro equipo diferente al que se utilizó para la adquisición de software, no habrá problemas ya que podemos descargar el software e instalarlo en el nuevo equipo.
    Si por el contrario no hemos adquirido nada aún, podemos comenzar el proceso de compra desde el vínculo Comprar en Windows Marketplace situado en la columna de la izquierda del asistente.


     


    En Windows Marketplace no solo hay productos de pago, sino que existe una amplia gama de aplicaciones gratuitas, compatibles con el Almacén Digital y que podremos descargar libremente.


    Con la opción de cambiar configuración, podemos iniciar sesión como otro usuario o cambiar la ruta por defecto que se utiliza para las descargas de software


     


    El Almacén Digital es una plataforma de venta y distribución electrónica de software, abierta a cualquier fabricante o distribuidor de software que quiera vender sus productos en línea. Los productos que encontramos son muy variados, como pequeñas aplicaciones de negocio, juegos, herramientas de desarrollo, sistemas operativos o utilidades de seguridad.


    Os recomiendo que lo probéis, ya que os ayudará a mantener un catálogo de aplicaciones siempre disponibles desde cualquier equipo.



     

    PowerShell (III de V)

    Después de algún tiempo, retomo el conjunto de artículos de PowerShell, y en esta ocasión me quiero centrar en la administración de sistemas utilizando los cmdlets.

    Muchas veces los administradores tienen que lidiar con múltiples herramientas para hacer tareas relativamente sencillas, como crear usuarios, crear o compartir carpetas, visualizar procesos, etc.

    PowerShell nos aporta las ventajas que tienen la mayoría de estas herramientas, pero con la consolidación de sintaxis y unificación de criterios que tienen los cmdlets y la capacidad de scripting.

    Por ejemplo, PowerShell incluye proveedores de abstracción que nos permiten trabajar con almacenamientos de datos como si fueran unidades de disco. Sin embargo, hay que tener en cuenta que estos proveedores solo son válidos dentro del entorno de PowerShell.

    A continuación os presento la lista de cmdlets asociados al proveedor de administración de archivos y sus alias entre paréntesis.

    • Get-location    (Gl)
    • Set-location    (Sl)
    • Copy-item    (Cpi)
    • Remove-item    (Ri)
    • Move-item    (Mi)
    • Rename-item    (Rni)
    • Set-item    (Si)
    • Clear-item    (Cli)
    • New-item    (Ni)
    • Get-content    (Gc)
    • Set-content    (Sc)
    • Mkdir (implementado como función)   

    Una característica interesante es la posibilidad de crear nuestras propias unidades de disco dentro del entorno de PowerShell con el cmdlet new-psdrive
    De esta forma podemos apuntar la unidad a una carpeta concreta como por ejemplo scripts o documentos.
    Los parámetros que debemos completar son:

    •    Name: nombre de la unidad que se va a crear
    •    PSProvider: Proveedor de acceso a sistema (filesystem, registry, certifícate, etc.)
    •    Root: ruta raíz a partir de la cual se va a crear la unidad

    El siguiente ejemplo nos crea una unidad llamada scripts que nos lleva directamente a la carpeta scripts en el disco C

    •    New-psdrive –name scripts –psprovider filesystem –root C:Powershellscripts

    Pero esto no se limita al acceso al sistema de archivos, sino que podemos igualmente navegar y modificar valores en el registro del sistema, contenedores de certificados, WMI y prácticamente cualquier tipo de objeto manejado desde .Net

    Por ejemplo, si queremos navegar en el registro, entonces escribimos

    •    Set-Location HKLM:

    También podemos hacer lo mismo con el alias CD, como si estuviéramos trabajando con cmd.exe

    •    cd HKLM:

    Lógicamente en Windows Vista con UAC habilitado, no tendremos acceso a todas las entradas de registro, por lo que al listar los elementos del registro con get-childitem observaremos lo siguiente:

    La clave de registro HKLMSecurity no es visible a no ser que realicemos una elevación de privilegios.

    Para aquellos administradores acostumbrados a utilizar los comandos de cmd.exe, con PowerShell pueden continuar utilizándolos para navegar en el registro como si de una unidad de disco se tratara.

    Para completar mejor este ejemplo, voy a hacer referencia al post que mi compañero Juan Garrido hizo hace unas semanas, en donde explica como modificar el registro para crear un acceso directo a la línea de comandos en la ubicación que esté activa. Vamos a hace este mismo proceso pero con cmdlets de PowerShell.

    Debemos navegar hasta HKLMSoftwareClassesFolderShell, por lo tanto

    •    cd SoftwareClassesFolderShell

    Una vez allí, creamos una nueva clave con el nombre que queramos, por ejemplo miCmd y dentro de esta clave creamos otra con el nombre command.

    •    New-item miCmd
    •    Cd midmc
    •    New-item command

    Ahora tenemos que agregar la funcionalidad que deseamos, por lo tanto escribimos

    •    Set-item command –value “cmd.exe /K cd ‘%1’” –type string

    El resultado es el siguiente:

    Hasta el próximo post.

    Idiomas adicionales en Windows Vista por Francisco Nogal

    En ocasiones puede ocurrir que una misma empresa tenga sucursales repartidas a lo largo del mundo dificultando por ello que una  única instalación de un sistema operativo no sea valida debido a la problemática del idioma de la interfaz.


    Con Windows Vista esto se simplifica muchísimo, ya que nos ofrece dos formas diferentes de poder agregar diferentes idiomas a nuestra instalación.


    La primera seria a través de de paquetes de interfaz de idiomas o paquetes LIP, estos son paquetes gratuitos descargables desde http://go.microsoft.com/fwlink/?LinkId=66923 y que nos cambiaran de forma parcial el idioma de la interfaz.


    La otra opción sería la que nosotros vamos a utilizar y que nos permitiría a través de paquetes MUI el cambio de la totalidad de la traducción de la interfaz de usuario, con lo que añadiéndole todos los paquetes MUI que necesitemos solo será necesario que creemos una imagen de equipo para todas nuestras sucursales aunque estas estén fuera de España. Estos paquetes MUI sólo están disponibles para las versiones Enterprise y Ultimate de Vista, y serán descargables a través de Windows Update. En nuestro caso esa será la solución que elegiremos y sobre la que vamos a trabajar. Lo primero será descargarnos el paquete de idiomas que necesitemos:


     


    Como podéis ver en esta imagen el archivo seleccionado en un paquete instalador de idiomas, en mi caso es el italiano, y lo que haremos a continuación es instalarlo haciendo doble click y empezará la instalación tal y como aparece en la siguiente imagen.



     


    Otra posible forma de instalación seria a través del PANEL DE CONTROL >> CONFIGURACION REGIONAL Y DE IDIOMA >> TECLADOS E IDIOMAS >>  INSTALAR O DESINSTALAR IDIOMAS, y clickeando ahí nos dará la opción de agregar uno nuevo.


    Una vez terminada la instalación, para cambiar el idioma es tan fácil como ir a la misma ruta que os acabo de poner en el párrafo anterior, en la que ahora nos aparece un desplegable en el que podremos seleccionar el idioma que acabamos de instalar.



     


    Seleccionamos italiano, aplicamos y nos pedirá que cerremos sesión, y una vez iniciada la sesión ya tendremos la interfaz de usuario en italiano


     

    En el caso de que queramos desinstalar uno de los idiomas que tengamos instalado, volveremos a ir al Panel de Control (o panello di controllo si lo tenemos en italiano :P) a la parte de CONFIGURACION REGIONAL Y DE IDIOMA y allí lo desinstalamos,  teniendo en cuenta, eso sí, que no podremos desinstalar  ni el idioma activo ni el idioma original, es decir, en nuestro caso deberíamos volver la interfaz a español y solo podríamos desinstalar el italiano.

    Configuración de preferencias en Windows Vista (II de II) por Josh Sáenz G.

    Continuando con la configuración de preferencias, ahora os quiero hablar de algunas opciones avanzadas que podemos configurar.


    Comienzo con la lista de variables de sistema que podemos presentar en pantalla y utilizar en aquellas preferencias que requieran de configuraciones vinculadas a la carpeta del sistema, el escritorio del usuario actual, etc. Todos sabemos que la variable %WindowsDir% corresponde a la carpeta de instalación de Windows, mientras que %SystemDir% corresponde a la carpeta System32 o que %DesktopDir% es la carpeta de escritorio del usuario actual, sin embargo, es probable que no conozcamos todas las variables de sistema disponibles.


    Por ejemplo, si estamos creando una preferencia para agregar una carpeta personal en el escritorio de cada usuario, pero no conocemos la variable que debemos utilizar, entonces en las propiedades generales, seleccionamos el campo de ruta (path) y pulsamos la tecla F3 para mostrar la lista de variables disponibles.





     


    En este caso seleccionamos DesktopDir y la variable se inserta en la ruta de la carpeta que queremos crear. Ahora solo nos falta poner el nombre a la carpeta como tal.


    Otras características avanzadas interesantes son las llamadas opciones comunes. Todas las opciones de preferencias, tanto aquellas de configuración de Windows como las relacionadas con el Panel de Control, tienen una etiqueta denominada Common cuando abrimos las propiedades. Con las opciones comunes podemos controlar el procesamiento de la preferencia, así como establecer filtros basados en características del equipo o pertenencia a grupos.



    Las primeras opciones que vemos son:




    • Parar el procesamiento si ocurre un error: Por defecto, si ocurre un error durante el procesamiento de un elemento, se siguen procesando los siguientes elementos configurados en la misma extensión. Si queremos que esto no ocurra y que se interrumpa el procesamiento, entonces debemos habilitar esta opción. Otras GPOs no se ven afectadas, por lo tanto continuarán su procesamiento normal.


    • Ejecutar en el contexto de seguridad del usuario que haya iniciado sesión (Opción para políticas de usuario): Las preferencias se ejecutan por defecto bajo Local System, por lo tanto si queremos que se pueda acceder a los recursos del usuario, como impresoras, discos de red, etc. es necesario habilitar esta opción.


    • Eliminar el elemento cuando no se aplique mas: Al contrario que sucede con las directivas de seguridad, el procesamiento de las preferencias no elimina la configuración cuando se elimina la GPO asociada. Esta opción cambia este comportamiento y permite que se eliminen las configuraciones de preferencias cuando se elimina la GPO.


    • Aplicar una sola vez y no volver a aplicar: Las Preferencias se procesan junto con el procesamiento de las GPOs en intervalos regulares, por lo tanto, si un usuario ha cambiado una configuración, durante el siguiente procesamiento, ésta configuración volverá al estado que se indique en la preferencia en la GPO. Si queremos que la configuración solo se aplique una vez y que los usuarios puedan a partir de ahí cambiar dicha configuración, entonces habilitaremos esta opción.


    • Filtrado a nivel de elemento: El filtrado determina a que usuarios y equipos se les va a aplicar las preferencias configuradas.

    Con el botón Targeting, configuraremos los filtros de aplicación. Lo primero que observamos cuando accedemos es una pantalla que nos va a permitir editar los filtros. Se pueden aplicar más de un filtro a cada elemento de configuración y se pueden seleccionar operaciones lógicas para aplicar al filtro.


    Podemos configurar un conjunto de preferencias pero solo aplicarlas a un subconjunto de equipos o usuarios de nuestra organización, por ejemplo, equipos portátiles, equipos con una versión de sistema operativo determinada, o equipos que cumplan con una serie de requisitos de software instalado antes de aplicar la preferencia. La lista de elementos configurables es muy amplia y nos aporta muchísima flexibilidad para prácticamente cualquier entorno o escenario corporativo.



    Por ejemplo, si quisiéramos que una configuración de preferencia, solo se aplique a aquellos equipos con Windows Vista instalado y con al menos 2 GB de RAM y 5 GB de espacio en el disco del sistema, lo haríamos de la siguiente forma:




    • Seleccionamos New Item > Operating System con las opciones de edición predeterminadas.


    • Seleccionamos New Item > RAM y escribimos 2048 en el campo de texto


    • Seleccionamos New Item > Disk Space y escribimos 5 en el espacio libre y seleccionamos System en la letra de la unidad.

    Con el botón Item Options, podemos cambiar un AND por un OR o un IS por un ISNOT, alterando así las condiciones de aplicación. En nuestro caso, lo dejamos con las opciones AND e IS en los tres elementos y obtenemos un resultado como el siguiente:



    Una vez finalizada la configuración, pulsamos en OK para cerrar la pantalla de edición.


    Como podéis observar, la configuración de las preferencias es extremadamente sencilla, pero muy potente y flexible. En definitiva, disponemos de una nueva herramienta centralizada para configurar los sistemas de forma rápida y sencilla, con la lógica y los filtros necesarios para establecer configuraciones granulares en entornos corporativos.

    Configuración de preferencias en Windows Vista (I de II) por Josh Sáenz G.

    Antes de comenzar la parte más práctica de este artículo, me gustaría explicar que se entiende por preferencia y las diferencias que existen con respecto a las directivas de seguridad.
    Normalmente, las empresas y organizaciones requieren la aplicación de dos tipos de configuraciones, configuraciones administradas y configuraciones no administradas. Las configuraciones administradas son aquellas que se fuerzan en su aplicación y no se permite su modificación por parte de los usuarios, por ejemplo, bloquear el acceso al panel de control. Las configuraciones no administradas son preferencias que se configuran para mejorar la experiencia del usuario y que el sistema se ajuste mejor a su perfil, pero se permite que el usuario modifique la preferencia en cualquier momento. Por lo tanto no tienen un carácter de seguridad, sino de personalización del entorno.


    Normalmente, esta personalización del entorno se ha venido realizando hasta ahora mediante la ejecución de scripts durante el inicio o cierre de sesión, o generando imágenes de sistema operativo con las preferencias ya preconfiguradas.


    Cuando hablo de preferencias, me refiero por ejemplo a la creación de una carpeta de usuario, creación de entradas de registro específicas, accesos directos en el escritorio u otras ubicaciones, configuración de la impresora predeterminada, etc.


    Pues bien, ahora Microsoft y Windows Server 2008 nos ponen las cosas un poco más sencillas a los profesionales de TI, gracias al nuevo conjunto de elementos configurables en las GPOs, llamado preferencias del sistema.


    Antes de poder configurar nada vamos a necesitar varios  componentes:




    • Un controlador de dominio basado en Windows Server 2008


    • Consola de administración de políticas de grupo para Windows Server 2008 o Windows Vista SP1 (en este caso hay que descargarse RSAT)


    • Group Policy Preference Client Side Extension (descargable desde aquí)

    Solo se pueden administrar las preferencias desde la consola de administración de políticas de grupo que incluye Windows Server 2008 o el conjunto de herramientas de administración para Windows Vista SP1 (RSAT). Sin embargo, vamos a poder aplicar la configuración de preferencias a equipos con Windows XP SP2, Windows Vista, Windows Vista SP1 y Windows Server 2008.
    Una de las ventajas que aporta la configuración de preferencias es que no es necesario disponer de aplicaciones que hayan sido diseñadas para “entender” las políticas de grupo, independientemente si  agregamos una entrada de registro o configuramos un archivo .ini.


    Antes de que un equipo pueda recibir las configuraciones de preferencias debemos descargar e instalar Group Policy Preference Client Side Extension 



    Las configuraciones de preferencias se crean de forma muy similar a cualquier otra GPO. Desde la consola de administración de políticas de grupo creamos y vinculamos una nueva GPO en la OU en la que estén los equipos o usuarios que queramos configurar, por ejemplo, vamos a crear una GPO para configurar un acceso directo a una carpeta compartida.


    En la consola de edición de la GPO que acabamos de crear, podemos observar que existe una carpeta llamada Preferencias, tanto a nivel de usuario como a nivel de equipo. Dentro de esta carpeta están todos los elementos configurables, agrupados en Configuración de Windows y Configuración del panel de control.



    Este tipo de configuración nos va a permitir desde crear, modificar o eliminar carpetas, archivos .ini, o entradas de registro, hasta configurar los perfiles de energía, impresoras u opciones regionales.


    Por fin tenemos un entorno totalmente configurable desde el Directorio Activo, sin necesidad de crear complicados scripts de inicio de sesión.
    En este ejemplo, vamos a crear un acceso directo a nivel de usuario por lo tanto seleccionamos Shortcuts con el botón derecho y hacemos clic en New > Shortcut.
    Se abre la siguiente pantalla, en donde configuraremos las opciones del acceso directo.





    • Action: Create


    • Name: Carpeta compartida (o cualquier otro nombre)


    • Target type: File System Object


    • Location: Desktop



    El parámetro Location es dónde queremos que aparezca el acceso directo, mientras que el Target Path es la ruta hacia la carpeta compartida. También podemos crear accesos a aplicaciones, por ejemplo, la calculadora. En ese caso podríamos lo siguiente:




    • Action: Create


    • Name: Calculadora


    • Target type: File System Object


    • Location: Desktop


    • Target Path: C:WindowsSystem32calc.exe

    Si le queremos pasar argumentos a la aplicación, los escribimos en el campo Arguments de la pantalla.


    Una vez creada la configuración de preferencia, cerramos la pantalla de edición de la GPO y esperamos unos minutos a que el Controlador de Dominio se sincronice y a continuación ejecutamos gpupdate /force en el cliente Windows Vista para forzar la descarga de la nueva directiva. Observaremos que en el escritorio aparece el acceso directo que acabos de crear. Si no aparece automáticamente podemos presionar F5 para actualizar el escritorio y cerrar y volver a iniciar la sesión.


    En el próximo post hablaré de las opciones de configuración avanzada que nos permiten las directivas de preferencias.

    Como ejecutar una aplicación con privilegios administrativos en perfiles limitados por Josh Sáenz G.

    En muchas ocasiones nos encontramos con esta situación: Un usuario limitado que necesita ejecutar una aplicación en su equipo con privilegios administrativos, pero no queremos que conozca las credenciales de otro usuario administrador.


    En Windows Vista, con UAC habilitado podemos hacer que por defecto el sistema ejecute una aplicación como administrador (Propiedades del acceso directo > Avanzado > Ejecutar como administrador), o si no, simplemente con el botón derecho seleccionamos el menu Ejecutar como Administrador…


    En ambos casos, el sistema solicitará la contraseña del administrador. Pero si no queremos indicarle al usuario cuales son estas credenciales, entonces que opciones tenemos.


    La primera opción es otorgarle permisos administrativos directamente al usuario, sin embargo ésto no es recomendable ya que estaríamos dándole más privilegios de los que realmente necesita y podíra ejecutar acciones que no queremos, por ejemplo, instalar programas o modificar la configuración del equipo. Otra opción es modificar manualmente los permisos necesarios tanto a nivel de archivos como de registro para que la aplicación se pueda ejecutar correctamente. Esto puede ser viable siempre y cuando el producto se mantenga mas o menos estable, es decir, que con una actualización no se altere la estructura de permisos necesarios. Además tendríamos que averiguar qué carpetas, archivos y claves de registro requiere acceso la aplicación, por lo tanto el trabajo necesario puede llegar a ser bastante laborioso. Las herramientas FilemonRegmon y ProcessExplorer de Microsoft Sysinternals, nos pueden ayudar en estas tareas.


    Pero nos queda una última opción gracias a la combinación del programa runas.exe y el uso de accesos directos.


    Por ejemplo, si queremos hacer que un usuario limitado ejecute Internet Explorer como un administrador, pero sin tener que introducir las credenciales cada vez que inicia el programa, haríamos lo siguiente:




    1. Crear un nuevo acceso directo a Internet Explorer en el escritorio (u otra ubicación)


    2. En la linea de ejecución del asistente escribimos: runas.exe /user:Administrator /savecred «C:Program FilesInternet Exploreriexplore.exe»


    3. Escribimos el nombre del acceso directo, por ejemplo «Internet Explorer Admin» y lo guardamos.

     


    Cuando ejecutemos el acceso directo por primera vez, el sistema nos solicitará las credenciales del usuario Administrador, pero gracias al parámetro /savecred, la contraseña se almacena localmente y no se volverá a solicitar, permitiendo así que un usuario limitado ejecute una aplicación como un administrador, sin tener que conocer previamente las credenciales administrativas.


    Si, vamos un poco más alla, podemos hacer que un usuario limitado pueda cambiar las propiedades del Firewall de Windows Vista, o abrir una consola administrativa. El procedimiento es similar al anterior y la única diferencia es la línea de ejecución que tendrá el acceso directo:




    • runas.exe /user:Administrator /savecred «mmc.exe C:AdminCon.msc» (Si la consola administrativa AdminCon.msc está ubicada en el disco C:)


    • runas.exe /user:Administrator /savecred «control.exe /name Microsoft.WindowsFirewall»

    Si el usuario administrativo no es local, sino un usuario de dominio, entonces cambiamos /user:Administrator por /user:DOMINIOUSUARIO_ADMINISTRADOR


    A continuación os dejo la lista de subelementos del panel de control que podemos ejecutar directamente desde la línea de comandos o desde un acceso directo:





















































































    Microsoft.AddHardware


    Microsoft.PenAndInputDevices


    Microsoft.AdministrativeTools


    Microsoft.PeopleNearMe


    Microsoft.AudioDevicesAndSoundThemes


    Microsoft.PerformaceInformationAndTools


    Microsoft.AutoPlay


    Microsoft.Personalization


    Microsoft.BackupAndRestoreCenter


    Microsoft.PhoneAndModemOptions


    Microsoft.BitLockerDriveEncryption


    Microsoft.PowerOptions


    Microsoft.Bluetooth


    Microsoft.Printers


    Microsoft.CardSpace


    Microsoft.ProblemReportsAndSolutions


    Microsoft.ColorManagement


    Microsoft.ProgramsAndFeatures


    Microsoft.DateAndTime


    Microsoft.RegionalAndLanguageOptions


    Microsoft.DefaultPrograms


    Microsoft.ScannersAndCameras


    Microsoft.DeviceManager


    Microsoft.SecurityCenter


    Microsoft.EaseOfAccessCenter


    Microsoft.SpeechRecognitionOptions


    Microsoft.FolderOptions


    Microsoft.SyncCenter


    Microsoft.Fonts


    Microsoft.System


    Microsoft.GameControllers


    Microsoft.TabletPCSettings


    Microsoft.GetPrograms


    Microsoft.TaskbarAndStartMenu


    Microsoft.GetProgramsOnline


    Microsoft.TextToSpeech


    Microsoft.IndexingOptions


    Microsoft.UserAccounts


    Microsoft.Infrared


    Microsoft.WelcomeCenter


    Microsoft.InternetOptions


    Microsoft.WindowsAnytimeUpgrade


    Microsoft.iSCSIInitiator


    Microsoft.WindowsDefender


    Microsoft.Keyboard


    Microsoft.WindowsFirewall


    Microsoft.MobilityCenter


    Microsoft.WindowsSideShow


    Microsoft.Mouse


    Microsoft.WindowsSidebarProperties


    Microsoft.NetworkAndSharingCenter


    Microsoft.WindowsUpdate


    Microsoft.OfflineFiles


    Microsoft.ParentalControls


    A pesar de esto, hay que tener en cuenta que este procedimiento no impide que un usuario limitado modifique el acceso directo y ejecute otros componentes o aplicaciones que no queremos que ejecute, por lo tanto, es recomendable utilizar esta alternativa sólo si se puede garantizar que el usuario no tenga acceso a otros componentes o a ejecutar otras aplicaciones, por ejemplo, limitando su acceso mediante políticas de grupo o modificando las ACE en el acceso directo.

    Carpetas ofline (II de II) por Josh Saenz G.

    Continuando con el tema de las carpetas offline o desconectadas, os comentaré paso a paso cómo configurar un entorno basado en Windows Server 2008 y Windows Vista en donde se hace uso de la tecnología de carpetas offline y redireccionamiento de carpetas para mantener una copia sincronizada de los documentos de los usuarios en el servidor.


    Lo primero que necesitaremos es un equipo que actuará como servidor en donde instalaremos Windows Server 2008. Para aquellos que quieran implantarlo con Windows Server 2003, es igualmente viable y totalmente funcional.


    Una vez que tenemos instalado el sistema operativo de servidor, debemos promocionarlo a Controlador de Dominio con el asistente dcpromo desde Start > Run.


    El asistente nos pedirá cierta información como la configuración de implantación, el nombre del nuevo dominio, la instalación del servicio DNS, etc. No voy a entrar en los detalles de la implantación de los Servicios de Directorio en Windows Server 2008, ya que no es el objetivo de este Post. Para aquellos que necesitéis alguna ayuda, podéis visitar http://technet2.microsoft.com/windowsserver2008/es/library/e398ac0c-0e73-494f-954c-f98fb04624c93082.mspx


     


    Cuando hayamos finalizado el proceso de implantación de los servicios de directorio y DNS, continuamos con la instalación del servicio DFS.



    Los servidores DFS permiten crear espacios de nombres para localizar recursos compartidos que pudieran estar distribuidos entre múltiples servidores de archivos. En realidad no es estrictamente necesario instalar un servidor DFS para el entorno que queremos lograr, sin embargo es muy aconsejable por si en un futuro queremos mover nuestro almacenamiento a otro servidor o escalar la infraestructura para soportar un número mayor de usuarios. Con DFS, se mapean los recursos y los usuarios no se ven afectados en caso de cambios de ubicación.


    Para iniciar la instalación del servidor DFS, nos vamos a la consola Server Manager (administración del servidor), al nivel de roles en Start > Administrative Tools > Server manager > Roles


    En la parte derecha superior de la consola pulsamos en Add Roles (agregar características) y se abre el asistente correspondiente. Dentro del asistente, seleccionamos en rol de File Services (servidor de archivos) y pulsamos Next.


    Cuando llegamos a la pantalla de selección de características del servidor de archivos, seleccionamos Distributed File System, DFS Namespaces y DFS Replication, tal y como se muestra en la imagen.



    En la siguiente pantalla, seleccionamos la opción de crear un espacio de nombres más adelante, ya que lo haremos desde la consola de administración del servicio DFS.


    Una vez finalizada la instalación, iniciamos la consola de administración de DFS desde Start > Administrative Tools > DFS Management. Desde esta consola debemos crear un espacio de nombres de dominio y asociarlo con un recurso compartido en un disco duro. En mi caso, he utilizado un disco duro externo USB 2.0 de 500 GB para almacenar toda la información que pasa por el DFS.


    Por lo tanto, seleccionamos en el panel de acciones New Namespace (nuevo espacio de nombres). En el asistente que aparece escribimos los siguientes datos en cada pantalla y vamos pulsando en Next (Siguiente):



    • Namespace Server: nombre del servidor local, por ejemplo SRVHome

    • Namespace name and settings: El recurso compartido raíz del espacio de nombres, por ejemplo DFSRoot

    • Namespace Type: Tipo de espacio de nombres, seleccionamos Domain-based namespace

    Por último seleccionamos Create para crear el espacio de nombres DFS


     


    Ya tenemos creado el espacio de nombres. A continuación debemos crear una carpeta en el disco externo para alojar los documentos y en general el redireccionamiento de carpetas de los usuarios del dominio.


    Para ello, nos vamos al disco externo (en mi escenario es el disco E: ) y creamos una carpeta compartida llamada usuarios y asignamos permisos completos tanto a nivel de recurso compartido como NTFS al grupo usuarios del dominio y quitamos el grupo todos. Estos permisos son necesarios ya que lo usuarios deben poder crear sus carpetas del perfil automáticamente cuando inicien sesión y se les aplique la GPO que configuraremos.


    Una vez creado el recurso, debemos agregarlo al espacio de nombres desde la consola de administración de DFS. Para ello seleccionamos New Folder (Nueva carpeta) del panel de acción. Seleccionamos el recurso compartido con el botón Add y escribimos el nombre que tendrá en el espacio DFS.



    Ahora el recurso es accesible a través del espacio DFS, para probar si funciona podéis escribir desde una pantalla de Windows explorer o el menú ejecutar lo siguiente \FQDN_DominioDFSRootusuarios en donde FQDN_Dominio es el nombre completo del dominio que habéis creado, por ejemplo \informatica64.localdfsrootusuarios


    Antes de crear la GPO para el redireccionamiento de carpetas, es recomendable crear una OU para agrupar los usuarios que se verán afectados por dicha directiva, por lo tanto creamos una Unidad Organizativa llamada Mi organización, o algo similar, como vosotros queráis.


    En la consola Active Directory Users and computers (usuarios y equipos de Directorio Activo), crearemos la Unidad Organizativa y nuestro primer usuario, con las credenciales correspondientes. Este usuario lo utilizaremos para realizar las primeras pruebas con el cliente que uniremos al dominio. En mi caso, me he creado a mi mismo con mi nombre y apellidos completos.


    Llega el momento de crear la GPO que redireccionará las carpetas de los usuarios, para ello iniciamos la consola de administración de GPOs en Start > Administrative Tools > Group Policy Management.


    Seleccionamos la OU que acabamos de crear y con el botón derecho seleccionamos Create a GPO in this domain and link it here (Crear y vincular una GPO aquí). Escribimos el nombre Redireccionamiento de carpetas y seleccionamos OK.


    Seleccionamos la GPO y con el botón derecho pulsamos en Edit (editar). Abrimos User Configuration > Policies > Windows Settings > Folder Redirection.


    Ahora tenemos que decidir que carpetas queremos redireccionar. Fijaros que los usuarios de Windows Vista tienen la posibilidad de redireccionar todas las carpetas del perfil, sin embargo los usuarios de Windows XP solo podrán redireccionar Mis documentos, Escritorio, AppData y Menú de inicio.


    Comenzamos con los documentos. Con el botón derecho seleccionamos propiedades y establecemos el redireccionamiento como básico, lo que significa que no se harán distinciones por grupos.


    En Target folder location, seleccionamos la opción predeterminada, es decir, Create a folder for each user under the root path (Crear una carpeta para cada usuario en la raíz).


    En Root Path escribimos \FQDN_DominioDFSRootusuarios



    En la etiqueta Settings (Configuración) nos aseguramos que estén seleccionadas las opciones Grant the user exclusive rights to Documents (otorgar permisos exclusivos al usuario) y Move the contents of documents to new location (mover el contenido a la nueva ubicación) y seleccionamos OK



    Realizamos los mismos pasos para todas las carpetas que queramos redireccionar y cerramos la consola.


    Ahora llega el momento de unir el equipo cliente al dominio y probar la aplicación de la directiva.


    Desde el equipo cliente, debemos asegurarnos que esté configurado como DNS principal la dirección IP del controlador de dominio, si el equipo cliente no es capaz de resolver los servicios de directorio y localizar los controladores de dominio, no se podrá unir el equipo al dominio. Podemos dejar como DNS Secundario alguno externo para no perder la resolución de nombres cuando estemos fuera del dominio o de viaje. Si disponemos de DHCP en la red, entonces podemos configurar los DNS para que nos envíe la configuración correcta.


    En un Windows Vista, desde las propiedades del sistema, seleccionamos Change Settings (cambiar configuración). En la etiqueta de nombre de equipo, seleccionamos Change (cambiar), seleccionamos dominio y escribimos el nombre de nuestro dominio. Cuando nos solicite las credenciales, escribimos las del administrador del dominio.


    Tenemos que reiniciar el equipo. A continuación iniciamos sesión con el usuario de dominio que hemos creado anteriormente y comprobamos que se crean las carpetas redireccionadas y se establecen automáticamente como recursos con capacidad de lectura offline.


    Para comprobar la creación de las carpetas, podemos ir físicamente al disco E: y abrir la carpeta usuarios y comprobar que se ha creado la del usuario que acaba de iniciar sesión por primera vez o también visualizar las propiedades de la carpeta Documentos desde el equipo cliente. En la etiqueta Location (ubicación) debe aparecer la ruta del espacio de nombres.


    Para identificar problemas de redireccionamiento de carpetas podeis visualizar el visor de eventos de Políticas de Grupo del cliente. Un problema común con la aplicación del redireccionamiento de carpetas por primera vez suele ser que el usuario no dispone de los permisos necesaios para crear su carpeta en la raiz configurada en la GPO, por lo tanto deberemos revisar dichos permisos tal y como he indicado anteriormente.


    Para finalizar, os recomiendo que antes de realizar el cambio a dominio del equipo cliente, hagáis una copia de seguridad de vuestros archivos. Tened en cuenta también que se creará un nuevo perfil de usuario, por lo tanto el usuario anterior será solamente local. Si no se va a utilizar más, se puede eliminar junto con su perfil y en el nuevo perfil creado, podemos volcar la copia de seguridad.


    Para volúmenes grades de información, el proceso de sincronización de carpetas puede durar bastante tiempo, así que tened paciencia mientras volcáis la copia de seguridad ya que estará copiando tanto en la caché local CSC como en el espacio de nombres DFS. Para esto, os recomiendo tambien que la primera sincronización la hagais sobre una red cableada a 100Mbps o superior y no sobre la red WiFi. Una vez finalizada la sincronización inicial, podeis trabajar exclusivamente con la conexión WiFi, ya que solo se sincronizarán los archivos nuevos, eliminados o modificados.


    Saludos y hasta el próximo Post.

    Carpetas Offline (I de II) por Josh Sáenz G.

    Hasta ahora cuando tenía que realizar copias de seguridad de mis archivos, utilizaba varios procedimientos entre los que se encontraban copias completas e incrementales con NTBackup, copias completas arrastrando los elementos a un disco duro externo, sincronización de carpetas con SyncToy (os lo recomiendo, muy sencillo y potente). Pero claro, ninguno de estos métodos logra mantener una copia sincronizada en todo momento y tampoco me dan la seguridad de que todos mis datos y documentos de trabajo están guardados en una ubicación alternativa al disco duro de mi portátil.


    Por ello me decidí a montar mi propio dominio en casa, con un Windows Server 2008 y hacer uso del redireccionamiento de carpetas (mucho más potente para Windows Vista que para Windows XP), junto con las carpetas offline.


    Para aquellos que no lo conozcan, las carpetas offline no son un componente nuevo en Windows Vista, pero si se ha mejorado en muchos de sus aspectos. Las carpetas offline permiten mantener una copia local de los archivos y otra en un servidor de archivos totalmente sincronizada continuamente. Cuando el equipo está conectado a la red, los procesos de lectura o escritura se realizan directamente en el servidor de archivos y se sincronizan con la caché local, mientras que si el equipo se desconecta automáticamente y de forma transparente comenzamos a trabajar con la caché local.


    Esta forma de trabajo si me garantiza que mis datos estén continuamente copiados en una ubicación alternativa, en este caso en el servidor de archivos basado en Windows Server 2008, aunque también es posible utilizar Windows Server 2003.


    Ahora, cuando llego a casa, lo único que tengo que hacer es conectarme a mi red WiFi, iniciar sesión en el dominio e inmediatamente comienza el proceso de sincronización de carpetas a guardar los cambios en ambos sentidos.


    Además, con Windows Vista, todo esto se puede controlar desde el Centro de Sincronización. En caso de conflicto, nos avisará y tendremos que decidir que versión del archivo mantener.

    Pero ¿Cómo funciona todo este entorno?

    El servicio de carpetas offline genera un almacenamiento local denominado caché en C:WindowsCSC (Client Side Caching) (es posible alterar esta ubicación, más adelante lo comentaré). El espacio dedicado a la caché de archivos se puede controlar desde el Panel de Control de Windows Vista, asignando más o menos espacio en función de las necesidades de almacenamiento.


     

    El objetivo principal de uso de carpetas offline es para disponer de la información, independientemente de las condiciones de conectividad del usuario. Además, si a esto le sumamos la posibilidad de redireccionamiento de carpetas, entonces tendremos que los documentos y archivos de los usuarios están totalmente disponible para los usuarios independientemente de si están conectados a la red e incluso del equipo en donde se conecten.


    En mi caso, implanté lo siguiente:


    ·         Controlador de Dominio basado en Windows Server 2008


    ·         Servicio DFS configurado con un espacio de nombres de dominio


    ·         GPO para redireccionamiento de carpetas al espacio de nombres DFS


    ·         Disco duro externo de 500 GB


    ·         Cliente basado en Windows Vista SP1


    Con esta sencilla implantación podéis conseguir que todos vuestros archivos e incluso el perfil de usuario estén en todo momento actualizado y sincronizado en el disco duro externo conectado al servidor.


    En el siguiente post os comentaré paso a paso como configurar cada uno de los elementos que aquí menciono.