in

Prisma Blogs

Sitio dedicado a la divulgación de conocimientos técnicos.

Javier Cimadom

  • Próximos Eventos Microsoft (algunos gratuitos!!)

    Para todos los que le interese, les paso una lista de los eventos que va a dar Microsoft proximamente.

    Miércoles 16 Y 17-05-07

    Tucumán -"Jornadas MUG Sobre Desarrollo de Software"

     

    Sábado 19-05-07

    SEMINARIO GRATUITO "Todo con SQL Server Express".

     

    Martes 22 y Martes 29-05-07

    CURSO CON USO DE PC "ACTIVE DIRECTORY".

     

    Martes 22-05-07

    CÓRDOBA - "Todo con SQL Server Express".

     

    Jueves 24-05-07

    MEDIA JORNADA "C# 2.0 y Generics".

     

    Lunes 28-05-07

    MEDIA JORNADA "Desarrollo de aplicaciones Web con ASP.NET 2.0 y AJAX.NET".

     

    Lunes 4-06-07

    JORNADA DE CAPACITACIÓN "SQL Server 2005 Analysis Services desde cero"

     

    Lunes 11-06-07

    MEDIA JORNADA "Personalizando Visual Studio Team System".

     

    Miércoles 13 y Jueves 14-06-07

    CURSO CON USO DE PC "Desarrollo de Aplicaciones para Dispositivos Móviles"

     

    Tucumán -"Jornadas MUG Sobre Desarrollo de Software".

    Fechas: Miércoles 16 y Jueves 17de Mayo de 2007.

    Lugar: Aula Magna UTN, Facultad Regional Tucumán, Rivadavia 1050, San Miguel de Tucumán.

    La universidad Tecnológica Nacional, Facultad Regional Tucumán, y el Grupo de Usuarios Microsoft de Argentina lo invitan a participar de estas importantes jornadas sobre desarrollo de software.
    Dos seminarios a dictarse 16 y 17 de mayo de 2007.

    Orador: Daniel Laco
    Arquitecto. Socio en su consultora VEMN Sistemas. Encargado de definir estrategias para incorporación de nuevas tecnologías. Orador habitual en eventos locales e internacionales organizados por Microsoft o el MUG. Tiene una larga trayectoria como consultor en el desarrollo de soluciones de alta complejidad.

    Miércoles 16 de mayo de 2007, de 17:00 a 21:00 Hs
    Seminario Lo nuevo y lo fundamental en .NET y WinForms. Todo lo necesario para construir aplicaciones de escritorio
    Seminario orientado a quienes desarrollan aplicaciones de escritorio (WinForms) que abordará temas puntuales para mejorar la productividad, versatilidad y velocidad de sus programas. Ofrecerá además un panorama general para quienes estén desarrollando aplicaciones con VB6, Fox, etc. y quieran tener una visión acerca de las nuevas particularidades de esta plataforma. El asistente tendrá un panorama de todo lo disponible en NET para aplicaciones en clientes inteligentes.
    Contenidos:
    Introducción al desarrollo de aplicaciones con WinForms Que tiene la IDE con la que trabajamos?
    Code Snippets Debugger Visualizers
    Partial Classes y Generación de Código Automático
    Controles y sus particularidades (cosas nuevas y otras viejas pero con mejoras)
    Forms Formularios Scrollables Formularios Transparentes Herencia Visual Eventos en el Formulario
    Contenedores y Propiedades. Como acomodo los controles en pantalla?
    Jerarquia de Controles - Tab Order Paneles y otras yerbas
    PropertyGrid un control muy potente.
    UITypeEditors TypeConverters
    Controles varios Extender Providers Help Provider Tooltip Perzonalizado
    Las validaciones de entradas de datos
    Binding Binding a Datos y a Objetos
    Temas varios (how to)
    Y los Recursos donde los pongo?
    La configuración de las aplicaciones
    Como realizar ejecuciones en paralelo con BackgroundWorker.
    Distribución y actualización automática de aplicaciones con ClickOnce
    Seguridad
    La implementación de un modelo de seguridad basado en Roles

    Jueves 17 de mayo de 2007, de 9:00 a 13:00 hs
    Seminario: Seguridad en ASP.NET
    La autenticación y autorización de usuarios es uno de los temas mas importantes al momento de encarar el desarrollo de una aplicación. También el protegerse de posibles ataques contra el sistema, y el poder responder a tiempo ante imprevistos, son temas fundamentales al momento de planear una aplicación que tenga altos estándares de seguridad. En esta conferencia se explicarán la arquitectura de seguridad implementada con ASP.NET 2.0, el modelo de Pipelines de HTTP y los puntos de extensibilidad que tiene.
    Veremos los mecanismos y funciones de autenticación disponible en ASP.NET. También se mostrará como implementar modelos mixtos de autenticación, manejo de Roles y protección de recursos.

    La malformación de entrada de datos es frecuentemente la causa de la caída de los sistemas. Se mostraran los tipos de ataques mas comunes como SQL Injection, XSS y las técnicas de mitigación.
    Manejo de Errores, Logging e Instrumentación son buenas prácticas y mecanismos que ayudan a la detección y reacción ante ataques sobre las aplicaciones. Se aprenderá las diferentes alternativas con que contamos en la plataforma .NET para Tracing, Diagnostic y Health Monitoring.

    Registración


    SEMINARIO GRATUITO
    Inscripción en Tucumán: Departamento de TIC, Secretaría de Planeamiento, UTN, Facultad Regional Tucumán, Rivadavia 1050, 1er Piso, San Miguel de Tucumán.

    SEMINARIO GRATUITO "Todo con SQL Server Express".

    Disertante: Ing. José Mariano Alvarez, Maximiliano Accotto (MVP).

    Fecha y Horario: Sábado 19 de Mayo de 2007, en el horario de 9.00 a 13.00 hs.

    Lugar: Aula Magna Universidad Abierta Interamericana - Sede San Juan 983 - Ciudad de Buenos Aires.

    Nivel: Introductorio

    DETALLES DE CONTENIDOS:

    Una breve introducción practica de como se puede aprovechar este servidor que tiene todo lo que se precisa para hacer una aplicación de base de datos completa.

    · Un servidor de base de datos multiusuario completo con Índices, transacciones y triggers.
    · Las herramientas de administración, la seguridad y las copias de respaldo (Backup)
    · El lenguaje SQL, el acceso a datos y los procedimientos almacenados y las funciones.
    · Extendiendo el servidor con programación en .NET, una potente solución de programación interna.
    · Generar reportes poderosos muy fácilmente.
    · Las limitaciones y la escalabilidad a otras ediciones.

    Registración

    Evento gratuito, vacantes limitadas.

    Los asistentes que completen la totalidad del seminario, recibirán un CD con los productos demostrados listos para instalar. Reciben; C# Express 2005, VB .Net Express 2005, Visual Web Developer, SQl Server Express 2005, Net Framework 2.0 , AJAX .Net 1.0 y mas.

    CURSO CON USO DE PC "ACTIVE DIRECTORY".

    Instructor: Sr. Rodrigo de los Santos (MCP CNA CCA)

    Duración: 8 hs, distribuidas en 2 clases de 4 hs.

    Fechas y Horario: Los días Martes 22 y Martes 29 de Mayo, en el horario de 9.00 a 13.00 hs.

    Lugar: Av. del Libertador 6796 - Capital Federal - Laboratorio del Centro de Emprendedores de ORT.

    Prerequisitos: Indispensable tener conocimientos básicos de Active Directory o haber tomado el Seminario "Conceptos de Active Directory" dictado por Guillermo Delprato en el MUG.

    El objetivo de este workshop es aplicar los conocimientos teóricos de diseño de Active Directory en escenarios de posible implementación.
    Se podrán probar los siguientes procedimientos:

    1. Implementación del Primer Controlador de Dominio en el Forest

    A. Configuración de requisitos Necesarios

    B. Implementación del servidor

    C. Alta y Modificación de Objetos en Active Directory (OUs, Usuarios, Computadoras, Contactos,

    D. Mejores Prácticas en Nomenclatura de Objetos y Grupos

    E. Mejores prácticas en diseño de grupos

    2. Implementación del segundo controlador de dominio.

    A. Verificación de los requisitos necesarios.

    B. Roles FSMO - Transferencia de Roles (mediante NTDSUTIL o herramientas de administración)

    3. Implementación de dominios adicionales

    A. Requisitos de resolución de nombres

    B. Conceptos de diseño y Nomenclaturas

    4. Sitios

    A. Configuración de Sitios

    B. Replicación Intra Sitio - Replicación Entre Sitios - Control de Replicación

    Registración

    Aranceles:
    Público en general: $ 150
    Socios del MUG: $ 80

    * BENEFICIESE RESERVANDO SU VACANTE CON ANTICIPACIÓN: Hasta el martes 15 de mayo de 2007, abonando en EFECTIVO, reserva su vacante y tiene un descuento de $10.
    (abona:Público en general: $ 140 ,Socios del MUG: $ 70 ).
    Se entrega certificado de asistencia, al finalizar el curso.

    CÓRDOBA - "Todo con SQL Server Express ".

    Fecha: martes, 22 de mayo de 2007

    Lugar: Inst. Cervantes, Santa Rosa 1793, Barrio Alberdi, Córdoba Capital

    Seminario gratuito que nos muestra cómo se puede aprovechar este servidor que tiene todo lo que se precisa para hacer una aplicación de base de datos completa, a través de la práctica.

    Orador: Matías Iácono (MVP)
    Microsoft MVP ASP.Net. Reconocimiento otorgado por Microsoft, por colaboración en la traducción a castellano de documentación y creación de código de ejemplo para la herramienta de desarrollo Visual Studio 2005.

    Registro: 18:00 hs - Comienza: 18:30 hs

    Contenidos:
    · Presentación del servidor de base de datos multiusuario completo con Índices, transacciones y triggers.
    · Herramientas de administración, la seguridad y las copias de respaldo (Backup)
    · Lenguaje SQL, el acceso a datos y procedimientos almacenados y funciones.
    · Extendiendo el servidor con programación en .NET, una potente solución de programación interna.
    · Generación de reportes poderosos y fácilmente.
    · Limitaciones y escalabilidad a otras ediciones.

    Los asistentes que completen la totalidad del seminario, recibirán un CD con productos listos para instalar. Reciben; C# Express 2005, VB .Net Express 2005, Visual Web Developer, SQl Server Express 2005, Net Framework 2.0 , AJAX .Net 1.0 y mas.

    Inscripción en Córdoba: telefónicamente al (0351) 489-0008 o por mail a extension@cervantes.edu.ar

    Registración

    SEMINARIO GRATUITO

    MEDIA JORNADA "C# 2.0 y Generics".

    Disertante: Martín Salías (MVP)

    Fecha y Horario: Jueves 24 de Mayo de 2007, en el horario de 18.00 a 22.00 hs.

    Lugar: Auditorio MUG - Rivadavia 1479 1º Piso - Oficina A.

    Objetivos: Esa sesión tiene dos objetivos, uno a corto y otro a mediano plazo.
    El primero es dar a conocer a los desarrolladores y arquitectos algunas de las nuevas características del .NET Framework 2.0, específicamente en los lenguajes (vistas desde la perspectiva de C#, aunque la mayoría aplica también a VB.NET).

    El segundo objetivo es servir como introducción a conceptos y funcionalidades sobre las que se basa la próxima versión del .NET Framework (3.5), ya que las nuevas capacidades deben ser explicadas teniendo en cuenta los agregados en la versión actual.
    Así, esta sesión es introductoria y complementaria a una próxima presentación sobre novedades en C# 3.0 y Visual Studio Orcas y el proyecto LINQ.

    Conocimientos previos: Conceptos generales de programación orientada a objetos, conocimiento básico de la plataforma .NET y experiencia mínima con la sintaxis y modelo de programación de C#.

    DETALLE DE CONTENIDOS:

    Introducción
    Objetivos generales del equipo de C#
    Características y alcance del lenguaje
    Algunas de las nuevas características en C# 2.0
    Anonymous types
    Iterators
    Partial Classes
    Static Classes
    Nullable types
    Generics
    Importancia de la seguridad de tipos
    Diferencia con los Templates de C++
    Generics aplicados a clases, métodos y delegados
    Constraints
    Impacto en las clases base
    Guías y patrones de uso

    Registración

    Aranceles:
    Público en general: $ 70.00
    Socios del MUG: $ 30.00

    MEDIA JORNADA "Desarrollo de aplicaciones Web con ASP.NET 2.0 y AJAX.NET".

    Disertante: Sr. Adrián Cura (Miembro del Grupo de Usuarios Microsoft)

    Fecha y Horario: Lunes 28 de Mayo de 2007, en el horario de 18.00 a 22.00 hs.

    Lugar: Auditorio MUG - Rivadavia 1479 1º Piso - Oficina A.

    DETALLES DE CONTENIDOS:

    a) Lo nuevo en ASP.NET 2.0

    a. Master Page
    b. Themes and Skins
    c. Personalización

    b) Tecnologías complementarias.

    a. Hojas de estilos Css.
    b. JavaScript.

    c) Introducción a las tecnologías AJAX.NET.

    a. Incorporando la tecnología de AJAX.Net a la aplicación.
    b. Mapeo entre el código del lado del servidor y del lado del cliente.
    c. Usando Controles Ajax.
    d. Agregando Script Callbacks.
    e. Uso de Web Services mediante Ajax.

    Prerrequisitos: Experiencia básica en programación con ASP.NET.

    Registración

    Aranceles:
    Público en general: $70
    Socios del MUG: $ 30

    JORNADA DE CAPACITACIÓN "SQL Server 2005 Analysis Services desde cero".

    Disertante: Ing. José Mariano Álvarez

    Fecha y Horario: Lunes 4 de Junio de 2007, en el horario de 14.00 a 22.00 hs.

    Lugar: Auditorio MUG - Rivadavia 1479 1º Piso - Oficina A.

    Nivel: Introductorio.

    Esta Jornada está diseñada para que los asistentes puedan comprender los fundamentos del SQL Server 2005 Analysis Services, partiendo desde la base de datos SQL hasta el modelo OLAP explorando las distintas capacidades que nos ofrece. El contenido será práctico con algunas diapositivas teóricas de soporte.

    DETALLES DE CONTENIDOS:

    Cubos
    Dimensiones
    Medidas
    MDX
    Seguridad
    Despliegue
    Procesamiento

    Registración

    Aranceles:
    Público en general: $ 100
    Socios del MUG: $ 50

    MEDIA JORNADA "Personalizando Visual Studio Team System".

    Disertantes: Lic. Patricia Scalzone, Leticia Medela - Analista de Sistemas.

    Fecha y Horario: Lunes 11 de Junio de 2007, en el horario de 18.00 a 22.00 hs.

    Lugar: Auditorio MUG - Rivadavia 1479 1º Piso - Oficina A.

    Objetivos: Personalizar VSTS para automatizar el propio Proceso de Desarrollo.

    Conocimientos Previos: Conocimientos de Procesos de Desarrollo y nociones del entorno VSTS para la gestión de los mismos.

    A quién está dirigido: Gerentes de Proyectos, Líderes de Proyectos, Analistas.

    Cuando la empresa ha definido su Proceso de Desarrollo de Software, siendo éste ágil o persiguiendo un modelo de calidad, tiene entonces la posibilidad de automatizarlo. Tomando como modelo inicial Microsoft Solution Framework (MSF), Microsoft ofrece una Guía de personalización de Proceso, para su entorno integrado Visual Studio Team System.

    DETALLES DE CONTENIDOS:

    Introducción

    VSTS y la Gestión de Proyectos

    ·       Equipos de desarrollo

    ·       Team Foundation Server: Colaboración en proyectos de Desarrollo

    ·       Administración del Proyecto:

    o      La importancia del Proceso

    o      Ítems de Trabajo

    o      Reportes

    Las plantillas de Proceso

    ·        MSF para Desarrollo de Aplicaciones ágiles

    ·        MSF para Proceso de Mejora Continua con CMMI

     

    Una metodología para la automatización del ciclo de vida de desarrollo en VSTS

    ·       La definición de una nueva plantilla de proceso

    o      Pasos para la personalización

    o      Componentes y artefactos

     

    La edición de la Plantilla de Proceso

    ·       Elementos de trabajo (WorkItems)

    ·       Áreas e Iteraciones ( Áreas and Iterations)

    ·       Grupos y Permisos (Groups & Permissions)

    ·       Repositorio (Source Code Control)

    ·       Reportes (Reports)

     

    Guía de Proceso

    ·       La Plantilla InfoPath

    ·       Actividades (Activities) , Flujos de trabajo (WorkFlows) y Roles

    ·       Productos de Trabajo (WorkProducts)

    ·       Elementos de trabajo (WorkItems)

    ·       Reportes y Consultas

    Registración

    Aranceles:
    Público en general: $70
    Socios del MUG: $ 30

    CURSO CON USO DE PC: "Desarrollo de Aplicaciones para Dispositivos Móviles"

    Instructor: Ing Carlos Pérez (MVP)

    Fecha y Horario: Miércoles 13 y Jueves 14 de Junio de 2007, en el horario de 13.00 a 19.00 hs.
    Curso intensivo de 6 hs. de duración, distribuidas en 2 clases.

    Lugar: Laboratorio del Centro de Emprendedores de ORT - Av. del Libertador 6796 - Capital Federal.

    Nivel: Básico e intermedio.

    Modalidad: Curso teórico práctico con uso de PC. Incluye teoría y práctica

    DETALLE DE CONTENIDOS:

    Temas de nivelación
    Reseña de la plataforma móvil de Microsoft. Características iniciales del sistema operativo Windows CE. Diferencias entre Windows CE y sus implementaciones PocketPC. Qué es el Platform Builder. Qué es el PocketPC. Qué es el PocketPC Phone Edition. Qué es el Smartphone. Diferencias y similitudes. Preliminares del hardware. Costo de explotación y mantenimiento del hardware. Formas de sincronización con el extremo fijo.
    Comparativas entre Windows CE Handheld edition y Windows Mobile (PocketPC y Smartphones).

    Desarrollo de aplicaciones
    Desarrollando para móviles
    Arquitecturas generales de sistemas móviles de información. Modelos de conexión. Factores de forma y otras consideraciones necesarias para el desarrollo de aplicaciones móviles.

    Conceptos de desarrollo con código no administrado
    Aplicaciones para Windows CE, para PocketPC, Phone Edition y Smartphone. Conceptos de Embedded Visual Tools 3.0, Embedded Visual Basic y Embedded Visual C++. Embedded Visual C++ 4.0 y Windows CE 4.1 y 4.2.

    Desarrollo en código administrado: NET Compact Framework (NETCF)
    Qué es, arquitectura, tamaño, constitución, jerarquía de clases, modelo de ejecución de .NET CF. Principales problemas por carencias en el NET.CF. Paradigma de desarrollo con el .NET CF. Visual Studio 2005 y desarrollo para dispositivos.

    Acceso a datos con .NET Compact Framework

    Modelo desconectado
    Persistencia con archivos simples. Persistencia con XML. Manejo de documentos XML. Modelo de objetos de ADO.NET en Compact Framework. Persistencia con datasets sin conexión al servidor. Manejo de datasets programáticamente.

    Modelo conectado
    Consumo de datasets desde un web service regular con SQL Server 2000 en el extremo fijo. Acceso remoto por RDA a SQL Server 2000. Conectividad remota al SQL Server de escritorio, aspectos a cuidar. Rendimiento por conectividad WAN (GSM-GPRS). Arquitectura del extremo fijo.
    SQL Server CE 2.0 y SQL Server Mobile
    Arquitectura local de SQL Server CE y Mobile. Alcances del gestor de bolsillo, características soportadas. Persistencia local con SQL Server CE: conexión, acceso a datos, comandos DML, comandos DLL. Consumiendo datasets con ADO.NET en Compact Framework. Modos de sincronización con el extremo fijo: modo Push-Pull, modo Merge Replication. Arquitectura de merge-replication, cuidados a tener. Licenciamiento.

    PocketPC Phone Edition
    Arquitectura de la plataforma. El sistema operativo y la extensión de interfaz de
    radio celular. Servicios disponibles desde el sistema operativo. Características de los dispositivos. Conectividad WAN, nociones de GSM, GPRS, EDGE.

    Smartphone
    Arquitectura de la plataforma. El sistema operativo. Límites y alcances del factor de forma, arquitectura de hardware de los dispositivos y algunas otras consideraciones. Desarrollando sistemas para Smartphone y Windows Mobile 2005.

    Registración

     Enjoy!!

    Aranceles:
    Público general: $ 210
    Socios del MUG: $ 130
    Muy Importante: Las reservas para este curso, deberán abonarse antes del Jueves 7 de JUNIO. No se mantendrán las reservas de las vacantes, luego de esa fecha. - VACANTES LIMITADAS.

    Posted May 15 2007, 11:36 AM by Javier with no comments
    Filed under:
  • Cursos de programación de VBNet en videos!

    Para todos los que le interesa la programación, les paso un vínculo en donde encontrarán unos videos muy interesantes con explicaciones paso a paso de cómo realizar algunos programas. Adicionalmente encontraran un video del evento de Microsoft que cuenta Leandro en un post anterior.

     http://www.vb-mundo.com/tv.asp

    Enjoy!!

  • Nos adentramos en el mundo de WMI

    Introducción

     

    Siguiendo con el “pequeño curso” de programación en VBS, veremos los conceptos básicos de WMI. Antes de arrancar, recomiendo a toda persona que esté empezando con el tema de scripting la lectura del artículo anterior “Introducción a VBS (Visual Basic Script)”.

    Bueno, primero vamos a repasar un poquito qué es y para qué sirve WMI luego nos adentraremos en la programación.

     

    WMI – La administración al alcance de las manos

     

    WMI es la infraestructura en la que se basa la administración de sistemas operativos Microsoft (implementada a partir de Windows 2000 Professional SP2 y Windows 2000 Server). Nos permite realizar no solo la administración de los sistemas operativos sino también de los productos instalados (especialmente en productos Enterprise), a través de tareas automáticas y scripts.

     

    Arquitectura

    WMI provee una interfaz uniforme para cualquier script corra tanto local como remotamente. Esto quiere decir que no necesita llamar a una gran cantidad de APIs para operar.

     Arquitectura WMI

     

    1-      WMI Providers and Managed Objects: Los “WMI Providers” son objetos COM que monitorean uno o más “Managed Objects”. Un “Managed Object” es básicamente un componente lógico o físico (un disco rígido, una placa de red, el sistema operativo) que está representado como una instancia de Clases WMI. Ahora bien, ¿cómo realiza el manejo de estos componentes? el tema es así, cada “WMI Provider” tiene una DLL asociada y un archivo MOF (Managed Object Format) que definen las clases utilizables. Los archivos MOF y las DLL se encuentran guardadas dentro de la carpeta %WINDIR%\System32\Wbem.

     

    2-      WMI Infraestructure: Posee dos componentes:

    ·          WMI service (winmgmt), incluyendo el WMI Core (núcleo)

    ·          WMI repository: El WMI repository está organizado en “Namespaces” (ese es un concepto importante que nos va a servir en el futuro). Por defecto. El Servicio de WMI crea algunos namespaces como ser, root\default, root\cimv2, y root\subscription. Estos contienenen una serie de definiciones de clases incluyendo a las principales Win32 Classes, la WMI System Classes entre otras. Como nombramos anteriormente, los otros namespace son creados por otros WMI Providers.

    3-      WMI management applications and scripts: Esta sección se refiere a las aplicaciones (scripts) que interactúan con el “WMI Infraestructure" para correr queries, enumerar información, utilizar métodos o eventos.

     

    Ejemplo

    Bueno, después de tanta explicación teórica, es hora de plasmar todos esos conceptos en un ejemplo. Lo que vamos a hacer, es obtener el nombre del equipo en donde corremos el script:

     

    '---------------------------------------------------------------------------------------------------------------

    strComputer = "."                                   'Al asignar la variable a un punto (.) nos referimos al equipo local, el donde corremos el script

    Set objWMIService = GetObject _

        ("winmgmts:\\" & strComputer & "\root\cimv2") 'Utilizamos el namespace \root\cimv2.

    Set colItems = objWMIService.ExecQuery _

    ("Select * from Win32_ComputerSystem")          'Hacemos un query de la clase     Win32_ComputerSystem e instanciamos una colección con esos datos.

    For Each objItem in colItems

        Wscript.Echo "Computer Name: " & objItem.Name 'Imprimimos por pantalla el nombre de equipo

    Next

    '---------------------------------------------------------------------------------------------------------------

     

    Providers, Managed Objects, Namespace y Clases

    A esta altura seguramente muchos de ustedes estarán diciendo “todo muy lindo, pero cómo se que Provider, namespace o clase utilizar si quiero…”, bueno, lamentablemente eso lo da la práctica y a decir verdad es casi imposible aprender de memoria todo así que en los anexos les estoy dejando una pequeña guía de referencia como para que tengan algo (después depende de ustedes seguir investigando) y adicionalmente les dejo tres scripts para verificar los providers, namespaces y clases existentes en el equipo.

     

    A programar!!

    Y si, llegó el momento de ponernos a programar un poco. Como seguramente las necesidades de cada uno de ustedes es diferente, voy a poner un par de “trucos” que les serán útiles en el futuro.

     

    Manejo de archivos

    VBS al ser un lenguaje reducido no posee la posibilidad de leer y escribir al mismo tiempo, o leemos o escribimos. Entonces, ¿Cómo hacemos para modificar un valor dentro de un archivo de texto? La respuesta es sencilla, aunque no es posible buscar y reemplazar texto directamente dentro de un archivo de texto, se puede hacer lo siguiente: 1) abrir un archivo de texto; 2) leer el texto en una variable; 3) realizar una búsqueda con sustitución en esa variable; y 4) volver a grabar el archivo de texto.

    '---------------------------------------------------------------------------------------------------------------

    Const ForReading = 1

    Const ForWriting = 2

     

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Set objFile = objFSO.OpenTextFile("C:\Scripts\Nombres.txt", ForReading)

     

    strText = objFile.ReadAll

    objFile.Close

    strNewText = Replace(strText, "Javier ", "Andrés ")

     

    Set objFile = objFSO.OpenTextFile("C:\Scripts\Text.txt", ForWriting)

    objFile.WriteLine strNewText

    objFile.Close

    '---------------------------------------------------------------------------------------------------------------

    Vamos a ver otro ejemplo sencillo de manejo de archive, en este caso listaremos la cantidad de archivos que hay en una carpeta.

     

    '---------------------------------------------------------------------------------------------------------------

    strComputer = "."

     

    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

     

    Set colFileList = objWMIService.ExecQuery _

        ("ASSOCIATORS OF {Win32_Directory.Name='C:\TestLog'} Where " _

            & "ResultClass = CIM_DataFile")

     

    If colFileList.Count = 0 Then

        Wscript.Echo "No hay archivos en la carpeta."

    Else

        Wscript.Echo "Hay " & colFileList.Count & " en la carpeta"

    End If

    '---------------------------------------------------------------------------------------------------------------

     

    Conclusión

    Estuvimos viendo un panorama de lo que es WMI, para que sirve y cuales son sus componentes. Para la próxima, nos adentraremos más en algunos scripts para listar de cada clase, los atributos, métodos, propiedades y ejemplos.

    Como siempre si tienen alguna o consulta, la pueden postear acá, o me pueden enviar un mail a JCimadom@Prisma.cc.

     

    Anexo

     

    Listados de Providers

     

    Provider

    Descripción

    Active Directory Provider

    Mapea los objetos de Active Directory a WMI a través del namespace de LDAP.

    BitLocker Drive Encryption (BCD) Provider

    Provee la configuración y la administración de un área de almacenamiento del HDD representada por una instancia de WIN32_EncryptableVolume que permite proteger los objetos utilizando encriptación.

    BizTalk Provider

    Provee acceso a la administración de los objetos BizTalk.

    Boot Configuration Data (BCD) Provider

    Provee acceso a la configuración de booteo a través del namespace Root\WMI.

    Distributed File System (DFS) Provider

    Provee funciones de DFS que agrupa de forma lógica los recursos compartidos en múltiples servidores.

    Distributed File System Replication (DFSR) Provider

    Crea una herramienta para configurar y monitorear los serviciors de DFS.

    DNS Provider

    Activa la administración para configurar los Resource Records (RRs) del DNS.

    Disk Quota Provider

    Permite la administración para controlar la cantidad de información que cada usuario almacena en NTFS.

    Event Log Provider

    Provee acceso al Event Log.

    Exchange Server Provider

    Provee acceso a la información acerca del Exchange Server y los mensages.

    Internet Information Services (IIS)

    Utiliza interfaces de programación que permiten realizar queries y configurar la metabase del IIS.

    IP Route Provider

    Provee información de ruteo de la red.

    Job Object Provider

    Provee acceso a objetos dentro del Kernel.

    Intelligent Platform Management Interface (IPMI)

    Trabaja con el WMI IPMI para proveer información acerca del "Baseboard Management Controller".

    Live Communications Server 2003 Provider

    Provee las clases para crear, registrar, configurar las aplicaciones del Session Initiantion Protocol (SIP) para el Live Communications Server 2003.

    Network Load Balancing (NLB)

    Permite que las aplicaciones interactuen con clusters "Network Load Balancing" a través de WMI.

    Ping Provider

    Provee acceso a los estado de información provisto por el comando ping.

    Policy Provider

    Provee la extensión a las Group Policies.

    Power Management Event Provider

    Provee acceso a las clases que describen el Power Management.

    Reporting Services Provider

    Define clases WMI que permiten generar scripts para midificar las configuraciones del Report Server y el Report Manager.

    Resultant Set of Policy (RSoP) Provider

    Da acceso a métodos para planificar y depurar las políticas de seguridad. Permiten la administración para determinar facilmente las políticas a aplicar en un usuario o equipo. Esto se conoce como Resultant Set of Poliicy (RSoP).

    Security Provider

    Obtiene o cambia las configuraciones de seguridad que controlan el Ownership, la auditoría y los permisos en archivos, directorios y recursos compartidos.

    Server Cluster Provider

    Define un set de clases WMI para aceder a un cluster de objetos, propiedades y eventos

    Session Provider

    Administra sesiones y conexiones de red.

    Shadow Copy Provider

    Administra sesiones y conexiones de red.

    Storage Volume Provider

    Provee la administración de las funciones de Storage.

    System Registry Provider

    Activa la administración de aplicaciones para obtener y modificar información contenida en el registro, adicionalmente se utiliza para recibir notificaciones cuando ocurren los cambios.

    System Restore Provider

    Provee las clases que configuran y administran el System Restore.

    Terminal Services Provider

    Activa la administración del entorno del Terminal Services.

    Trustmon Provider

    Provee acceso a la información acerca de la confianza entre dominios.

    View Provider

    Crea nuevas instancias y métodos basados en instancias de otras clases.

    WDM Provider

    Provee acceso a las clases, instancias, métodos y eventos de los drivers que conforman el WDM.

    Win32 Provider

    Provee acceso y actualización de información del Windows System como ser configuraciones de variables de entorno y los artibutos de los discos lógicos.

    Windows Installer Provider

    Provee acceso a la información recolectada por los archivos de instalción WMI (Windows Installer), y la posibilidad de adminitrarlos remotamente.

    Windows Product Activation Provider

    Provee la administración del Windows Product Activation.

     

    Listado de clases

     

    Sección

    Descripción

    Win32 Classes

    Esquema de clases incluidas dentro del namespace root\cimv2. Estas son las clases primarias para la operatoria con los sistemas operativos de Windows

    WMI Registry Classes

    Clases para manipular el registro

    WMI System Classes

    Clases predefinidas que están incluidas en todos los namespaces del core de WMI. Está pueden ser reconocidas facilmente ya que usan un doble guión bajo (__) al comienzo de cada nombre. Estas clases proveen mucho del funcionamiento básico para WMI.

    Monitor Display Classes

    Estas clases contienen información suministrada por el WDM Provider, y nos dan información acerca del monitor y la placa de video. Estas están definidas en root\WMI.

    MSFT Classes

    Clases de Microsoft que usualmente sirven para manipular componentes del Sistema Operativo como ser eventos remotos y "policy extensions"

    CIM Classes

    Esquema de clases del modelo CIM. Gracias a este modelo, podemos escribir nuestras propias clases.

    MSMCA Classes

    Clases que usualmente sirven para manipular y describir un evenyo del sistema, estas vienen incluidas en el sistema Operativo.

     

    Algunos scripts de ayuda

     

    Listar los Namespaces existentes en el equipo

    '---------------------------------------------------------------------------------------------------------------

    Set loc = CreateObject("WbemScripting.SWbemLocator")

    wscript.echo "root"

    GetNamespaces "root", 1

     

    Sub GetNamespaces(Path, Level)

        Set WbemServices = loc.ConnectServer( , path )

        Set Namespaces = WbemServices.ExecQuery("Select * From __Namespace")

        For Each Namespace in Namespaces

            Wscript.Echo Space(5*level) & Namespace.Name

            GetNamespaces path & "\" & Namespace.Name, Level+1

        Next

    End Sub

    '---------------------------------------------------------------------------------------------------------------

     

    Listar los Providers existentes en el equipo

    '---------------------------------------------------------------------------------------------------------------

    Set shell = CreateObject("WScript.Shell")

    Set loc = CreateObject("WbemScripting.SWbemLocator")

    GetNamespaces "root", 1

     

    Sub GetNamespaces(Path, Level)

        Set WbemServices = loc.ConnectServer( , path )

      

        Set Namespaces = WbemServices.ExecQuery("Select * From __Namespace")

        For Each Namespace in Namespaces

                Set Providers = WbemServices.ExecQuery("Select * From __Provider")

                For Each Provider in Providers

                key = "HKEY_CLASSES_ROOT\CLSID\" & Provider.CLSID

                DLL=""           

                    if Provider.CLSID <>"" Then

                    On Error Resume Next

                    DLL=shell.RegRead( key & "\InProcServer32\" )

                    If DLL="" Then DLL=shell.RegRead( key & "\LocalServer32\" )

                    On Error Goto 0

                End If

                WScript.Echo Provider.Name & ", " & DLL

                Next

                GetNamespaces path & "\" & Namespace.Name, Level+1

        Next

    End Sub

    '---------------------------------------------------------------------------------------------------------------

     

    Listar las clases dentro de cada namespace

    '---------------------------------------------------------------------------------------------------------------

    Set loc = CreateObject("WbemScripting.SWbemLocator")

    GetNamespaces "root", 0, "root"

    Sub GetNamespaces(Path, Level, NamespaceName)

        Set WbemServices = loc.ConnectServer( , path )

      

        Set classes=WbemServices.SubClassesOf

        WScript.Echo Space(5*Level) & NamespaceName & ": " & classes.count

       

        Set Namespaces = WbemServices.ExecQuery("Select * From __Namespace")

        For Each Namespace in Namespaces

            GetNamespaces Path & "\" & Namespace.Name, Level+1, Namespace.Name

        Next

    End Sub

    Posted Apr 23 2007, 02:33 PM by Javier with 1 comment(s)
    Filed under:
  • Capacitación en Office gratuita

    Hace cuestión de unos días, me llegó este vínculo a mis manos y me parece que es una buena oportunidad para capacitar a sus usuarios con el uso de las nuevas herramientas de Office. Se que hace un tiempo que está publicado pero como mi caso, puede que muchos de ustedes no lo conozcan.

     

    Básicamente te conectás a una Virtual que tiene instalado el SW de Office que elegimos previamente y te da la posibilidad de seguir un curso paso a paso, o de utilizarlo libremente.

     

    Español:

    http://office.microsoft.com/es-es/FX100647103082.aspx?pid=CL100569833082

     

    Ingles:

    http://office.microsoft.com/en-gb/FX100647101033.aspx?pid=CL100569831033

    Posted Apr 16 2007, 11:18 AM by Javier with no comments
    Filed under:
  • Introducci&amp;#243;n a VBS (Visual Basic Script)

    Introducción

     

    Hace cuestión de unos días, un gran amigo mío se acercó y me comento que estaba escribiendo algunos artículos es un blog, luego de conversar un rato me preguntó - ¿Por qué no te ponés a escribir algo?- A lo que yo contesté -No sabría de qué escribir, vos sabés que los conocimientos que yo tengo los aprendí de la práctica y quizás no tengo los fundamentos teóricos para respaldar lo que digo-, pero bueno palabras van palabras vienen me convenció, así que decidí que mi primer artículo va a estar referido a una herramienta poderosísima de la cual muchos hablan y no muchos conocen: Visual Basic Script (VBS).

    Lo que veremos en este documento es un repaso rápido de conceptos básicos, luego, lo ampliaré en futuros documentos.

     

    ¿Qué es VBS?

     

    Para empezar vamos a comentar un poco qué es VBS y aunque parezca redundante, es un lenguaje de programación de scripts (o lenguaje de secuencias de comandos) que se ejecuta del lado del cliente y está basado en Visual Basic (por eso es que es tan popular). Tanto su sintaxis como la manera de trabajar están muy inspirados en él. Sin embargo, no todo lo que se puede hacer en Visual Basic lo podremos hacer en Visual Basic Script, pues este último es una versión reducida del primero.

     

    Primeros pasos

     

    Variables

     

    Una variable es un puntero a una posición de memoria en donde se puede almacenar, leer o modificar un valor en el momento de ejecución. A diferencia de otros lenguajes, en VBS solo se pueden definir variables del tipo VARIANT, un tipo de contenedor que puede guardar casi cualquier tipo de dato (string, numeric, integer, etc).

    En VBS no es necesario, pero si recomendable, definir la variable (siempre y cuando no utilicemos el comando Option Explicit al principio del código que nos obliga a definir todas las variables). Para definir una variable basta solo declararla de la siguiente manera:

     

    Dim NombredeVariable

     

    O, para definir varias a la vez:

     

    Dim Variable1, Variable2, Variable3

     

    Antes de definir una variable hay que tener en cuenta que:

    ·          Las variables no son Case Sensitive (no toma en cuenta las mayúsculas ni las minúsculas)

    ·          Debe comenzar con un carácter alfabético.

    ·          No puede contener un punto.

    ·          No debe superar los 255 caracteres.

    ·          No puede llevar tildes o acentos o cualquier otro carácter no anglosajón.

    ·          No puede ser una palabra reservada (If, Dim, Wscript, etc)

     

    Ejemplo:

     

    Option Explicit                            ‘Obligo a que todas las variables estén definidas

    Dim Texto                                 ‘Defino la variable Texto

    Texto = “Hola Mundo”                 ‘Asigno a la variable Texto el string “Hola Mundo”

    Wscript.echo Texto                     ‘Muestro por pantalla el contenido de Texto

     

    Mas adelante veremos el concepto de vectores y matrices.

     

    Constantes

     

    Las constantes son como las variables, pero con la diferencia que el valor nunca cambia. Para definir una constante realizamos lo siguiente:

    Const Numero = 123                                          ‘Al igualarlo a números, la constante es numérica

    Const Texto = "Esto es texto y va entre comillas"  ‘Utilizo el caracter “ para simbolizar tipo texto

    Const Fecha = #12-01-07#                                 ‘Utilizo el caracter # para simbolizar tipo fecha

     

    Comentarios

    Como habrán visto en los ejemplos, el apóstrofe se utiliza para realizar comentarios. Aunque parezca inútil, es importantísimo agregar los comentarios de cada procedimiento o función para que en un futuro cuando revisemos nuestro scripts, no tengamos que estar un rato largo mirando una serie de comandos para ver qué quisimos hacer.

     

    ¿Cómo ejecuto un script?

    Existen dos posibles formas de ejecutar un VBS, la primera es utilizando el comando CScript, ejemplo CScript NombreDelScript.vbs. Este comando ejecuta el script en modo consola (no muestra popups sino que lo muestra dentro de un CMD). La otra forma es utilizando el comando WScript, esta sí muestra los pupups de resultado y es la forma que se ejecuta cuando hacemos “Doble clic” en el archivo.

     

    Operadores – Bucles – Procedimientos y funciones

     

    Si bien al principio de este documento me pareció interesante dar a conocer algunos conceptos muy básicos de programación, me parece que ahondar en el tema de los operadores, los bucles, los procedimientos y las funciones, hará que este documento se muy extenso, así que lo dejaré para la investigación de cada uno de ustedes. Igualmente si alguien tiene una consulta en particular, pueden postearla acá o enviarme un mail (JCimadom@Prisma.cc).

     

    WMI – El Poder del Script

     

    Antes de seguir avanzando con VBS, me parece apropiado nombrar a WMI (Windows Management Instrumentation). WMI nació por la necesidad de los administradores de red de manejar de manera confiable y sencilla estructuras de redes grandes y complejas

    Definición de Microsoft de WMI:

    “WMI se basa en la iniciativa para la administración de empresas a través del  Web (WBEM, Web-based Enterprise Management) y en el modelo de información común (CIM, Common Information Model) adoptados por el Grupo de trabajo de administración distribuida (DMTF, Distributed Management Task Force).

    WMI incluye los objetos administrados definidos por CIM así como las extensiones al modelo CIM para obtener información adicional disponible de la plataforma Windows. Todo esto significa que WMI hace que Windows 2000 sea muy manejable al utilizar una única interfaz lógica, basada en estándares, extensible y orientada a objetos. Asimismo, cualquier aplicación o secuencia de comandos que obtenga acceso a datos de WMI puede hacerlo tanto en el equipo local como de forma remota, sin ningún problema.”

    Ahora traduciendo a “castellano” la definición de Microsoft, podemos decir básicamente que WMI es un conjunto de clases (algunas embebidas en el SO) que permite utilizar Métodos, Propiedades, Sucesos y Asociaciones de cada una de esas clases para realizar distintos tipos de tareas. Por ejemplo, si quiero instalar una impresora, primero tengo que instanciar un objeto llamando a la clase Win32_Printer

    Ejemplo: Set objPrinter = objWMIService.Get("Win32_Printer") y luego utlizar los métodos de ese objeto para crearla.

    Recomiendo la lectura de la siguiente página antes de adentrarnos en temas más complicados.

    http://www.microsoft.com/latam/technet/articulos/windows2k/mngwmi/

     

    Mi primer script con WMI

     

    Para finalizar, vamos a ver un pequeño ejemplo de un VBS utilizando WMI. Básicamente vamos a ver qué usuario está actualmente logueado y lo vamos a mostrar por pantalla

     

    Option Explicit

     

    Dim strComputer

    Dim strUserName

     

    strComputer = "."           'Con el punto (.) marco que estamos trabajando sobre el equipo local

     

    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") ‘Instancio un objeto para manejar los servicios de WMI en el equipo seleccionado

     

    Set colComputer = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem") 'Realizo un query de la clase Win32_ComputerSystem y lo guardo en una colección

     

    For Each objComputer in colComputer            'Realizo un bucle de cada objeto en la colección

        strUserName = objComputer.UserName     'Guarda el Nombre de usuario logoneado en una variable

    Next

     

    Wscript.Echo      “El usuario logueado al equipo es “ & strUserName

     

    Comentario final

     

    VBS junto a WMI nos permite tener una herramienta de administración muy poderosa y nos abre una puerta al universo de la administración a través de pequeños programas.

    Recomiendo a todos los jóvenes administradores que incorporen a su grupo de herramientas de administración el scripting.

     

    Bibliografía

    Introducción a VBS (Ingles)

    http://www.mhuffman.com/notes/language/vbs_intro.htm

     

     

    Introducción a WMI

    http://www.microsoft.com/latam/technet/articulos/windows2k/mngwmi/

     

    Ejemplos de scripting

    http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr=true

     

More Posts
El contenido de este sitio no puede ser reproducido de la autorización de sus autores.