martes, 1 de enero de 2013

Primeros pasos con Microsoft Windows PowerShell

Mantenernos actualizados en el entorno de las tecnologías, está siendo cada vez más importante. La correcta utilización de la herramienta Microsoft Windows PowerShell, es cada vez más importante, no solo por las mejoras que nos aporta esta herramienta para la administración de servidores, servicios, procesos, etc., sino, porque cada día que pasa se incrementan en muchos los que la utilizan y centran gran número de sus tareas administrativas y de monitorización utilizándola y no en pocas entrevistas de trabajo nos preguntan, si hemos tenido alguna experiencia con PowerShell y que utilización hemos hecho de la misma. Por todo esto, ya es hora comenzar a jugar con Microsoft PowerShell y descubrir por nosotros mismos antes de que sea muy tarde, como funciona esta herramienta, su infinidad de beneficios y utilidades.

Primero que todo, debemos conocer algunos aspectos básicos de la herramienta. Seguido trataré de establecer algunos puntos de partida.

Descargate PowerShell 3.0 desde aquí.

El Windows Management Framework 3.0, incluye Windows PowerShell 3.0, WMI, WinRM, Management OData IIS Extension y el Server Manager CIM Provider. Este paquete es compatible con los siguientes Sistemas Operativos:

Windows 7 Service Pack 1, Windows Server 2008 R2 SP1, Windows Server 2008 Service Pack 2

________________________________________________________________________________________
IMPORTANTE: Windows Management Framework 3.0 no es compatible con las siguientes aplicaciones:

o    System Center 2012 Configuration Manager.

o    System Center Virtual Machine Manager.

o    Microsoft Exchange Server 2007 and Microsoft Exchange Server 2010.

o    Microsoft SharePoint 2010.

o    Windows Small Business Server 2008 and Windows Small Business Server 2011.
________________________________________________________________________________________

Instalando Windows PowerShell (Windows Management Framework 3.0):

1. Descárgate el paquete de instalación adecuado para la versión del sistema desde aquí.
Estos son los paquetes que te debes descargar dependiendo del Sistema Operativo que utilices:


Windows 7 Service Pack 1:
o 64-bit versions: Windows6.1-KB2506143-x64.msu
o 32-bit versions: Windows6.1-KB2506143-x86.msu

Windows Server 2008 R2 SP1:
o 64-bit versions: Windows6.1-KB2506143-x64.msu

Windows Server 2008 Service Pack 2: 
o 64-bit versions: Windows6.0-KB2506146-x64.msu
o 32-bit versions: Windows6.0-KB2506146-x86.msu

2. Cierra todas las ventanas abiertas de PowerShell (Por defecto en muchos sistemas operativos está instalada la versión 1.0 y la 2.0)

3. Desinstalar cualquier otra versión de Windows Management Framework 3.0 que tengas ya instalada.

4. Ejecuta el fichero MSU que te descargaste del sitio http://www.microsoft.com/en-us/download/details.aspx?id=34595

 Desinstalando Windows PowerShell (Windows Management Framework 3.0):

1. En Control Panel/Programs/Uninstall a program/View Installed updates, localiza y desinstala las siguientes actualizaciones de Windows Update:

o KB2506143– Para Windows 7 SP1 y Windows Server 2008 R2 SP1
o KB2506146– Para Windows Server 2008 SP2

Entrando en calor con Microsoft Windows PowerShell


1. Cómo conocer la versión de Microsoft Windows PowerShell que tenemos Instalada:

Abrir PowerShell: En ejecutar tecleemos PowerShell

Otro camino sería: Abrir PowerShell en All Programs/Accessories/Windows PowerShell/ , aquí escoger la versión de PowerShell que queramos abrir, Windows PowerShell, Windows PowerShell ISE, Windows PowerShell (x86), Windows PowerShell ISE (x86).

2. Una vez abierta la pantalla de PowerShell, para saber que versión estamos utilizando escribamos el siguiente comando:


Get-Host ó $host


Como pueden ver en la imagen anterior, con cualquiera de los dos métodos, podemos obtener la versión de PowerShell que tenemos instalada en el equipo.

