1. Libros y videos
  2. PowerShell - Funcionalidades avanzadas

PowerShell Funcionalidades avanzadas

Información adicional

  • 5% de descuento en todos los libros
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis por un año

Información adicional

  • 5% de descuento en todos los libros
  • Versión online digital, no descargable
  • Consultable en línea durante 10 años inmediatamente después de la validación del pago.
Este libro sobre las funcionalidades avanzadas de PowerShell está dirigido a administradores e ingenieros de sistemas que deseenprofundizar en sus conocimientos y sacar el máximo partido a estelenguaje de automatización. Para comenzar, se explican las diferencias entre Windows PowerShell (versión 5.1) y PowerShell Core (versión 7.3 cuando se escribióeste libro). A continuación, se aborda el proceso de instalaciónen sistemas Linux y Windows, para después presentar un nuevoentorno de desarrollo...
Consultar extractos del libro Extracto de la edición impresa
  • Nivel Medio a Experto
  • Número de páginas 736 páginas
  • Publicación julio 2025
  • Nivel Medio a Experto
  • Publicación julio 2025

Este libro sobre las funcionalidades avanzadas de PowerShell está dirigido a administradores e ingenieros de sistemas que deseenprofundizar en sus conocimientos y sacar el máximo partido a estelenguaje de automatización.

Para comenzar, se explican las diferencias entre Windows PowerShell (versión 5.1) y PowerShell Core (versión 7.3 cuando se escribióeste libro). A continuación, se aborda el proceso de instalaciónen sistemas Linux y Windows, para después presentar un nuevoentorno de desarrollo para scripts y módulos: Visual Studio Code.

Tras un segundo capítulo dedicado a las funciones avanzadas y su utilización, se muestra cómo dar un enfoque colaborativo al trabajo mediante la creación de módulos y su distribución a través del sistema de paquetes NuGet. A partir de ahí, se introduce el desarrollo con la manipulación de objetos personalizados y la creación de clases, lo que permite enriquecer el código con nuevas posibilidades. Asimismo se abordan los conceptos de jobs, que permiten la gestión asincrónica de tareas, y los workflows.

Posteriormente, se analiza el enorme potencial de PowerShell DSC para la administración de infraestructuras. Esta funcionalidad permitesimplificar la configuración de un gran número de sistemas enun tiempo récord, así como detectar cualquier desviación en dichaconfiguración , lo que permite corregirlo de forma proactiva antes deque se produzcan incidentes.

Se presentan las funcionalidades de Windows PowerShell versión 5.1 para la gestión avanzada de archivos (archivos, enlaces simbólicos, archivos temporales...) así como las ventajas del uso de las tecnologías COM para comunicarse con otras aplicaciones. También se estudia cómo mejorar la seguridad de los sistemas administrados de forma remota mediante Just Enough Administration(JEA) y cómo configurar PowerShell Web Access para acceder a una consola de PowerShell desde un navegador web.

Por último, se abordan la creación de interfaces gráficas, la recopilación de datos de rendimiento y la gestión de directorios en Active Directory.

Características

  • Encuadernación rústica - 17 x 21 cm
  • ISBN: 978-2-409-05140-1
  • EAN: 9782409051401
  • Ref. ENI: EIT2POWFA

Características

  • HTML
  • ISBN: 978-2-409-05141-8
  • EAN: 9782409051418
  • Ref. ENI: LNEIT2POWFA
Prólogo
  1. Acerca de PowerShell
  2. Acerca del libro
Introducción
  1. ¿Por qué automatizar?
  2. Infrastructure as Code y cloud
  3. El paso al open source
  4. El peso de una comunidad
  5. Sobre el autor
