Windows 7, Compatibilidad De Aplicaciones

62
Compatibilidad de Aplicaciones con Windows 7 Windows 7 SuperHero Technical Readiness Michał Morciniec , [email protected] Microsoft Ibérica

description

En esta sesión presentamos temas que presentan problemas más frecuentes de compatibilidad de aplicaciones diseñadas para Windows XP en Windows 7. Explicamos porque estos problemas ocurren y como evitarles.

Transcript of Windows 7, Compatibilidad De Aplicaciones

Page 1: Windows 7, Compatibilidad De Aplicaciones

Compatibilidad de Aplicaciones con Windows 7 Windows 7 SuperHero Technical Readiness

Michał Morciniec , [email protected]

Microsoft Ibérica

Page 2: Windows 7, Compatibilidad De Aplicaciones

Pocos cambios: la mayoría de software para Windows Vista funcionará en Windows 7 – las excepciones posibles – código de bajo nivel (AV, Cortafuegos,

Aplicaciones de procesamiento de Imágenes, etc). Hardware que funciona bien en Windows Vista funcionará bien en Windows 7 .

Windows 7

Pocos Cambios: Enfoque en rendimiento y estabilidad

Windows 7 Comparte Base con

Windows Vistase mantiene la inversión en Windows Vista

Profundos Cambios: Nuevos modelos de seguridad, drivers, despliegue, y red

Page 3: Windows 7, Compatibilidad De Aplicaciones

Etapas de Compatibilidad de Aplicaciones con SS.OO.

• Diseñoconocimiento de problemáticas de SS.OO.

• Pruebas

ejecutar aplicación en el nuevo SS.OO.

utilizar herramientas de pruebas

• Remediación

cambio de diseño del código

parches de compatibilidad (shimming)

Windows XP Mode en W7

• Certificación

obtener Windows 7 Logo

• Publicación

Publicar aplicación en Windows 7 Compatibility

Center

Page 4: Windows 7, Compatibilidad De Aplicaciones

Cambios: Vista -> Windows 7

Windows Vista es muy compatible con Windows 7 pero se han introducido cambios en:

• Versión de Sistema Operativo• Cambio en Binarios de Bajo Nivel• Alta Resolución de Pantalla (DPI)• Cadena de Agente de Usuario en Internet Explorer 8

Otras Regresiones:• Eliminación de Windows Mail• Eliminación de Windows Movie Maker• National Language Support (NLS) – Cambio del Orden• Eliminación de Reflexión de Registro Windows• Eliminación de Driver WPDUSB.SYS para Windows Portable Devices• Microsoft Message Queuing (MSMQ) - SHA-2 es un algoritmo por

defecto para el calculo de Hash

4

Page 5: Windows 7, Compatibilidad De Aplicaciones

Cambios: XP->Windows 7

•Programas diseñados para XP serán impactados por nuevo modelo de

seguridad de Windows 7:

• User Account Control (UAC) – medidas de seguridad y protección de SS.OO.

• Aislamiento de Servicios

• Virtualización de registro y sistema de ficheros

Además

•Todos los cambios Vista->Windows 7

Page 6: Windows 7, Compatibilidad De Aplicaciones

Aplicación Incompatible con Windows 7

Page 7: Windows 7, Compatibilidad De Aplicaciones

Vista, XP - Windows 7

• Cambio de Versión de Sistema Operativo

Page 8: Windows 7, Compatibilidad De Aplicaciones

Números de Versión de SS.OO. Windows

Operating System Version Number Release Date

Windows 1.0 1.04 1985

Windows 2.0 2.11 1987

Windows 3.0 3.00 1990

Windows NT 3.1 3.10.528 1993

Windows for Workgroups 3.11 3.11 1993

Windows NT Workstation 3.5 3.5.807 1994

Windows NT Workstation 3.51 3.51.1057 1995

Windows 95 4.0.950 1995

Windows NT Workstation 4.0 4.0.1381 1996

Windows 98 4.1.1998 1998

Windows 98 Second Edition 4.1.2222 1999

Windows Me 4.90.3000 2000

Windows 2000 Professional 5.0.2195 2000

Windows XP 5.1.2600 2001

Windows Vista 6.0.6000 2006

Windows 7 6.1.???? ????