Ahora bien, si abrimos en lugar de la consola común de PowerShell, la consola de PowerShell ISE Integrated Scripting Environment (ISE), podriamos obtener más información sobre los comandos más utilizados y soportados por Windows PowerShell, esto pudiera ser de gran utilidad, a la hora de enfrentarnos a esta nueva herramienta por primera vez. Desde mi experiencia la utilización del PowerShell ISE, resultó altamente productiva. Desde PowerShell ISE puedes ejecutar, escribir y testear comandos, escribir scripts, auto-completamiento de comandos con la tecla Tab, es capaz de colear la sintaxis y además, ejecutar una selección específica.

Bueno, ahora centrémonos en el cómo obtener ayuda para cada uno de los comandos de PowerShell.


Como comúnmente suele ocurrir a quienes intentamos actualizar la ayuda de PowerShell (Update-Help) en ordenadores que se encuentren detrás de un Proxy, muchas veces nos encontramos con un resultado como este:
update-help : Failed to update Help for the module(s) 'ISE, Microsoft.PowerShell.Management,
Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility, Microsoft.WSMan.Management, CimCmdlets,
Microsoft.PowerShell.Diagnostics, Microsoft.PowerShell.Host, PSScheduledJob, PSWorkflow, PSWorkflowUtility,
Microsoft.PowerShell.Core' with UI culture(s) {en-US} : Unable to connect to Help content. Make sure the
server is available and then try the command again.
At line:1 char:1
+ update-help
+ ~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Update-Help], Exception
+ FullyQualifiedErrorId : UnableToConnect,Microsoft.PowerShell.Commands.UpdateHelpCommand


Esta suele ser la respuesta al ejecutar el comando Update-Help en nuestro Windows PowerShell, no obstante podemos solucionar el problema si declaramos que nos encontramos detrás de un proxy. Aunque existen métodos variados para esto, lo más recomendable es ejecutar un script que te pregunte por las credenciales con acceso a Internet. Por mi parte les propongo el siguiente código:

$webclient = New-Object System.Net.WebClient
$creds = Get-Credential
$webclient.Proxy.Credentials = $creds





Hasta el momento tenemos lo siguiente:
1- Hemos creado un nuevo objeto del sistema New-Object del tipo WebClient, solicitamos las credenciales, lo almacenamos en una variable llamada $cred y le asignamos el valor de esta variable a $webclient.Proxy.
2- Los datos introducidos deben corresponder con usuario y contraseñas con permisos para navegar en Internet (Usuario y Password del Proxy de Internet).
Con estos datos ya podremos actualizar la ayuda de PowerShell.
Ejecutemos el siguiente comando nuevamente:

Update-Help




Enhorabuena!!!! Se está actualizando la ayuda de PowerShell!!!!!
Aunque por defecto al instalar PowerShell, este consta de una ayuda muy detallada, cuando intentamos obtener Ejemplos, podría sernos muy útil, esta pequeña, pero no menos importante solución.


miércoles, 5 de diciembre de 2012

De GUI (Full Server) a Minimal Server Interface: Parte 2


Que sucede si desinstalamos la Interfaz Gráfica del Servidor o Server Graphical Shell?

Al desinstalar la interfaz gráfica o Server Graphical Shell de nuestro Server 2012, las características de Windows que dependen de esta interfaz grafica también son desinstaladas. Al ejecutar los cmdlet que realizaran la desinstalación, en el Server Manager, un pop-up nos alertará de la acción que pretendemos hacer. Este proceso simplemente desinstalara el Server-GUI-Shell afectando solamente los productos que estén embebidos en Windows Server 2012.

Si en Windows PowerShell ejecutamos Get-WindowsFeature, nos mostrará todos los componentes y características disponibles en nuestro servidor y seleccionados con una x los que ya tenemos instalados. Los componentes gráficos que instala la versión Full Server, son los que muestra la figura 1. El Graphical Management Tools and Infrastructure (Server-Gui-Mgmt-Infra) y el Server Graphical Shell (Server-Gui-Shell). Al estar marcados con una x significa que ya están instalados.

