1.introduccion PowerShell
1.introduccion PowerShell
Introducción a Windows
PowerShell
Contenidos
1. Conceptos PowerShell
2. Acceso y Ayuda de PowerShell.
3. Navegar en PowerShell
1. Sistema de Archivos, Registro y Unidades
4. Utilizar Cmdlets.
1. Pipeline de PowerShell
2. Estructura de los objetos de salida
3. Formato de Salida de un comando
5. Trabajar con objetos
Conceptos PowerShell
• Windows PowerShell es un lenguaje de scripting y un shell de línea de
comandos basado en objetos y orientado a tareas. Está diseñado
especialmente para la administración del sistema
• Características:
• Sus comandos se llaman Cmdlets (command-lets) y permiten realizar tareas
comunes de administración de sistema, como administrar el Registro,
servicios, procesos y registros de eventos y usar el Instrumental de
administración de Windows (WMI)
• Lenguaje de scripting basado en tareas. Compatibilidad con los scripts y
herramientas de línea de comandos existentes
• Sintaxis similar a C#
Conceptos PowerShell
• Características:
• Los almacenes de datos de sistema y los cmdlets usan objetos, los datos se
pueden compartir fácilmente y la salida de un cmdlet se puede usar como
entrada de otro cmdlet sin manipulaciones
• La salida de un Cmdlet es un objeto no texto
• Las mismas técnicas que se usan para navegar por el sistema de archivos se
aplican para navegar por el Registro y otros almacenes de datos usando
cmdlets
• Los objetos se pueden manipular directamente o enviar a otras
herramientas o bases de datos.
• Es extensible por lo que puedo crear mis propios Cmdlets
Acceso y Ayuda
• Actualmente Windows PowerShell 5.0
• En Windows 7 Service Pack 1 y Windows Server 08 R2
• Hay que instalar Windows Management Framework
• Tener instalada la versión necesaria de Microsoft .NET Framework según la
versión de PowerShell.
• Instalar Windows PowerShell, documentación Oficial Microsoft
• En Versiones superiores de Windows tanto de Escritorio como
servidor integrado e instalado por defecto
Acceso y Ayuda
• Para iniciar Windows PowerShell:
• Botón izquierdo sobre icono Windows
Todas las aplicaciones en la W
Windows PowerShell
• Botón derecho sobre icono Windows
Buscar PowerShell
• En el símbolo de sistema escribir
PowerShell
Acceso y Ayuda
• No distingue entre mayúsculas y minúsculas por lo que podemos
escribir los nombres de los cmdlets como queramos
• Los nombres de los cmdlets siempre tienen la siguiente estructura:
• Verbo-Nombre
• El verbo indica una acción a realizar
• El nombre indica un objeto de administración sobre el que se aplica la acción
• Por ejemplo: get-command nos proporciona una lista de todos los cmdlets
disponibles
• Esta estructura intenta facilitar la memorización de los cmdlets
• En todos los cmdlets los parámetros van precedidos de –
• Por ejemplo get-command –verb get
Actividad
• Abre un Shell PowerShell
• Escribe los siguientes cmdlets e intenta entender qué hacen:
• get-command
• get-command get-help
• get-command get-help -syntax
• get-command –verb get
• get-command –noun service
• get-command -commandtype Alias
Actividad.Solución
• Abre un Shell PowerShell
• Escribe los siguientes cmdlets e intenta entender qué hacen:
• get-command
• Lista de todos los comandos disponibles, tipos: alias, funciones y cmdlets
• get-command get-help
• Nos lista el comando get-help
• get-command get-help –syntax
• Nos lista el comando get-help con su sintaxis de uso
• get-command –verb get
• Lista los comandos que tienen como verbo get
• get-command –noun service
• Lista los comandos que tienen como nombre service
• get-command -commandtype Alias
• Lista los comandos de tipo alias (luego vemos tipos de comando)
Acceso y Ayuda
• Los comandos se agrupan por módulos según la tarea
administrativa con la que estén relacionados
• Para ver todos los módulos importados en las sesión (los que estamos usando)
• Get-module
• -All recorre recurisvamente los directorios de los módulos buscando módulos anidados
• Automáticamente al usar un comando de un módulo lo importa
• Para ver todos los módulos instalados disponibles
• Get-module –ListAvailable
• Para ver todos los comandos relacionados con un módulo
• Get-Command –Module <nombre del módulo>
Actividad
• Ejecuta PowerShell como Administrador y ejecuta los siguientes
cmdlets
• Get-module observa como sólo muestra un módulo el actual que estamos usando
• Get-module –all reocorre recusivamente y nos da un módulo anidado
• Get-module –ListAvailable
• Get-module observa como van apareciendo más módulos debido a los comandos que
ejecutamos que provocan que se vayan importando en la sesión actual
• Get-module –all
• Get-command –Module NetTCPIP
• Get-module observa como van apareciendo más módulos debido a los comandos que
ejecutamos que provocan que se vayan importando en la sesión actual
• Get-module –all
Acceso y Ayuda
• Tipos de Comandos
• Alias
• Application
• Cmdlet
• Function
• ExternalScript/Script
• WorkFlow
Acceso y Ayuda
• Tipos de Comandos que se pueden ejecutar en PowerShell
• Alias: Nombre alternativo para un cmdlet o un elemento de un comando, como una
función, un script, un archivo o un archivo ejecutable
• Application: Archivos no PowerShell que se encuentran en rutas de PATH (.exe
habitualmente)
• Cmdlet (Command-Let): son los comandos nativos de PowerShell orientados a tareas
administrativas y basados en objetos.
• Function: es una lista de instrucciones que tiene el nombre que se le asigna. Cuando se
ejecuta una función, se escribe su nombre. Las instrucciones de la lista se ejecutan como
si las hubiera escrito en el símbolo del sistema.
• ExternalScript/Script: un archivo de texto sin formato que contiene uno o varios
comandos de Windows PowerShell. Los scripts de Windows de PowerShell tiene la
extensión .ps1
• WorkFlow: secuencia ordenada de actividades relacionadas que se ejecutan durante
perídos extensos de tiempo para hacer cambios en cientos de ordenadores que pueden
ser heterogéneos. Se escriben en lenguaje XAML propio de Microsoft para estos flujos.
Acceso y Ayuda
• Get-Help: cmdlet para obtener ayuda detalla de los cmdlets
• Get-help get-help para ver la ayuda sobre get-help. La ayuda de un comando
siempre tiene la misma estructura:
• Nombre: nombre del comando
• Sintaxis: Formas de utilizar el comando con los diferentes parámetros que
admite
• [] opcional,| or, <> tipo de datos a sustituir
• Alias: Nombre alternativo para un cmdlet o un elemento de un comando, como
una funcion, un script, un archivo o un archivo ejecutable (si no tiene no
aparece)
• Descripción: descripción detallada sobe el comando
• Vínculos relacionados: enlaces o comandos relacionados con este comando
• Notas: notas sobre como acceder a ejemplos y más ayuda
Acceso y Ayuda
• Opciones útiles de Get-Help
• -detailed: para obtener información detallada de un cmdlet
• -full: para obtener la información completa de un cmdlet
• - parameter * : para obtener información sobre todos los parámetros de un cmdlet
• - examples: para obtener ejemplos de un cmdlet
• Con get-help tenemos acceso a ayuda conceptual incluido el lenguaje
de Shell script, todos comienzan con el prefijo about_
• about_*: para obtener una lista de los temas conceptuales
• Si al acceder a la ayuda de un comando leemos “Get-Help no encuentra
los archivos de Ayuda para este cmdlet en el equipo”
• Ejecutar update-help para actualizar los archivos de ayuda de nuestros cmdlets
Actividad
• Para practicar y familiarizarnos con powershell y su sistema de
ayuda
• Practica1.pdf
Navegar en Powershell
• Con PowerShell podemos navegar por el sistema de archivos,
unidades, y registro de forma uniforme.
• Una unidad de Windows PowerShell no representa
necesariamente una unidad real, ya sea local o en la red, puede
representar por ejemplo un disco o un sistema de ficheros tipo
Unix.
Proveedores
•Los proveedores de Windows PowerShell son programas basados en
Microsoft .NET Framework que hacen que los datos de un almacén de
datos especializado (archivos, certificados, variables de entorno…)
estén disponibles en Windows PowerShell, de modo que pueda verlos y
administrarlos.
•Los datos que expone un proveedor aparecen en una unidad y puede
acceder a dichos datos en una ruta, tal como lo haría en una unidad de
disco duro (sistema de archivos).
• Se puede usar cualquiera de los cmdlets integrados que admita el
proveedor para administrar los datos de la unidad del proveedor
Proveedores
• get-psprovider: para ver los proveedores de Windows PowerShell en el
equipo
Actividad
• Prueba los siguientes cmdlets y entiende lo que hacen:
• (get-date).Date
• (get-date).Day
• get-date).Month
• get-date).Year
• Get-date | Get-Member –MemberType method
• (get-date).ToString()
• (get-date).addDays(4)
• (get-date).addDays(4).ToString()
• Get-date | Get-Member
Utilizar Cmdlets. Formato de Salida de un
comando
• Podemos controlar el formato de salida de los objetos devueltos por los cmdlets y decidir
que propiedas y cómo mostrarlas, para ello tenemos los cmdlets cuyo nombre comienza
por format.
• A estos cmdlets debemos pasarles el objeto devuelto mediante un pipeline
• Format-Wide: visualiza una única propiedad. Por defecto la que esté establecida para ese
objeto
• -property: para visualizar una propiedad en concreto
• -column en formato de columna
• Format-List: visualiza un objeto en formato de lista
• -property: para visualizar las propiedades en concreto que queramos, separadas por ,
• Permite usar wildcards
Actividad
• Para practicar y familiarizarnos con la estructura de objetos y pipelines:
• Practica4.pdf
Trabajando con objetos – Select-Object
• Select-Object: este cmdlet nos permite seleccionar propiedades de los objetos del
pipeline para construir nuevos contenido sólo las propiedades seleccionadas.
• -Property: lista de las propiedades seleccionadas para construir nuestro nuevo
objeto.
• Podemos consultar las propiedades del nuevo objeto con get-member
• Por ejemplo:
• get-date|get-member -MemberType Properties
• get-date|Select-Object -Property day,month,year
• get-date|Select-Object -Property day,month,year|get-meber
• get-date|Select-Object -Property day,month,year|Format-List