0% encontró este documento útil (0 votos)
28 vistas

1.introduccion PowerShell

Este documento introduce los conceptos básicos de Windows PowerShell. PowerShell es un shell y lenguaje de scripting basado en objetos diseñado para la administración del sistema. Usa cmdlets para realizar tareas comunes y los datos se representan como objetos. El documento explica cómo acceder a PowerShell, obtener ayuda sobre sus comandos y navegar por el sistema de archivos y otras ubicaciones como el registro usando unidades de PowerShell y proveedores.

Cargado por

Narval Gamer
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas

1.introduccion PowerShell

Este documento introduce los conceptos básicos de Windows PowerShell. PowerShell es un shell y lenguaje de scripting basado en objetos diseñado para la administración del sistema. Usa cmdlets para realizar tareas comunes y los datos se representan como objetos. El documento explica cómo acceder a PowerShell, obtener ayuda sobre sus comandos y navegar por el sistema de archivos y otras ubicaciones como el registro usando unidades de PowerShell y proveedores.

Cargado por

Narval Gamer
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 20

Tema 1

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

Navegar en Powershell. Unidades


• Una unidad de Windows PowerShell es una ubicación de almacén de
datos a la que se puede tener acceso como una unidad de sistema de
archivos en Windows PowerShell.
• Los proveedores de Windows PowerShell crean algunas unidades
automáticamente, como las unidades de sistema de archivos (C: y D:),
las unidades de Registro (HKCU: y HKLM:) y la unidad de certificado
(Cert:).
• También podemos crear nuestras propias unidades de Windows
PowerShell.
• Todas estas unidades estarán disponibles sólo en Windows PowerShell
(no en el explorador ni en cmd.exe)
Navegar en Powershell. Unidades
• PowerShell usa el término PSDrive en los comandos que funcionan con las unidades de
Windows PowerShell.
• Get-PSDrive: para ver una lista de unidades de Windows PowerShell en su sesión de
Windows PowerShell
• - PSProvider: permite mostrar únicamente las unidades de Windows PowerShell compatibles con un proveedor
determinado. Por ejemplo: Get-PSDrive -PSProvider FileSystem
• New-PSDrive: para agregar sus propias unidades de Windows PowerShell.
• Un nombre de unidad (puede usar cualquier nombre válido de Windows PowerShell)
• El PSProvider (use "FileSystem" para las ubicaciones del sistema de archivos y "Registry" para las ubicaciones del
Registro)
• La raíz; es decir, la ruta de acceso a la raíz de la nueva unidad
• Por ejemplo: New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Microsoft
Office\OFFICE11“
• Remove-PSDrive: para eliminar unidades de Windows PowerShell
• Por ejemplo: Remove-PSDrive -Name Office

Navegar en Powershell. Ubicación Actual


• PowerShell usa el término Location para hacer referencia al
directorio de trabajo e implementa una familia de cmdlets para
examinar y manipular la ubicación
• Get-Location: Para averiguar la ruta de acceso de ubicación del
directorio actual
• Set-Location: Permite cambiar la ubicación de directorio actual.
Cambiar de directorio.
• Tenemos las referencias . y .. Como en cualquier shell.
• -PassThru: información sobre el resultado del comando.
• se puede usar con muchos comandos Set en Windows PowerShell para devolver
información sobre el resultado en aquellos casos en que no haya ningún resultado
predeterminado
Navegar en Powershell. Trabajar con
unidades, archivos y claves del registro
• En Windows PowerShell se usa el término Item para hacer
referencia a los elementos contenidos en una unidad de
Windows PowerShell.
• Cuando se trabaja con el proveedor FileSystem de Windows
PowerShell, un Item puede ser:
• un archivo, una carpeta o la unidad de Windows PowerShell.
• Enumerar estos elementos y trabajar con ellos son tareas críticas
básicas en la mayoría de las configuraciones administrativas, de
modo que conviene abordar estas tareas en profundidad

Navegar en Powershell. Trabajar con


unidades, archivos y claves del registro
• Get-ChildItem: Enumerar archivos, carpetas y claves del Registro. Devuelve todos
los elementos dentro de un contenedor como, por ejemplo, una carpeta
• -Path: ruta de la unidad cuyos elementos queremos mostrar
• -Recurse: Para ver tanto los elementos que hay dentro de una carpeta de
Windows como cualquier elemento dentro de sus subcarpetas
• -Name: Para mostrar solo los nombres de los elementos,
• -Force: Enumerar forzosamente los elementos ocultos.
• -Exclude: excluir elementos que siguen un patrón
• -Include: para incluir elementos que siguen un patrón. Sólo efectivo si se usa
junto con –Recurse o se usa un wildcard para especificar contenido de un
directorio como *.
Actividad
• Para practicar y familiarizarnos con la navegación en powershell y sus comandos:
• Practica2.pdf
• Practica3.pdf

Utilizar Cmdlets. Pipeline de Powershell