Figura 1: Componentes Gráficos que forman parte de la Instalación Full Server

Minimal Server Interface, una de las novedades incluidas en Windows Server 2012, es una opción de configuración que incluye aspectos mínimos en su interface gráfica. Esta novedad incluye la consola de administración sin que deba tener instalado el Server Gaphical Shell o Internet Explorer, reduciendo el impacto en temas como la seguridad y en el rendimiento del equipo, siendo recomendado para los escenarios donde se estén realizando despliegues, por todas las mejoras de seguridad y performance antes mencionadas. Minimal Server Interface provee muchas de las mejoras y beneficios de Server Core, además de la posibilidad de una transición suave y muy simple entre Server Core – Minimal Server Interface – Full Server, lo que permitiría una rápida recuperación ante la toma de una decisión incorrecta en alguno de estos aspectos de instalación. 

Al igual que Server Core, muchos de los roles y/o aplicaciones pueden trabajar normalmente, aunque bien es cierto que algunas otras requieren de nuestra intervención para que funciones correctamente cuando hemos elegido la opción de Instalación Minimal Server Interface.

Paso a paso de Full Server a Minimal Server Interface

1. Para convertir la versión Full Server a Minimal Server Interface debemos desinstalar el “Server Graphical Shell” llamando a Windows PowerShell y utilizar el siguiente cmdlet acompañado del parametro  –remove para cuando queremos desinstalar completamente un rol o una característica:

Uninstall-WindowsFeature server-GUI-shell –remove


Figura 2: Ejecución del cmdlet para desinstalar el Server-Graphical-Shell y transformar Full Server en Minimal Server Interface
Figura 3: Progreso de la desinstalación del Server-Gui-Shell

Figura 4: Finalización del proceso de desinstalación del Server-Gui-Shell
Ahora que ya esta desinstalado el Server-Gui-Shell debemos reiniciar nuestro servidor para finalizar todo el proceso, como nos indica la figura 4. Para esto ejecutaremos el siguiente cmdlets en Windows PowerShell:

shutdown /r /t 0

Este comando enviara la señal de reinicio inmediato a nuestro Server como muestra la figura 5.

Figura 5: Utilización del cmdlet shutdown para reinciar el servidor al finalizar el proceso de desinstalación del Server-Gui-Shell
Fugura 6: Configurando componentes durante el reinicio.

Figura 7: Iniciando Sesión como Administrador tras desinstalar el Server-Gui-Shell 
Figura 8: Estado de la consola de nuestro Server tras haber desinstalado el Server-Gui-Shell

En la figura 8, podemos ver que nuestro Server tras la desintalación del Server-Gui-Shell hemos perdido una serie de componentes antes disponibles en la versión Full Server, aun con el componente Server-Gui-Shell. Seguidamente listaremos algunas de las características que no estarán disponibles si optamos por la versión de inflacionista de Minimal Server Interface:

Componentes no disponibles en Minimal Server Interface.

Como habíamos comentado antes, cuando desinstalamos el Server-Gui-Shell de nuestro servidor, también perderemos todos aquellas funcionalidades que dependan directamente de este elemento, por lo tanto ya no tendremos acceso a los siguientes elementos:
1. Desktop
2. Start screen
3. Windows Explorer
4. Windows Internet Explorer: 
  • Los links que existan en cualquier interface gráfica UI, no funcionaran.
  • La Ayuda no estará disponible. Cualquier llamada a un HTML Help API retornará un valor Nulo!!
5. Cualquier Interface Gráfica UI con referencia a algún Item implementado como Shell Namespace extensions fallará en su ejecución. 
  • Algunas CPLs son Namespace extensions Ejemplo: La referente a Redes (Networking)   

6. Algunas asociaciones de ficheros y protocolos se romperán.
  • http://
  • file://
  • *.chm

7. Algunos ficheros DLL no estarán instalados
  • Verificar siempre las aplicaciones instaladas en Minimal Server Interface, algunas podrían fallar, crear un ambiente de prueba para estos fines.