Page 9: Windows 7, Compatibilidad De Aplicaciones

Versión de Sistema Operativo

Número de Versión Interno de Windows 7 es 6.1.

• dwMajorVersion igual como en Vista

• dwMinorVersion es diferente

Problema

• Cualquier aplicación que comprueba el número de versión obtiene valor más

alto que quizás no puede procesar.

• Instaladores de Aplicaciones pueden fallar

• Lógica de aplicación puede prevenir el arranque de la misma.

Sugerencia de Solución

• Comprueba funcionalidad en vez de versión

• Aplique Parche de Compatibilidad “version lie” ( layer o shim)

• Compara para SS.OO. posteriores (>) a la versión compatible

9

Page 10: Windows 7, Compatibilidad De Aplicaciones

Porque Versión 6.1?

Muchas aplicaciones solo comprueban dwMajorVersion – Compatibilidad con

Vista

Algunas aplicaciones han intentado la comprobación pero la han implementado

INCORRECTAMENTE:

• if (majorVersion >= 5 && minorVersion >= 1)

OS Version Major >= 5 Minor >= 1 Result Desired?

Windows 2000

5.0 T F F Yes

Windows XP 5.1 T T T Yes

Windows Vista

6.0 T F F NO

Windows 7 6.1 T T T Yes

Page 11: Windows 7, Compatibilidad De Aplicaciones

Mejores Prácticas para Comprobaciones de Versión de SS.OO

No hacer comprobaciones para igualdad (=)

Comprobar para versión XP o posterior (>=5.1)

Comprobar funcionalidad en vez de versión

Seguir ejemplos de código (managed/C++) de

Windows 7 Training Kit for Developer

Puede haber excepciones – certificación para versión de SS.OO determinada

Page 12: Windows 7, Compatibilidad De Aplicaciones

XP - Windows 7

• UAC

Page 13: Windows 7, Compatibilidad De Aplicaciones

Tipos de Cuentas de Usuario

Built-in (local machine) Administrator

• Deshabilitado por defecto

• Ejecuta con “Full token” de Administrador

Protected Administrator

• Usuario en grupo de Administradores

• Ejecuta con “Split token”

Standard User or Limited User Account

• Ninguno de los previamente mencionados

• No tiene privilegios administrativos

13

Page 14: Windows 7, Compatibilidad De Aplicaciones

Control de Cuenta de Usuario (UAC)– Why?

•Aplicaciones ejecutan como Standard User por defecto

•Que puede hacer Standard User?

No Permitido

• Instalar aplicaciones

• Cambiar componentes de SS.OO

• Cambiar configuración de máquina

(machine settings)

• Privilegios de administrador

Permitido

• Ejecutar la mayoría de aplicaciones

• Cambiar configuración de usuario

(per user settings)

Page 15: Windows 7, Compatibilidad De Aplicaciones

UAC -Arquitectura

“Standard User” Token

Admin TokenAbby

Admin Token

AppAdmin Token

Child App

Standard User

Token

App

Standard User

Token

Child AppStandard User

Token

Page 16: Windows 7, Compatibilidad De Aplicaciones

Token Partido (“Split-Token”)

•Tiene menos privilegios la mayoría del tiempo

•Permite “elevar” proceso para conseguir privilegios cuando son necesarios

•Aplica a logons interactivos

Page 17: Windows 7, Compatibilidad De Aplicaciones

Token “partido”

Page 18: Windows 7, Compatibilidad De Aplicaciones

Dialogo de Consentimiento (“Consent UI”)

Componente de SS.OO.

Aplicación sin Firma

Aplicación Firmada

Page 19: Windows 7, Compatibilidad De Aplicaciones

Dialogo de Credencial (“Over The Shoulder”)

Page 20: Windows 7, Compatibilidad De Aplicaciones

Control de Configuración de Windows 7 UAC

Configuración:

1. Como en Vista

2. Excluye binarios de SS.OO.

3. Como 2 + control aparece

en Escritorio del Usuario

4. UAC deshabilitado

20

Page 21: Windows 7, Compatibilidad De Aplicaciones

Windows 7 UAC y “Auto-Elevation”

Configuración 2 y 3 hace uso de “auto elevación”

• Binarios firnados con Windows Publishing Certificate

• En ubicación “segura”

– %SystemRoot%\System32