PowerShell y la gestión de versiones
  1. Introducción
    1. 1. Las versiones en detalle
    2. 2. GitHub
    3. 3. .NET Core
  2. Instalación de PowerShell Core
    1. 1. Descarga del código fuente de GitHub
    2. 2. Instalación en Windows
    3. 3. Instalación de Linux
  3. Gestión de actualizaciones
    1. 1. En Windows
    2. 2. En Linux
  4. Novedades, depreciaciones y limitaciones de PowerShell 7
    1. 1. Novedades
    2. 2. Depreciación
    3. 3. Limitaciones
  5. Desarrollo en PowerShell con Visual Studio Code
    1. 1. Instalación de Visual Studio Code
    2. 2. La interfaz de Visual Studio Code
    3. 3. Extensión PowerShell
    4. 4. Complemento de extensión
    5. 5. El depurador
    6. 6. Uso de Git
  6. Scripts en función del entorno
  7. Funciones experimentales
Funciones avanzadas
  1. Introducción
  2. Estructura
    1. 1. Param
      1. a. Atributo Parameter
      2. b. Atributos
      3. c. Atributos de validación
    2. 2. CmdletBinding()
    3. 3. Tipo de salida (OutputType)
    4. 4. Begin/Process/End/Clean
  3. Preparación del escenario
    1. 1. Conjuntos de parámetros
    2. 2. Pipeline
      1. a. Determinar qué comandos aceptan el pipeline
      2. b. Cuando un comando no acepta el pipeline
      3. c. Implementación de pipelines
      4. d. ValueFromPipeline
      5. e. ValueFromPipelineByPropertyName
  4. Parámetro dinámico
    1. 1. Declaración
    2. 2. Nueva colección de atributos
    3. 3. Definición y publicación del parámetrodinámico
    4. 4. En resumen
    5. 5. Ir más lejos
      1. a. Lógica de visualización
      2. b. Añadir un atributo de validación
    6. 6. Limitaciones y casos de uso
  5. ArgumentCompleter y Dynamic ValidateSet
    1. 1. ArgumentCompletions
    2. 2. ArgumentCompleter
      1. a. Estructura
      2. b. Añadir entradas de usuario
      3. c. Uso de PSBoundParameter
      4. d. Utilizar una función
    3. 3. Dynamic ValidateSet
  6. Register-ArgumentCompleter
  7. Splatting
Creación de módulos
  1. Introducción
  2. Módulo dinámico
  3. Módulo binario
  4. Módulo script
    1. 1. Conversión de un script en un módulo
    2. 2. Convenciones de nomenclatura
    3. 3. Internacionalización y difusióndel módulo
      1. a. Estructura y nomenclatura de las carpetas
      2. b. Formato de los datos y contenido de los archivos
      3. c. El comando Import-LocalizedData
      4. d. Gestión de errores en caso de archivo ausente
      5. e. Sección Data
  5. Manifiesto de módulo
    1. 1. Creación del manifiesto
    2. 2. Gestión de versiones
    3. 3. Gestión de versiones del framework .NET
    4. 4. Gestión adicional de contenidos
    5. 5. Prueba de conformidad de un manifiesto
  6. Exportación de los miembros de un módulo
    1. 1. El comando Export-ModuleMember
    2. 2. Comportamiento específico
  7. Estructura multiarchivo
  8. Pasar a Build con Sampler
    1. 1. Creación de un módulo sencillo
    2. 2. Añadir una función
    3. 3. Build del módulo
    4. 4. A continuación
Gestión de módulos y paquetes
  1. Introducción
  2. Módulo PackageManagement
    1. 1. Añadir el primer proveedor
    2. 2. Búsqueda de un paquete
    3. 3. Instalación de un paquete
      1. a. Desde Chocolatey
      2. b. Desde un MSI o MSU
    4. 4. Lista de paquetes instalados
    5. 5. Actualización de un paquete
    6. 6. Eliminación de un paquete
  3. Módulo PowerShellGet
    1. 1. Actualización de PowerShellGet para admitir TLS
    2. 2. Búsqueda de un recurso
      1. a. Versionado
      2. b. Contenido de un recurso
    3. 3. Instalación de un recurso
    4. 4. Actualización de un recurso
    5. 5. Eliminación de un recurso
  4. Creación de un repositorio
    1. 1. A través de una simple red compartida
      1. a. PackageManagement
      2. b. PowerShellGet
      3. c. Organización del recurso compartido
    2. 2. A través de un sitio web
      1. a. Instalación
      2. b. Creación de usuario
      3. c. Creación del primer feed (repositorio)
      4. d. Registro como fuente y publicación de unmódulo