Pese a que ahora no tenemos disponibles esos componentes, aun la administración del servidor puede realizarse a través de una Interface Gráfica. Nuestro Server consta del Graphical Management Tools and Infrastructure (Server-Gui-Mgmt-Infra), lo que nos posibilita acceder a los siguientes elementos:

  • Command Prompt
  • PowerShell/.Net 
  • Server Manager 
  • MMC

Ya tenemos nuestro servidor en el estado Minimal Server Interface. y como hemos explicado anteriormente, aun tenemos varias capacidades locales del Shell. Procedamos a verificar algunas de estas como por ejemplo llamando a Windows PowerShell, Server Manager y/o MMC:
  1. Para llamar al windows PowerShell simplemente tecleamos PowerShell en el Command Prompt:
      Figura 9: Minimal Server Interface: Llamando a Power Shell.
  2. Llamemos Server Manager. Simplemente tecleamos servermanager en nuestra consola de PowerShell y presionamos Enter:
Figura 10: Minimal Server Interface: Llamando a Server Manager.
    3.  Por ultimo verifiquemos que la llamada a MMC funciona correctamente, ademas de verificar el agregar o quitar Snap-ins,para esto tecleemos mmc en la consola de Power Shell:
Figura 10: Minimal Server Interface: Llamando a MMC y agregando Snap-ins

Por último con toda la potencialidad de Windows Server 2012, la nueva opción de instalación Minimal Server Interface ha sido creada con plena compatibilidad y como una campa de transición entre Server con GUI (Full Server) y Server Core, con la posibilidad de reducir en gran medida los impacto de seguridad y una menor utilización de los recursos de nuestro Servidor como se puede observar en la Figura 11.

Figura 11: Comparativa de consumo de espacio en disco duro de las 3 variantes posibles de instalación en Windows Server 2012. Imagen de Microsoft. Clic para ver articulo original
Para quienes no tienen la posibilidad de utilizar Server Core, Minimal Server Interface, es capaz de proveernos con lo mejor de Server Core y Full Server (con GUI). A mi criterio lo mejor de Windows Server esta incluido en esta nueva opción de instalación.

Espero les sea útil esta información, para más información pueden contactarme dejando su opinión como comentario.

Asef Liria Calderin
Especialista en Tecnologías Microsoft

viernes, 23 de noviembre de 2012

Como Activar / Desactivar GUI después de Instalar Server Core en Windows Server 2012: Parte 1




Windows Server 2012 New Features



Con este artículo pretendo mostrar paso a paso como Activar / Desactivar la interfaz gráfica de usuario (GUI) en todas las versiones de Windows Server 2012 después de haber instalado Windows Server 2012 - Server Core, pudiendo elegir operar con las varienates de instalación, Minimal Server Interface ó Full Server, a instancia de la necesidad o interés de quienes administren el Servidor.

Entre las novedades que nos ha traído Windows Server 2012, una de las más interesantes, es la posibilidad de movernos entre la versión Server Core, pura administración por línea de comandos hacia una versión con una interfaz de usuario reducida (Minimal Server Interface) o simplemente, elegir la opción de instalación completa (Full Installation) con GUI, sin la necesidad de una re-instalación completa como ocurría en todas las versiones anteriores de Windows Server.

Windows  Server 2012 permite añadir o quitar características de la interfaz a través del lenguaje de secuencias de comandos PowerShell,  mediante gestión remota o a través del Server Manager para los equipos que han sido Instalados con full interfaz gráfica. Por ejemplo, se pueden implementar sólo las herramientas de administración gráficas para un servidor y no el resto de la interfaz de usuario y luego eliminarlos de nuevo por completo y viceversa, esto aplicable tanto a la versión Estándar como la Versión Datacenter.

Como podrán ver la Figura 1, tomada de la librería Technet de Microsoft, en Windows Server 2012 las opciones de Instalación están integradas y nos aportan tres grandes características, lo que le permitiría a un administrador desplazarse entre las tres variantes de instalación. 

Figura 1: Opciones de Instalación de Windows Server 2012. Fuente de la imagen sitio de Microsoft.  Clic para ver articulo original