– Algunas subcarpetas de %ProgramFiles% (Windows Defender, Windows Journal)

• Un Listado “especial” de ejecutables (Pkgmgr.exe, Migwiz.exe)

21

Page 22: Windows 7, Compatibilidad De Aplicaciones

UAC y Política de Seguridad (W7 y Vista)

Cierta funcionalidad de UAC puede ser controlada con Políticas de Seguridad

• Si Diálogos de UAC se muestran para Admins/Standard Users

• Si funciona heurística de detección de Instalador

• Si Diálogos de UAC aparecerán en Escritorio Seguro

• Virtualización de Registro y Sistema de Ficheros

Ex. : Deshabilitar Diálogo OTC para Usuario Estandard

(las peticiones de “elevación será automáticamente denegadas)

22

Page 23: Windows 7, Compatibilidad De Aplicaciones

XP - Windows 7

• UAC

Interfaz de Usuario -UI Shield

Page 24: Windows 7, Compatibilidad De Aplicaciones

Objetivo del Interfaz de Usuario: Sencillo y Predecible

1 Diseña la aplicación para “Standard User”

2 Claramente identifica tareas administrativas

• Asegura que usuarios estándar puedes ser productivos

• Identifica las tareas administrativas con “shield”

Page 25: Windows 7, Compatibilidad De Aplicaciones

Interfaz de Usuario: Escudo

• Se adjunta a los controles para indicar “elevación” es imprescindible para

utilizar la funcionalidad

• No tiene estado ( “hover”, “disabled” etc.)

• No memoriza/causa “elevación” de proceso

• Programada mediante:

• IDI_SHIELD recurso de icono

• BCM_SETSHIELD mensaje de Windows para botones

Más información:

Enabling UAC Elevation in .Net applications

Page 26: Windows 7, Compatibilidad De Aplicaciones

Ejemplo de Uso del Escudo

Page 27: Windows 7, Compatibilidad De Aplicaciones

XP - Windows 7

• UAC

Interfaz de Usuario -UI Shield

MIC

Page 28: Windows 7, Compatibilidad De Aplicaciones

Mandatory Integrity Control (MIC)

•Modelo tradicional de seguridad desde NT se basa en el “token” del proceso

•Windows Vista/Win7 mejora seguridad con MIC:

• Cada proceso tiene “nivel MIC”• Todos los recursos de SS.OO tienen “nivel MIC” (“Medium” por defecto)

•Los cuatro niveles:

• 0: Low (IE with Protected Mode On)• 1: Medium (Standard User)• 2: High (Elevated User)• 3: System (System Services)

Page 29: Windows 7, Compatibilidad De Aplicaciones

MIC y Recursos

•Niveles MIC aplican a:

• Procesos

• Objetos

• Componentes COM

• Servicios

• Sistema de ficheros

• Claves de registro

•Para visualizar nivel MIC utiliza “accesschk –i” (Sysinternals)

•IE actualmente es la única aplicación con Nivel MIC Bajo

•Todos los recursos de IE también tienen Nivel Bajo

Page 30: Windows 7, Compatibilidad De Aplicaciones

Resumen MIC Simplificado

Objetos pueden tener Nivel MIC

• Almacenado en el descriptor de seguridad (Security Descriptor)

Procesos ejecutan con cierto Nivel MIC (IL – Integrity Level)

• Almacenado en el “token” de acceso (Access Token)

Un proceso no puede acceder al objeto si su Nivel MIC < Nivel MIC del objeto

• Forma parte de comprobación del acceso

Page 31: Windows 7, Compatibilidad De Aplicaciones

MIC en más Detalle - Politicas

Cada objeto securizable tiene Nivel y Política MIC

Tipos de Políticas:

• “No-Write-Up”: Nivel más bajo no puede escribir al objeto• “No-Read-Up”: Nivel más bajo no puede leer el objeto• “No-Execute-Up”: Nivel más bajo no puede ejecutar el objeto

Niveles no especificados = “Medium” + “No-Write-Up”

Procesos son “No-Write-Up” + “No-Read-Up”

Page 32: Windows 7, Compatibilidad De Aplicaciones

MIC y Pruebas de Acceso

Nivel de Proceso y típo de accesso solicitado se comprueban con Nivel del Objeto