Objetos personalizados y tipos estándar
  1. Introducción
  2. Objetos personalizados
    1. 1. Crear un objeto personalizado
    2. 2. Añadir un miembro
      1. a. Añadir una propiedad
      2. b. Añadir un método
    3. 3. Creación de una colección de objetos
    4. 4. Transformación de un objeto existente enun objeto personalizado
  3. Tipos estándar
    1. 1. Añadir un miembro mediante un archivo .types.ps1xml
      1. a. Archivo .types.ps1xml
      2. b. Añadir una propiedad
      3. c. Añadir un método
    2. 2. Añadir miembro solo con Update-TypeData
      1. a. Añadir una propiedad
      2. b. Añadir un método
    3. 3. Ir más lejos
  4. Formato
    1. 1. Archivos de formato por defecto
    2. 2. Objetos personalizados
      1. a. Personalización del tipo
      2. b. Aplicación de un archivo de formato
    3. 3. Tipo estándar
      1. a. Modificación del archivo de formato por defecto
      2. b. Aplicación del archivo de formato
Clases
  1. Introducción
  2. Creación de una clase
    1. 1. Palabra clave Class
    2. 2. Propiedad
    3. 3. Método
    4. 4. Constructor
    5. 5. Visibilidad
  3. Sobrecarga de métodos (overload)
  4. Estática
  5. Ámbito de las variables
    1. 1. Propiedad
    2. 2. Método
      1. a. Global
      2. b. Script
  6. Herencia
  7. Creación Enum
    1. 1. Palabra clave enum
    2. 2. Valores de manipulación
  8. Formato
  9. Integración en un módulo
  10. Palabra clave Using
  11. Uso de clases en la validación de parámetros
    1. 1. ValidateSet Dinámico
    2. 2. ArgumentCompleter
Jobs y paralelismo
  1. Introducción
  2. Trabajo de fondo local (BackgroundJob)
    1. 1. Creación de un primer job
    2. 2. Recuperación del resultado de un job
    3. 3. Detener un job
    4. 4. Eliminación de un job
    5. 5. Errores y jobs
  3. Trabajo de fondo basado en threads (ThreadJob)
    1. 1. Uso de los ThreadJobs
    2. 2. Comparativa de rendimiento con BackgroundJob
  4. Jobs remotos (RemoteJob)
    1. 1. Iniciar un job remoto
    2. 2. Múltiples destinos
    3. 3. Esperar el fin de la ejecución de los jobs
  5. Trabajos programados (PSScheduledJob)
    1. 1. Crear un trabajo programado
    2. 2. Configurar un disparador (trigger)
    3. 3. Modificación de las opciones
  6. Workflows (PSWorkflowJob)
  7. ForEach-Object
  8. PowerShell API
Workflows
  1. Introducción
    1. 1. ¿Qué es un flujo de workflow?
    2. 2. ¿Cómo funciona?
  2. Creación de un workflow
    1. 1. Palabra clave workflow
    2. 2. Gestión de parámetros
      1. a. Parámetros comunes
      2. b. Bloque param
      3. c. Parámetros propios de los workflows
    3. 3. Ejecución a través de una sesiónremota
    4. 4. Ejecución como job
  3. Restricciones
    1. 1. Restricciones en los comandos
    2. 2. Restricciones sobre los objetos
    3. 3. Restricciones de lenguaje
    4. 4. Palabra clave InlineScript
      1. a. Sintaxis
      2. b. Ámbito de las variables
  4. Ejecución en paralelo
    1. 1. Bloque parallel
    2. 2. Secuencia de bloques
    3. 3. Palabra clave Foreach
  5. Puntos de sincronización
  6. Suspensión de un workflow
  7. Reiniciar un workflow (tras una suspensión o un crash)
  8. Observación del contenido de un workflow
  9. Integración en un módulo
  10. Workflow: ¿para quién? ¿por qué?