Partamos del hecho que ya tenemos actualmente instalada la versión Windows Server 2012 – Server Core en un equipo físico o una maquina virtual, serviría cualquier plataforma de Virtualización, algo muy recomendado actualmente, como por ejemplo Microsoft Hyper-V


Server Core: Esta opción de instalación esta creada utilizando la instalación de Windows Features o Características en función de la demanda, lo que nos posibilita disminuir el impacto en los Discos Duros, mejorando aun mas el rendimiento de nuestro servidor. Esta versión requiere 4 Gigas menos de espacio de almacenamiento, aproximadamente, comparado con la versión Full Server.

Figura 1a: Comparativa de consumo de espacio en disco duro de las 3 variantes posibles de instalación en Windows Server 2012. Imagen de Microsoft. Clic para ver articulo original


Aunque ya tengamos instalada la versión Server Core, requerimos del DVD de instalación para poder acceder a los ficheros que necesitamos. En caso de no poseer el DVD de instalación de Windows Server 2012 este se puede descargar haciendo clic en el siguiente link:http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx?ocid=&wt.mc_id=TEC_108_1_33


Instalación de la versión completa de Windows Server 2012 – Full Server

Accediendo a los ficheros de instalación: 
Para comenzar he creado un directorio en C:\> llamado Install: Para crearlo he utilizando el command prompt (cmd), ejecutando el comando mkdir Install.

C:\> mkdir Install 

Seguido he copiado en ese directorio el fichero Install.wim desde D:\>sources\ en el DVD de instalación, para poder acceder fácilmente como se muestra en las imágenes:

Figura 2: Muestra las características del fichero install.wim desde el DVD de instalación de Windows Server 2012. 

Para copiar el fichero WIM lo hacemos de esta manera:


copy D:\sources\install.wim C:\Install 

Listamos el contenido del directorio Install, tecleando dir install en el command prompt para verificar que realmente existe en ese directorio el fichero install.wim.

Figura 3: Muestra el contenido del directorio C:\>install que incluye la copia del fichero WIM, install.wim desde D:\>sources\ en el DVD de Instalación.

He creado un directorio para montar los ficheros de Instalación (Windows Media Mount) le he llamado Wimmount.

Para crear el directorio Wimmount utilizaré el command prompt (cmd)

C:\>mkdir Wimmount

Para continuar con los pasos siguientes debemos llamar a Windows PowerShell desde el command prompt (cmd). Teclea PowerShell en tu command prompt para acceder a la consola de Windows PowerShell.

Figura 4: Llamando a Windows PowerShell C:\>PowerShell. Consola de PowerShell.
Ahora se debe determinar el # de Index correspondiente y para ello he listado las variantes de instalación disponibles en install.wim, utilizando la herramienta DISM.exe (Deployment Image Servicing and Management) en PowerShell.

Sintaxis base para la herramienta DISM.exe

DISM.exe {/image:<path_to_image> | /online} [dism_options] {servicing_command} [<servicing_argument>]

Escribe el siguiente código en la consola de PowerShell:

Dism.exe /get-wiminfo /wimfile:C:\Install\install.wim

Figura 5: Obteniendo los detalles de la imagen C:\Install\install.wim para seleccionar el numero de Index que necesitamos.

Como he instalado la versión Windows Server 2012 SERVERSTANDARDCORE debemos elegir Index:2 que corresponde a Windows Server 2012 SERVERSTANDARD y así montar en el directorio C:\>wimmount que previamente  creamos, el fichero install.wim.

Montando el fichero WIM en C:\>Wimmount, para esto teclear lo siguiente en la consola de PowerShell:


Dism.exe /mount-wim /wimfile:C:\Install\instal.wim /Index:2 /mountdir:C:\Wimmount /readonly

Figura 6: Montando imagen WIM en el directorio C:\>wimmount Utilizando DISM.exe (Deployment Image Servicing and Management).

Figura 7: Finalizado proceso de montaje de la imagen WIM (install.wim) en el directorio C:\>Wimmount.

Ahora estamos listos para Instalar los Features de Windows necesarios para movernos hacia la versión de instalación completa (Full Installation) de Windows Server 2012.