• If Nivel de Proceso >= Nivel de Objeto, realiza prueba DACL (access control list)• If Nivel de Proceso < Nivel de Objeto ENTONCES

No Write Up No Read Up No Execute

Write

Read

Execute

Y política de objeto es…

Si el tipo de

acceso

solicitado

incluye

Page 33: Windows 7, Compatibilidad De Aplicaciones

Ejemplo de Comprobación de Acceso con MIC

Request Access:

Read + Write

Request Access:

Read + Write

R+W

Internet Explorer

[LOW IL]

MS Money

[Medium IL]

Toby’s

Startup

Folder

Medium (NW)

Page 34: Windows 7, Compatibilidad De Aplicaciones

MIC

Page 35: Windows 7, Compatibilidad De Aplicaciones

User Interface Privilege Isolation (UIPI)

UIPI- proceso con Nivel MIC más bajo no puede

• Validar “window handle” creado por el proceso con nivel más alto• Hacer llamadas SendMessage o PostMessage a las ventanas creadas por el proceso

con nivel más alto• Utilizar “thread hooks” para attachar a los procesos más privilegiados• Utilizar “journal hooks” (SetWindowsHookEx) para monitorizar dichos procesos

Para permitir que Windows Message pasa entre Niveles distintos MIC levelsutiliza

ChangeWindowMessageFilter(message, SGFLT_ADD);

o

marca UIAccess=true en el manifest (vease manifiesto de osk.exe)

Consulta Windows 7 Training Kit for Developer para el código de ejemplo.

Page 36: Windows 7, Compatibilidad De Aplicaciones

XP - Windows 7

• UAC

Interfaz de Usuario -UI Shield

MIC

Virtualización

Page 37: Windows 7, Compatibilidad De Aplicaciones

Virtualización de Sistema de Ficheros y Claves de Registro

• Facilita compatibilidad de aplicaciones “legacy”

• No hay garantía de que exista en futuros SS.OO.