Desired State Configuration (DSC)
  1. Introducción
  2. Versiones y plataformas compatibles con DSC
  3. Descripción general de la solución
    1. 1. Terminología
    2. 2. Consideraciones generales
    3. 3. Dos modos: PUSH y PULL
      1. a. PUSH
      2. b. PULL
    4. 4. Configuración
    5. 5. Presentación de los recursos del DSC
    6. 6. Administrador de configuración local (LCM)
  4. Recursos DSC
    1. 1. Lista de los recursos disponibles
    2. 2. Recursos integrados
      1. a. Utilización general de un recurso
      2. b. Caso especial con el recurso Script
    3. 3. Extensión de posibilidades con la DSC Community
      1. a. Seguimiento de novedades
      2. b. Consulta de la PowerShell Gallery
      3. c. Instalación desde la PowerShell Gallery
      4. d. Política de nomenclatura para los recursosdel DSC
      5. e. Recursos personalizados
      6. f. Utilización de los recursos
  5. Crear una configuración inicial
    1. 1. Creación rápida con ISE
    2. 2. Aplicación de una configuración
    3. 3. Utilización de parámetros
    4. 4. Importación de un recurso
    5. 5. Datos de configuración (Configuration Data)
      1. a. Definición de una configuraciónde entorno
      2. b. Variables especiales $ConfigurationData, $AllNodes, $Nodes
      3. c. Tener en cuenta la configuración de entorno
      4. d. Resumen
  6. Configuración del LCM
    1. 1. Configuración actual
    2. 2. Configuración LCM
    3. 3. Aplicación de una metaconfiguración
  7. Archivos MOF
    1. 1. Archivo de configuración MOF
    2. 2. Archivo MOF de metaconfiguración
  8. Seguridad y contexto de ejecución (credentials)
  9. Protección de credentials en una configuración
    1. 1. Prerrequisitos
    2. 2. Etapas de implementación
    3. 3. Datos de configuración (Configuration Data)
    4. 4. Configuración
      1. a. Configuraciones de escritura
      2. b. Generación de archivos MOF
      3. c. Configuración del LCM
      4. d. Aplicación de la configuración
    5. 5. Obtener la huella digital de un certificado de cifrado
  10. Configuración de un PULL Server
    1. 1. Evolución del PULL Server
    2. 2. PULL Server bajo recurso compartido SMB
    3. 3. PULL Server Web
      1. a. Prerrequisitos
      2. b. Escribir la configuración del PULL Server
      3. c. Dos modos de configuración para el LCM
      4. d. Configuración LCM en función delID
      5. e. Configuración de LCM en funcióndel nombre
      6. f. Forzar una actualización de la configuración
    4. 4. Despliegue de recursos
  11. Prueba de conformidad de un nodo
  12. Aplicación de la última configuración correcta conocida
  13. Principio avanzado
    1. 1. Recurso compuesto
    2. 2. Configuración parcial
      1. a. Diseñar configuraciones parciales
      2. b. Configuración del LCM
      3. c. PUSH de una configuración parcial
      4. d. PULL de una configuración parcial
      5. e. Combinar PUSH y PULL
  14. Escritura de un recurso personalizado
    1. 1. Recurso personalizado con un archivo MOF
      1. a. Creación de un recurso basado en un esquemaMOF
      2. b. Ayuda para la creación de recursos (xDSCResourceDesigner)
      3. c. Generación de la estructura del módulo
      4. d. Escritura del archivo PSM1
      5. e. Despliegue de recursos
      6. f. Comprobación de que se tiene en cuenta elrecurso
    2. 2. Recurso personalizado con las clases PowerShell
      1. a. Creación de un recurso basado en una clasePowerShell
      2. b. PowerShell ISE al rescate
      3. c. Redacción del archivo PSM1
      4. d. Generación y modificación del manifiesto
      5. e. Despliegue de recursos
    3. 3. Utilización del recurso personalizado enuna configuración
  15. DSC en Linux
    1. 1. Prerrequisitos
      1. a. Instalación del paquete OMI
      2. b. Instalación del paquete DSC
    2. 2. Recursos DSC para Linux
    3. 3. Establecer una sesión CIM
    4. 4. Creación de la configuración
    5. 5. Aplicación de la configuración
    6. 6. Recuperación de la configuraciónde LCM
  16. Mantenimiento y solución de problemas
    1. 1. Forzar la reaplicación de una configuración
    2. 2. Estado de una configuración DSC
    3. 3. Restaurar un sistema a su estado original
    4. 4. Activar el modo Verbose