• La salida de un Cmdlet es un objeto no texto
• El pipeline es uno de los conceptos más utilizados en PowerShell y necesario para
realizar la mayoría de tareas administrativas
• Cada vez que se presione la tecla Intro en Windows PowerShell, se inicia un nuevo
pipeline. Se ejecutan los comandos que ha escrito en esa sola tubería. Al final del
pipeline, Windows PowerShell convierte su contenido en una pantalla de texto.
• No se obtiene lo mismo al ejecutar Get-Service <Enter>Get-Process (Cada comando
se ejecuta en una tubería)
• Que si ejecuto Get-Service;Get-Process (Los dos comandos se ejecutan en la misma
tubería)
Utilizar Cmdlets. Pipeline de Powershell
• Para conectar el pipeline de 2 comandos utilizamos el operador |
• El pipeline lo que hará es pasar el objeto devuelto en la salida del primer comando
como entrada del segundo
• Get-Location | Out-Host
• Out-Host permite mostrar la salida de forma “lenta” cuando la salida producida es
muy larga
• Out-Host – paging por ejemplo permite mostrar la salida página a página
• En el ejemplo nos puede parecer que el pipe funciona igual que en otros Shell
scripts
• ¿Get-Location nos da la ubicación actual y Out-Host muestra la cadena de la ruta
por pantalla?
• NO

Utilizar Cmdlets. Pipeline de Powershell


• Get-Location | Out-Host
• Get-Location devuelve un objeto PathInfo
• Out-Host lo envía a la pantalla
• Parte de la información del objeto PathInfo se muestra de
acuerdo al formato más adecuado
• ¿Y el resto de información del objeto PathInfo? ¿Cómo puedo
acceder a ella?
• ¿Y si quiero ver la información en otro formato?
• Tenemos que conocer la estructura de los objetos, acceder a
sus elementos y formatear la salida
Utilizar Cmdlets. Estructura de los
objetos de Salida
• Los objetos son la estructura clave de Windows Powershell
• Existen cmdlets nativos de PowerShell para poder acceder a la estructura de
cualquier tipo de objeto devuelto por los comandos de PowerShell
• El más importante es Get-member
• La forma más simple de ver la estructura de un objeto devuelto por un cmdlet
es pasarlo mediante un pipeline al cmdlet Get-member
• Get-Member nos dice:
• El tipo del objeto: TypeName
• Una lista de las propiedades del objeto que podemos consultar y sus tipos

Utilizar Cmdlets. Estructura de los


objetos de Salida
• Get-date | Get-member
• Get-date | Get-member | Out-host -paging
Utilizar Cmdlets. Estructura de los
objetos de Salida
• Los valores permitidos para MemeberType son:
• AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty,
Properties, PropertySet, Method, CodeMethod, ScriptMethod,
Methods, ParameterizedProperty, MemberSet, y All
• Para consultar las propiedades de un determinado tipo –MemberType
• Get-date | Get-Member -MemberType Properties
• Para acceder a los miembros de un objeto
• (<objeto>) .<nombrepropiedad>
• (<objeto>) .<nombremetodo>()

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

Utilizar Cmdlets. Formato de Salida de un


comando
• Format-Table:visualiza un objeto en formato de tabla
• -property: para visualizar las propiedades en concreto que queramos,
separadas por ,
• Permite usar wildcards
• -autosize: para que calcule automáticamente el ancho de las columnas
• -wrap: para forzar a las salidas largas a que se adapten a su columna
• -groupby: nos permite agrupar la salida basándose en el valor de las
propiedades
Actividad
• Prueba los siguientes cmdlets y entiende lo que hacen:
• Get-Process -Name powershell
• Get-Process -Name powershell | Format-Wide
• Get-Process -Name powershell | Format-Wide -Property Id
• Get-Process -Name powershell |Format-Wide -Property Name -Column 1
• Get-Process -Name powershell | Format-List
• Get-Process -Name powershell | Format-List -Property ProcessName,FileVersion,StartTime,Id
• Get-Process -Name powershell | Format-List -Property *
• Get-Process -Name powershell | Format-Table
• Get-Process -Name powershell | Format-Table –Property Path,Name,Id,Company
• Get-Process -Name powershell | Format-Table -Property Path,Name,Id,Company –AutoSize
• Get-Process -Name powershell | Format-Table -Property Company,Name,Id,Path -AutoSize
• Get-Process -Name powershell | Format-Table -Wrap -Property Name,Id,Company,Path
• Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,Id,Company,Path
• Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Path,Id,Company,Name
• Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,Id,Path -GroupBy Company

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

Trabajando con objetos – Sort-Object


• Sort-Object: este cmdlet nos permite ordenar los objetos del pipeline basándonos
en los valores de las propiedades de los objetos.
• -Property: lista de las propiedades seleccionadas para ordenar los objetos.
• Por ejemplo:
• Get-Childitem -Path "C:\Users\usuario\"|Sort-Object -Property Name
• Get-Childitem -Path "C:\Users\usuario\"|Sort-Object -Property Name -
Descending
• Get-Childitem -Path "C:\Users\usuario\"|Sort-Object -Property Name|Select-
Object -Property CreationTime,LastWriteTime,FullName
• Get-Childitem -Path "C:\Users\usuario\"|Sort-Object -Property Name|Select-
Object -Property CreationTime,LastWriteTime,FullName|Format-List
Referencias
1. Librería de Recursos Oficial Microsoft PowerShell, https://msdn.microsoft.com/en-
us/powershell
2. Documentación Oficial Microsoft PowerShell en español, https://technet.microsoft.com/es-
es/library/bb978526.aspx
3. API Windows Powershell 5.0, https://technet.microsoft.com/es-es/library/hh847741.aspx

También podría gustarte