• Funciona con aplicaciones interactivas de 32-bit (no “elevadas” acceden a recursos protegidos

• Con claves/ficheros donde Admin tiene acceso

• HKLM\Software; • %SystemDrive%\Program Files• %WinDir%\System32

• Serán redirecionados a:

• HKCU\Software\Classes\VirtualStore• %LocalAppData%\VirtualStore\

• Virtualización elimina necesidad de “elevar”

• Escrituras a HKLM van a HKCU• Escrituras a carpetas de SS.OO re-direccionados a repositorio

“per-usuario”• Diferente de redirección de registro para 32-bit en máquinas x64,

(WOW64…)

Page 38: Windows 7, Compatibilidad De Aplicaciones

Virtualización de Sistema de Ficheros y de Registro

•Virtualización de Claves de Registro NO FUNCIONA

• Para procesos 64 bits

• Procesos que impersonan usuarios

• Procesos que especifican requestedExecutionLevel en sus manifiestos

• Procesos no interactivos (servicios Windows)

• Virtualización de ficheros no funciona para ejecutables

• aspx, .bin,.cmd,.exe, .hlp, .msi, .ocx, .sys, .tlb, .wsh

Page 39: Windows 7, Compatibilidad De Aplicaciones

Virtualización y Windows Explorer

Page 40: Windows 7, Compatibilidad De Aplicaciones

Virtualización

Page 41: Windows 7, Compatibilidad De Aplicaciones

XP - Windows 7

• UAC

Interfaz de Usuario -UI Shield

MIC

Virtualización

WRP

Page 42: Windows 7, Compatibilidad De Aplicaciones

WRP (Windows Resource Protection)

Mecanismo general que protege ciertos recursos de SS.OO., e.g.

Windows\system32\kernel32.dll

• NT SERVICE\TrustedInstaller tiene Full Access

– SfcIsFileProtected() permite detectar clave de registro protegida por WRP

– SfcIsFileProtected() permite detectar fichero protegido por WRP

Windows Module Installer (TrustedInstaller.exe) es utilizado para actualizar

componentes de SS.OO.

• ISV no disponen del interfaz para interactuar con el

Local Administrator puede tomar “ownership” del recurso protegido eliminando

WRP

• WRP no es medida de seguridad

Aplicaciones /Instaladores

• No deberían modificar recursos protegidos por WRP.

Page 43: Windows 7, Compatibilidad De Aplicaciones

XP - Windows 7

• UAC

Interfaz de Usuario -UI Shield

MIC

Virtualización

WRP

Ubicación de Carpetas

Page 44: Windows 7, Compatibilidad De Aplicaciones

Ubicación de Carpetas

Datos de Usuario se almacenan en : \Users\%username%\

Carpetas Pictures, Music, Documents, Desktop, y Favorites están debajo

Prefijo “My“ eliminado (en Windows 7 Explorerlo muestra…)

“All Users” “Public” o “\ProgramData”

Page 45: Windows 7, Compatibilidad De Aplicaciones

Dónde Debería Almacenar mis Datos?

Shared Data User Data

Show in Explorer FOLDERID_Public FOLDERID_Documents

Hide in Explorer / Local FOLDERID_ProgramData FOLDERID_LocalAppData

Hide in Explorer / Roam - FOLDERID_RoamingAppData

See:Where Should I Write Program Data Instead of Program Files?

Constantes SHGetKnownFolderPath

Page 46: Windows 7, Compatibilidad De Aplicaciones

Mejores Prácticas para Ubicación de Carpetas

No utilizar rutas absolutas

• AppVerifier incluye una prueba

Script: utilizar variables de entorno

Código “Unmanaged” (C, C++)

• ShGetFolderPath function (CLSID_...)• SHGetKnownFolderPath (FOLDERID_...)

Código “Managed” (C#, VB.NET)

• System.Environment.GetFolderPath() • Microsoft.VisualBasic.FileIO.SpecialDirectories• My.Computer.FileSystem.SpecialDirectories

Page 47: Windows 7, Compatibilidad De Aplicaciones

XP - Windows 7

• UAC

Interfaz de Usuario -UI Shield

MIC

Virtualización

WRP

Ubicación de Carpetas

Manifiesto de Aplicación

Page 48: Windows 7, Compatibilidad De Aplicaciones

Aplicaciones diseñadas para Vista /Windows 7

•Aplicaciones diseñadas para Vista/W7 embeben un “XML manifest”

•Elemento estándar de Proyecto de VS 2008

•Deshabilita “mitigaciones” como Virtualización

•Manifiesto declara RequestedExecutionLevel:

asInvoker Lanza con el mismo “token” que proceso “padre”

highestAvailable Lanza con parte del “token” más “alta” de la que dispone el usuario

requireAdministrator Lanza con parte del “token” más “alta” del usuario que tiene que ser miembro del grupo Administrators

Page 49: Windows 7, Compatibilidad De Aplicaciones

Ejemplo de Manifiesto XML

MyAdminApp.Exe.Manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity version="1.0.0.0" processorArchitecture="X86"name="MyAdminApp" type="win32"/>

<!-- Identify the application security requirements. --><trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">

<security><requestedPrivileges>

<requestedExecutionLevel level="requireAdministrator“uiAccess=“false"/>

</requestedPrivileges></security>

</trustInfo></assembly>

Page 50: Windows 7, Compatibilidad De Aplicaciones

Comprobación/solución de Problemática UAC

•Si haces lo siguiente…

•Escribes a Program Files, Windows, System32, HKLM/Software, o Root (c:)?

•Creas objetos “globalmente” (a nivel de sistema)

•Utilizas Mensajes Windows entre Niveles MIC distintos de procesos

•Haz una prueba

• Ejecuta la aplicación como Admin

• Prueba la aplicación con UAC deshabilitado

•Herramientas de utilizad

• Process Monitor

• Standard User Analyzer

Page 51: Windows 7, Compatibilidad De Aplicaciones

XP - Windows 7

• UAC

Interfaz de Usuario -UI Shield

MIC

Virtualización

Ubicación de Carpetas

• Aislamiento de Servicios Windows (Session 0)

Page 52: Windows 7, Compatibilidad De Aplicaciones

Servicios Windows y Sesión 0

En Windows® XP, servicios de Windows y Aplicaciones de usuarios ejecutaban

conjuntamente en Sesión 0.

Desde Windows Vista®, servicios Windows están aislados en Sesión 0

Aplicaciones de usuarios ejecutan en Sesión 1, Sesión 2, etc.

(“fast user switching” y Terminal Services)

Page 53: Windows 7, Compatibilidad De Aplicaciones

Separación de Sesiones

Session 0 in Windows XP / Windows Server 2003

Session 0 / Session 1 in Windows Vista+

Page 54: Windows 7, Compatibilidad De Aplicaciones

Problemática Relacionada

Mensajes de Windows no pueden cruzar límites del Desktop (y por lo tanto sessión)

Servicios Windows no pueden mostrar Interfaz de Usuario en el Desktop de Usuario(está en la sesión distinta!)

Control de acceso (MIC) añade complejidad a posibles soluciones.

Page 55: Windows 7, Compatibilidad De Aplicaciones

Como mostrar Interfaz de Usuario desde Servicio Windows

1. Mecanismo de “mitigación” avisa al usuario(si el servicio es “interactivo”)

• Interactive Service Detection Service (parado por defecto)

• Inconveniente para Usuario

2. Para mensajes simples

• utiliza TS API WTSSendMessage

3. Para lanzar Interfaz Complejo

• utiliza CreateProcessAsUser

Page 56: Windows 7, Compatibilidad De Aplicaciones

Recursos para Partners

• ACF

• Recursos de Ayuda en temas de Compatibilidad

• Curso de formación para Partners

• Otros recursos

Page 57: Windows 7, Compatibilidad De Aplicaciones

Application Compatibility Factory (ACF)

• 5 Partners ya formados• Tienen conocimiento profundo en pruebas de compatibilidad• Contacto: Wipro, Infosys, TCS (Tata), Satyam, HP, Sogeti• http://technet.microsoft.com/en-us/windows/bb510132.aspx

ACF Training Site

• Material de formación para Partners que quieren participar en ACF• ACT 5.5 + Documentación+ Webcasts + Presentaciones

58

Page 58: Windows 7, Compatibilidad De Aplicaciones

Application Compatibility – Formación para Partners

Programa de formación de 12 horas en inglés a nivel 300 que incluye

• UAC Overview

• Advanced UAC and Windows Resource Protection

• IE in Protected Mode

• Versioning, Folder Locations, Session 0 Isolation

• ACT 5.5 Internals

• Shims and Compatibility Administration

• LUA Tools and Solutions

• Sysinternals Tools and IE Compatibility Test Tool

• Exam

59

Page 59: Windows 7, Compatibilidad De Aplicaciones

Ayuda en Resolución de Problemas de Compatiblidad de Aplicaciónes

Partner Online Technical Communities (OTC)

• Windows 7 Application Compatibility OTC

• https://partner.microsoft.com/US/40014662

• Primera respuesta en 8 horas

• Disponible en Castellano

Foros de Discusión Públicos

• MSDN Application Compatibility for Windows Development

• Technet Windows 7 Application Compatibility Forum

W7 ISV Remediation Workshops DPE

• Aplica en https://www.isvappcompat.com/Default.aspx

• Evento presencial 2-3 días

• Se puede traer la aplicación para remediarla

60

Page 60: Windows 7, Compatibilidad De Aplicaciones

Ejemplos de código - Windows 7 Training Kit for Developers

Developer Kit contiene laboratorios “hands-on”+ ejemplos de código (managed

/unmanaged) sobre siguiente problemática

• OS Version Checks

• Session 0 Isolation

• User Interface Process Isolation (MIC)

• Installer Detection

• High DPI

• Data Redirection(File and Registry Virtualization)

61

Page 61: Windows 7, Compatibilidad De Aplicaciones

Otros Recursos Públicos

Cookbooks – detallan problemas de compatibilidad

• “Application Compatibility Cookbook”• “Windows 7 Application Quality Cookbook”

MSDN Application Compatibility: http://msdn.microsoft.com/en-us/windows/aa904987.aspx

TechNet Windows Application Compatibility: http://technet.microsoft.com/en-us/desktopdeployment/bb414773.aspx

Sysinternals http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx

Developer Guides – guías de programación genéricas

• Windows 7 UX Guide• Windows 7 Developer Guide

62

Page 62: Windows 7, Compatibilidad De Aplicaciones

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other

countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentations. Because Microsoft must respond

to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of

this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Contacto:

[email protected]

Tel. 902 197 198

[email protected]

(buzón de servicio para Partners)