Gestión avanzada de archivos
  1. Introducción
  2. Gestión de archivos
    1. 1. Compress-Archive
    2. 2. Expand-Archive
    3. 3. Antes de PowerShell 5.1
      1. a. Compresión de una carpeta
      2. b. Descomprimir un archivo
  3. Enlace simbólico
    1. 1. Archivos
    2. 2. Carpetas
  4. Archivo temporal
  5. Edición de archivos remotos
  6. Copia de archivos a través de una sesión PowerShell
  7. Conversión de un archivo plano en un objeto
    1. 1. Modo básico
    2. 2. Modo avanzado
Comunicación con otras aplicaciones
  1. Introducción
  2. Las tecnologías COM
  3. Manipulación de objetos COM
    1. 1. Búsqueda de objetos
    2. 2. Creación/instanciaciónde un objeto
    3. 3. Utilización de una aplicación COM
      1. a. Internet Explorer
      2. b. Microsoft Excel 2016
      3. c. Windows Script Host (WSH)
Gestión remota avanzada
  1. Introducción
  2. JEA (Just Enough Administration)
    1. 1. ¿Por qué JEA?
    2. 2. Prerrequisitos
    3. 3. Recordatorio
      1. a. ¿Qué es una sesión?
      2. b. Configuración de una sesión (PowerShell4.0 y versiones anteriores)
      3. c. Novedades de PowerShell 5.0
    4. 4. Capacidad de rol
      1. a. Preparación
      2. b. Archivo de capacidad de rol
      3. c. Integración en un módulo
      4. d. Fusión de capacidades de rol
    5. 5. Sesiones
      1. a. Archivo de configuración de sesión
      2. b. Grabar una sesión
      3. c. Modificación de una sesión
      4. d. Utilización de las sesiones
    6. 6. Auditoría
      1. a. Conformidad de las configuraciones de sesión
      2. b. Transcripción
    7. 7. Configuración mediante DSC
  3. PowerShell Web Access
    1. 1. Prerrequisitos
    2. 2. Instalación
    3. 3. Configuración
      1. a. Instalación de la aplicación web
      2. b. Reglas de acceso
    4. 4. Utilización
    5. 5. Desconexión de una sesión
    6. 6. Casos de uso
    7. 7. Limitaciones y futuro de las funcionalidades
  4. Sesión remota con SSH
    1. 1. Instalación en Windows
    2. 2. Instalación en Linux
    3. 3. Establecimiento de la conexión
Creación de interfaces gráficas
  1. Introducción
    1. 1. ¿Por qué una interfaz gráfica?
    2. 2. ¿A dónde acudir?
  2. Windows Forms
    1. 1. Introducción a Windows Forms
    2. 2. Creación de un primer Form
    3. 3. Añadir una acción a un Form
      1. a. Eventos
      2. b. Menús
    4. 4. Ejemplo de control
    5. 5. Creación de gráficos con MS ChartControls
  3. Windows Presentation Foundation
    1. 1. Creación de una interfaz en Visual Studio
    2. 2. Gestión de los controles y sus eventos
    3. 3. Creación de gráficos avanzados conLiveCharts
    4. 4. Cambiar de tema con MahApps
  4. Actualización de una GUI mediante runspaces
