Powershell
Powershell
Powershell
Prólogo
1. Sobre PowerShell
19
Introducción
1. ¿Para qué utilizar los scripts?
23
4. En resumen...
27
Descubrimiento de PowerShell
1. Presentación de PowerShell
29
2. Histórico de versiones
30
3. Plataformas soportadas
33
3.1 Plataformas cliente
33
3.2 Plataformas servidor
34
7. Comandos básicos
54
7.1 Estructura de los comandos
54
7.2 Get-Command
55
7.3 Get-Help
58
7.3.1 Ayuda sobre los comandos
58
7.3.2 Ayuda conceptual
61
7.4 Get-Member
62
9. Proveedores PowerShell
74
Manipulación de objetos
1. ¿Qué es la noción de objeto?
79
2. Manipulación de objetos
81
2.1 Las colecciones
81
2.2 Diferencias de comportamiento entre versiones de PowerShell
85
2.2.1 Colecciones de objetos
85
2.2.2 Expansión automática de las propiedades de los elementos de una colección
86
2.2.3 Where-Object y Foreach-Object simplificados
87
2.3 Selección/recuperación de resultados
88
2.3.1 Recuperación de los n primeros objetos
89
2.3.2 Recuperación de los n últimos objetos
89
2.3.3 Recuperación de objetos únicos
90
2.3.4 Recuperación de una propiedad determinada
90
2.3.5 Selección de objetos de un array basado en el valor del índice
92
2.3.6 Examen de todos los objetos de una colección
93
2.3.7 Agrupación de objetos
94
2.3.8 Ordenación de objetos
96
2. Las constantes
120
3. Tipos de datos
121
6. Variables predefinidas
126
6.1 Variables automáticas
126
6.2 Variables de configuración
131
8. Cuantificadores de bytes
139
Operadores
1. Introducción
141
1.1 Operadores aritméticos
141
2. Operadores de comparación
143
2.1 Comparación sobre escalares
143
2.2 Comparación sobre arrays
144
5. Operador de rango
152
6. Operadores de pertenencia
152
7. Operador de sustitución
153
7.1 Sustitución con la ayuda de una expresión regular
154
7.2 Sustitución aplicada sobre un array
154
8. Operadores de tipo
156
9. Operadores lógicos
156
Arrays
1. Introducción
171
4. Arrays asociativos
180
4.1 Arrays asociativos estándares
180
4.1.1 Declarar un array asociativo vacío
180
4.1.2 Inicializar un array asociativo con datos
180
4.1.3 Añadir datos a un array asociativo
181
4.1.4 Recorrer un array asociativo
182
Bucles y condiciones
1. Los bucles
185
1.1 Bucle While
185
1.2 Bucle Do-While
186
1.3 Bucle Do-Until
186
1.4 Bucle For
187
1.5 Bucle Foreach
187
1.5.1 Primera técnica
188
1.5.2 Segunda técnica
189
3. Switch
193
3.1 Estructura simple
193
3.2 Estructura a base de subexpresiones
194
3.3 Estructura a base de expresiones regulares
194
Funciones y scripts
1. Funciones
195
1.1 Estructura de una función
195
1.2 Uso de argumentos
196
1.3 Uso de parámetros
197
1.4 Retorno de valores
199
1.4.1 Devolver un valor escalar
199
1.4.2 Devolver un objeto
200
1.5 Introducción a las «funciones avanzadas»
202
1.5.1 Diferencias entre las funciones clásicas y las funciones avanzadas
203
1.5.2 Atributos de validación de parámetros
204
2. Scripts
208
2.1 Estructuración de un script
208
2.2 Comentarios
209
2.3 Ejecución de un script
209
2.4 La directiva #Requires
210
2.5 Toma de contacto del entorno de ejecución (contexto)
211
2.6 Internacionalización
214
3. DotSourcing
217
2. Fechas
270
2.1 Manipulación de los objetos DateTime
271
2.2 Formateo de fechas
273
2.2.1 Formatos estándares
275
2.2.2 Formatos personalizados
276
2.3 Manipulación de fechas
280
2.3.1 Crear una fecha
280
2.3.2 Modificar una fecha
280
2.3.3 Comparar fechas
281
2.3.4 Calcular un intervalo entre dos fechas
282
2.3.5 Conversión de una fecha expresada en ticks
283
Perfiles PowerShell
1. Introducción
285
2. Perfiles disponibles
286
4. Creación de un perfil
288
2. Los snap-ins
299
3. Los módulos
303
3.1 Instalar un módulo
303
3.2 Mostrar los módulos disponibles
305
3.3 Cargar/importar un módulo
307
3.4 Prefijar los comandos de un módulo
310
3.5 Enumerar los comandos de un módulo
311
3.6 Seguir el uso de los módulos
311
3.7 Descargar un módulo
314
4. PowerShell Gallery
314
4.1 ¿Qué es?
314
4.2 ¿Quid de la seguridad?
315
4.3 ¿Cómo acceder a la galería?
316
4.3.1 El sitio web www.powershellgallery.com
316
4.3.2 El módulo PowerShellGet
319
4.4 Buscar un módulo
320
4.5 Guardar un módulo
324
4.6 Instalar un módulo
325
4.7 Desinstalar un módulo
326
4.8 Recuperar la lista de módulos instalados
327
4.9 Actualizar un módulo
329
4.10 Publicar un módulo
330
4.10.1 Obtener la clave de API
330
4.10.2 Crear el manifiesto del módulo
331
4.10.3 Publicar el módulo en la galería
332
343
3.5.2 Redirección a una variable
343
3.5.3 Redirección de errores hacia $null
344
3.6 Intercepción de errores no críticos
344
3.6.1 Caso general
344
3.6.2 Caso de ejecutables externos
344
5. La depuración
350
5.1 Mostrar información en tiempo de ejecución
351
5.1.1 Mostrar mensajes en modo verbose
352
5.1.2 Visualización de mensajes en modo debug
353
5.1.3 Visualización de mensajes en modo warning
353
5.1.4 Mostrar mensajes de información
354
5.2 Forzar la declaración de variables
354
5.3 Ejecución paso a paso
356
5.3.1 En la consola PowerShell clásica
356
5.3.2 En la consola PowerShell ISE
362
Seguridad
1. La seguridad: ¿para quién? ¿Por qué?
373
4. Firma de scripts
405
4.1 Las firmas digitales
405
4.2 Los certificados
406
4.2.1 Comprar un certificado
406
4.2.2 Crear un certificado auto firmado
406
4.3 Firmar su primer script
414
4.4 Ejecutar scripts firmados
415
2. El framework .NET
422
3. .NET Core
424
CIM/WMI
1. Introducción
445
Ejecución remota
1. Introducción
489
3.7.1 Generalidades
518
3.7.2 Configuraciones de sesión por defecto
521
3.7.3 Modificación de permisos
523
3.7.4 Creación de una configuración de sesión personalizada
524
3.7.5 Creación de una configuración de sesión delegada (RunAs)
532
3.8 Sesiones remotas
534
3.9 Ejecución de comandos remotos
536
3.10 Sesiones WinRM en modo desconectado
538
3.11 Ejecución de scripts remotos
539
3.12 Copia de archivos mediante una sesión de comunicación
544
3.13 Apertura de una sesión remota interactiva PowerShell
544
3.13.1 Enter-PSSession
544
3.13.2 PowerShell ISE (Integrated Scripting Environment)
547
3.14 Importación de comandos remotos
548
5. Conclusión
558
Casos de estudio
1. Encontrar las cuentas de equipo caducadas dentro del AD DS
559
1.1 Problemática
559
1.2 Dificultades que superar
560
1.3 Solución
560
Recursos adicionales
1. Recursos web
599
1.1 Sitios Web en español
599
1.1.1 IT Pro.es: comunidad de profesionales de Infraestructura
599
1.1.2 Aprende Informática Conmigo
601
1.2 Sitios Web en inglés
602
1.2.1 PowerShell Team Blog
602
1.2.2 Repositorio GitHub PowerShell
603
1.2.3 PowerShell Magazine
604
2. Herramientas de terceros
605
2.1 PowerShell Plus
605
2.2 PowerShell Studio 2017
606
2.3 PowerGadget
607
2.4 PowerShell Universal Dashboard
608
Anexos
1. Sintaxis de las expresiones regulares
613
índice
619