Dev & AM

POWERSHELL – INTERACTUANDO CON EL SISTEMA OPERATIVO

¿Qué es Powershell? ¿Es un potente CMD? ¿Un entorno de programación? ¿Con qué sistemas y programas puedo interactuar?

Muchas son las preguntas que nos hacemos cuando oímos hablar de PowerShell y hoy empezaremos contestando algunas de ellas.

¿Qué es PowerShell?

PowerShell logoPara los que hemos trabajado con sistemas basados en líneas de comandos (UNIX, Linux,… ) nos resulta obvio la respuesta: es un potente lenguaje para manejar variables, ciclos, etc., etc., en sistemas basados en Windows.

La principal utilidad de Powershell es la automatización de tareas, y es aquí cuando muchos dirán que PowerShell es la evolución del conocido CMD, o incluso del Visual Script. Pero con PowerShell podemos ir más allá de automatizar tareas, o modificar valores del Sistema Operativo, gracias a su gran versatilidad de funciones, cmdlets e integración con lenguajes de programación como C# y .Net.

Una de las características más distintivas de Powershell, es su orientación a objetos. Debemos tener en cuenta que toda la información, tanto de entrada como de salida en cada proceso, es un conjunto de instancias de objeto. En este punto es donde se diferencia con los intérpretes de comandos tradicionales, los cuales sólo devuelven y reciben texto.

Tipos de comandos en Windows Powershell

En Powershell tenemos diferentes tipos de comandos, los cuales podemos usar según nuestras necesidades.

  • CMDLets (command-let ): Es una instancia de una clase .NET.

Powershell contiene más de 250 cmdlets con los cuales podemos realizar desde las funciones más básicas hasta las más complejas. Así mismo, al estar implementadas con .NET, podemos crear nuevos CMDlets a nuestra conveniencia.

Encontrareis en el siguiente link algunos de los cmdlets más usados:  http://technet.microsoft.com/en-us/magazine/ff714569.aspx

  • Scripts ‘. ps1′: Como todo lenguaje de scripting, Powershell nos permite crear nuestros propios ficheros de líneas de comandos, para ejecutarlos manualmente o programados. Dichos ficheros deben tener la extensión “.ps1”.
  • Funciones: Powershell nos permite así mismo crear funciones. Dichas funciones no van a devolver simple texto, sino que devuelven objetos tal y como lo hacen los propios cmdlets, como se ha comentado ya anteriormente. Un simple ejemplo de función en Powershell, utilizando un cmdlet sería:

Powershell

No son pocas las veces, que durante la creación de un Script no podemos realizar la tareas deseada con los cmdlets que incorpora Powershell, aún creando funciones con ellas. Pero podemos resolver fácilmente dicho problema, ya que como hemos comentado previamente, podemos realizar llamadas tanto de C# como de .NET.

¿Con qué sistemas y programas puedo interactuar?

Powershell es una herramienta que viene de forma nativa en Windows 7 y Windows 2008 Server, pero también podemos realizar la instalación en sistemas operativos tales como Windows Vista y Windows XP, con el fin de automatizar muchas de las tareas periódicas que se realizan en dichos sistemas operativos, tales como:

  • modificación de usuarios
  • permisos en recursos.
  • configuración de Red
  • backups
  • políticas de seguridad
  • lectura, creación y modificación de ficheros

Pero no sólo podemos realizar scripts para sistemas operativos. Powershell cuenta con integración con muchos otros programas y soluciones de Microsoft. Para ello deberemos instalar el módulo adecuado para cada uno de ellos.

Algunos ejemplos de integración son los siguientes:

  • Active Directory
  • SQL Server
  • MS Sharepoint 2013
  • Microsoft Exchange

Con esto, Powershell nos abre las puertas a un gran abanico de procesos que anteriormente debíamos realizar mediante tareas costosas, pero esto lo veremos en siguientes entregas.

Más información:

LluisCruzLluis Cruz es Licenciado en Ingeniería Informática. Ha trabajado como Técnico de sistemas y Administrador de sistemas desde 2001. En 2014 entra a formar parte de Sogeti como Ingeniero de Sistemas.

 

Acerca de ITblogsogeti

Sogeti es una compañía tecnológica perteneciente al Grupo Capgemini y especialista en: Testing y Calidad de Software y Soluciones Microsoft. En Sogeti entendemos la importancia de obtener el máximo valor empresarial de sus sistemas de IT, por ello somos líderes mundiales en Testing & QA.

3 comments on “POWERSHELL – INTERACTUANDO CON EL SISTEMA OPERATIVO

  1. Rodrigo Ponce Aguero

    Hola, como están?
    Estoy buscando crear un scripts para automatizar la conexión a una VPN Cisco AnyConnect.
    Me podrían ayudar ?

    Gracias.

    Me gusta

  2. Nora Hilda

    Hola quiero hacer una conexión y búsqueda y inserción masiva de cuantas de correo desde una consulta de sql en c# e insertar en o365.

    Me gusta

    • Partiendo de los requerimientos que nos señalas, existen muchas posibilidades de realizar esta tarea, pero todas se apoyan en el uso de módulos y comandos PowerShell.
      Para ello, en primer lugar tendrás que instalarte el módulo de manejo de Active Directory en Azure (http://go.microsoft.com/fwlink/p/?LinkId=320628).
      Dentro de este módulo el comando a utilizar será New-MsolUser, al cual se le deberá de pasar un número de argumentos que serán los que extraigas de la Base de Datos.
      También es posible importar de manera masiva los contactos si los puedas almacenar en un archivo separado por comas (CSV). Entonces el comando a utilizar sería Import-Csv.
      Debes tener en cuenta que este entorno necesitará de la validación de las credenciales del usuarios contra el plan de Office 365 que tengas asignado. Este debe ser el primer paso dentro de la aplicación de C#. para ellos utilizarás el comando Get-MsolAccountSku.
      Más información sobre estas funcionalidades lo puedes encontrar en este enlace (https://support.office.com/en-au/article/Add-users-to-Office-365-with-Windows-PowerShell-ca91a94f-8aeb-4f9a-b6db-24db4e14ec21).
      Como habrás podido ver, todo el manejo se ejecuta utilizando PowerShell. Es la manera de operar recomendada para este entorno.
      Puedes encontrar muchos ejemplos utilizando C# en este enlace (https://code.msdn.microsoft.com/office365)

      Me gusta

Deja un comentario