Recopilación de datos de rendimiento
  1. ¿Por qué y cómo se recopilan los datos de rendimiento?
  2. Windows Performance Logs and Alerts (PLA)
  3. Conjunto de comandos PowerShell
    1. 1. Listado de categorías de contadores de rendimiento
    2. 2. Determinación del medidor adecuado
    3. 3. Acceso a los datos de los contadores
      1. a. Control del número de conjuntos de datosy de la frecuencia
      2. b. Recopilación de datos en ordenadores remotos
    4. 4. Utilización de jobs para tareas extensas
    5. 5. Copia de seguridad en disco de los datos de rendimiento
      1. a. Exportación de datos de rendimiento en formatobinario (BLG)
      2. b. Exportación de datos de rendimiento en formatoExcel (CSV)
    6. 6. Gestión de un archivo de exportaciónde datos archivo de rendimiento
  4. Recopilación de datos en todas la empresa
    1. 1. Creación del archivo de configuraciónXML
    2. 2. Creación y despliegue de un conjunto de recopiladores dedatos
      1. a. Creación a través de logman
      2. b. Creación a través del objeto COM PLA
    3. 3. Gestión de conjuntos de recopiladores dedatos
      1. a. Consulta de conjuntos existentes de recopiladoresde datos
      2. b. Puesta en marcha de un conjunto de recopiladores dedatos
      3. c. Detención de un conjunto de recopiladoresde datos
      4. d. Eliminación de un conjunto de recopiladoresde datos
Administración de directorios
  1. Introducción
  2. Módulo Active Directory
    1. 1. Prerrequisitos
    2. 2. Búsqueda de objetos
      1. a. Búsqueda basada en la identidad
      2. b. Filtro genérico
      3. c. Filtro LDAP
    3. 3. Gestión de unidades organizativas
      1. a. Creación de una unidad organizativa
      2. b. Modificación de una unidad organizativa
      3. c. Eliminación de una unidad organizativa
    4. 4. Gestión de usuarios
      1. a. Mostrar la lista de usuarios y sus propiedades
      2. b. Creación de un usuario
      3. c. Cambiar la contraseña y activar un objetousuario existente
      4. d. Modificación de un atributo
      5. e. Eliminación de un usuario
    5. 5. Gestión de grupos
      1. a. Visualización de la lista de grupos
      2. b. Creación de un grupo
      3. c. Gestión de los miembros
      4. d. Eliminación de un grupo
    6. 6. Utilización del provider Active Directory
      1. a. Exploración del provider
      2. b. Movimiento de objetos
      3. c. Modificación de objetos
      4. d. Uso de comandos de Active Directory
      5. e. Creación de un PSDrive a otro dominio
  3. ADSI
    1. 1. Acerca de ADSI
    2. 2. Confusión con Active Directory
    3. 3. ¿Sigue siendo útil hoy en día?
    4. 4. Interacción con una base de datos SAM local
      1. a. Generalidades
      2. b. Grupos locales
      3. c. Usuarios locales
    5. 5. Active Directory Domain Services
      1. a. Conexión al directorio
      2. b. Conexión a un dominio con un usuario diferente
      3. c. Búsqueda de objetos
  4. ADSIPS

Nicolas BAUDIN

 

Durante sus estudios de informática, Nicolas Baudin descubrió su interés por el lenguajePowerShell, que pronto se convirtió enuna verdadera pasión. Actualmente, trabajacomo ingeniero de sistemas en un entornoMicrosoft y continúa perfeccionando suscompetencias en este ámbito. Gracias a estaexperiencia, como profesional autónomo,ofrece servicios destinados a facilitar la automatizaciónde tareas con PowerShell, ya seamediante intervenciones en las instalacionesde los clientes o impartiendo formación.

A título personal, forma parte de la comunidad DSC como mantenedor de recursos de DSC y colabora activamente con la comunidad francófona en el servidor de Discord de PowerShell.

 

Novedades

Ver más