Abre el Windows PowerShell y ejecuta el siguiente cmdlet:


Install-WindowsFeature server-GUI-mgmt-infra, server-GUI-shell –source C:\Winmount\Windows\winsxs


**De forma alternativa si el servidor posee conexión a Internet, puedes utilizar el siguiente cmdlet:


Install-WindowsFeature server-GUI-mgmt-infra, server-GUI-shell –restart


Figura 8: Instalando los Features de Windows necesarios para movernos hacia la versión de instalación completa (Full Installation)de Windows Server 2012.


Figura 9: Progreso de Instalación los Features de Windows necesarios para movernos hacia la versión de instalación completa (Full Installation)de Windows Server 2012.

Figura 10: Fin del proceso de Instalación los Features de Windows necesarios para movernos hacia la versión de instalación completa (Full Installation)de Windows Server 2012.


Ahora  ya tenemos instalada la versión Windows Server 2012 Full Server GUI. Debemos Reiniciar el servidor como nos indica WARNING: en la Figura 10. Al finalizar el proceso de reiniciado ya estaremos en presencia de la versión Windows Server 2012 Full Server como pueden ver en la Figura 11.


Figura 11: Fin del proceso de instalación. La Instalación de Server Core ya convertida a Full Server con GUI. Nuevo Server Manager de Windows Server 2012.
El nuevo Server Manager que se muestra en la Figura 11, hace que la administración de servidores locales y remotos, sean mucho más simples para los administradores de Windows.

Con esta nueva versión de Windows, Microsoft ha superado todas las versiones previas de Windows Server. Los Administradores no tengan el dominio de Server Core, simplemente pueden configurar las Características del Servidor que requieran utilizando la interfaz gráfica y luego, como explicare en el próximo artículo, quitar los componentes visuales adicionales y mantener los Servidores de Explotación en ambientes mucho más estables moviéndose con unos simples comandos hacia Server Core o Minimal Server Interface.



Si quieres saber como adquirir Windows Server 2012 debes hacer clic en la imagen.


Quick Shot : De Server Core a Full Server, para equipos Offline (Sin conexión a Internet)


<!--[if !supportLists]-->1.       <!--[endif]-->Crear un directorio llamado Install en C:\ para copiar fichero install.wim utilizando el cmd:

C:\> mkdir Install (Opcional)

<!--[if !supportLists]-->2.       <!--[endif]-->Copiar el fichero desde el DVD:

copy D:\sources\install.wim C:\Install

<!--[if !supportLists]-->3.       <!--[endif]-->Crear un directorio llamado Winmount donde montaremos la imagen install.wim utilizando el cmd:

C:\> mkdir Wimmount (Opcional)

<!--[if !supportLists]-->4.       <!--[endif]-->Teclear el siguiente cmdlet en PowerShell para elegir el número de Index a utilizar en el paso siguiente:

Dism.exe /get-wiminfo /wimfile:C:\Install\install.wim

<!--[if !supportLists]-->5.       <!--[endif]-->Como he instalado la ver. SERVERSTANDARDCORE utilicé Index:2 los cmdlet quedaría:

Dism.exe /mount-wim /wimfile:C:\Install\instal.wim/Index:2 /mountdir:C:\Wimmount /readonly

<!--[if !supportLists]-->6.       <!--[endif]-->Para Instalar la Interface gráfica desde el directorio Wimmount ejecutar los siguientes cmdlets en PowerShell:

Install-WindowsFeature server-GUI-mgmt-infra, server-GUI-shell –source C:\Winmount\Windows\winsxs

<!--[if !supportLists]-->7.       <!--[endif]-->Si tenemos conexion a Internet y queremos instalar los components desde Windows Update entonces debemos en el paso 6 ejecutar en PowerShell el siguiente Cmdlet:

Install-WindowsFeature server-GUI-mgmt-infra, server-GUI-shell –restart

<!--[if !supportLists]-->8.       <!--[endif]-->Reiniciar y ya estará instalada la versión Full Server, para reiniciara utilizar el siguiente cmdlet:

shutdown /r /t 0