Powershell Flashcards

(111 cards)

1
Q

¿Qué diferencia principal hay entre el pipeline de Bash y el de PowerShell?

A

Bash pasa texto, mientras que PowerShell pasa objetos .NET.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Cuál es la estructura estándar de un cmdlet?

A

Verbo-Sustantivo (ejemplo: Get-Content).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿En qué lenguaje está basado y construido PowerShell?

A

En C# / .NET.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué versión de PowerShell permite trabajar en Linux y macOS?

A

PowerShell Core (versiones 6.0 en adelante).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué versión de PowerShell es la última que se considera estrictamente “Windows PowerShell”?

A

La versión 5.1.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cómo se llama el ejecutable de PowerShell 7 en la terminal?

A

pwsh (en lugar de powershell).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cuál es la principal ventaja de usar PowerShell en Linux frente a Bash?

A

El uso de objetos .NET en el pipeline en lugar de procesar solo texto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué versión marcó el inicio del código abierto y la multiplataforma?

A

PowerShell Core 6.0.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué protocolo utiliza preferentemente PowerShell 7 para conectarse de forma remota a un Linux?

A

El protocolo SSH.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cómo se llama el ejecutable de PowerShell en Linux y macOS?

A

pwsh.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Puede PowerShell en Linux modificar el Registro de Windows del servidor local?

A

No, porque Linux no tiene Registro de Windows.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué ventaja tiene ConvertFrom-Json en un entorno Linux?

A

Permite convertir la salida de texto de APIs o archivos de configuración en objetos fáciles de filtrar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es un módulo en PowerShell?

A

Una unidad que agrupa cmdlets, funciones y scripts con un propósito común.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué archivo define la versión y el autor de un módulo?

A

El Manifiesto del módulo (archivo con extensión .psd1).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué sucede si ejecutas un comando de un módulo que no está cargado en memoria?

A

PowerShell realiza una carga automática (autoloading) si el módulo está instalado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cómo puedes ver qué comandos contiene un módulo específico?

A

Usando el comando Get-Command -Module NombreDelModulo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Cuál es el repositorio oficial para descargar nuevos módulos?

A

El PowerShell Gallery.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Qué es un alias en PowerShell?

A

Un nombre alternativo corto para un cmdlet, función o ejecutable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿A qué cmdlet apuntan los alias ls y dir?

A

Al cmdlet Get-ChildItem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿Qué comando se usa para crear un nuevo alias personalizado?

A

New-Alias o Set-Alias.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

¿Por qué no se recomienda usar alias dentro de scripts (.ps1)?

A

Por legibilidad; el nombre completo del cmdlet es más fácil de entender para otros.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

¿Cómo puedes hacer que un alias personalizado sea permanente?

A

Guardándolo en el archivo de Perfil de PowerShell ($PROFILE).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

¿Cuál es la función principal de Get-Command?

A

Listar y encontrar todos los comandos disponibles en la sesión de PowerShell.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

¿Cómo buscarías todos los cmdlets que tengan la palabra “IP” en su nombre?

A

Usando comodines: Get-Command IP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
¿Qué propiedad de la salida de Get-Command indica el módulo al que pertenece un comando?
La propiedad Source.
26
¿Se puede usar Get-Command para encontrar archivos .exe normales del sistema?
Sí, puede localizar cualquier ejecutable que esté en el PATH del sistema.
27
¿Qué parámetro usarías para ver solo los comandos de un módulo específico, con Get-Command?
El parámetro -Module.
28
¿Qué hace el cmdlet Get-ChildItem?
Lista los elementos y contenedores en una ubicación específica (archivos, registro, etc.).
29
¿Qué alias de CMD y Linux apuntan a este cmdlet?
dir y ls.
30
¿Para qué sirve el parámetro -Recurse?
Para buscar elementos en la ubicación actual y en todas sus subcarpetas.
31
¿Cómo verías los archivos ocultos con este comando?
Añadiendo el parámetro -Force.
32
¿Qué diferencia hay entre usar Get-ChildItem en el disco duro o en el Registro?
Ninguna en la sintaxis; PowerShell usa Providers para que navegues por ambos de la misma forma.
33
¿Cuál es la función principal de Get-Alias?
Listar y buscar los nombres cortos (alias) y los comandos a los que apuntan.
34
¿Qué parámetro usarías para encontrar el alias de un comando largo como Get-Process?
El parámetro -Definition (ej. Get-Alias -Definition Get-Process).
35
¿Cómo puedes saber a qué comando real apunta el alias ??
Ejecutando Get-Alias ?.
36
¿Muestra Get-Alias los alias de comandos externos (como .exe) o solo de PowerShell?
Muestra ambos, siempre que estén definidos en la sesión de PowerShell.
37
¿Qué comando usarías para ver todos los alias que terminan en "s"?
Get-Alias *s.
38
¿Qué sucede si el nombre de una propiedad del objeto coincide con el parámetro del siguiente comando?
Se produce un Binding por nombre de propiedad automático.
39
¿Es necesario esperar a que el primer comando termine para que el segundo empiece a procesar?
No, funciona mediante Streaming (procesa objeto por objeto según llegan).
40
¿Cuál es la ventaja de pasar objetos en lugar de texto?
El segundo comando tiene acceso a todas las propiedades del dato original sin tener que "parsear" texto.
41
¿Cómo se llama el proceso de encajar un objeto del pipe en un parámetro del siguiente cmdlet?
Parameter Binding.
42
¿Cuál es la función principal de Get-Member?
Revelar las propiedades y métodos de un objeto en el pipeline.
43
¿Qué diferencia hay entre una Property y un Method en Get-Member?
Una Property es un dato/atributo; un Method es una acción que el objeto puede realizar.
44
¿Qué información aparece en la primera línea de la salida de Get-Member?
El TypeName, que es el nombre técnico de la clase de .NET a la que pertenece el objeto.
45
¿Es necesario usar el pipeline (`
`) para usar Get-Member?
46
¿Cómo filtrarías Get-Member para ver solamente los métodos de un objeto?
Usando el parámetro -MemberType Method.
47
¿Qué hace el cmdlet Format-List?
Muestra las propiedades de un objeto en un formato de lista vertical.
48
¿Cuál es el alias más común para Format-List?
El alias fl.
49
¿Cómo puedes ver todas las propiedades de un objeto con sus valores?
Usando Format-List *.
50
¿Por qué no se debe poner otro cmdlet después de un Format-List en el pipe?
Porque los comandos de formato convierten los objetos en texto para visualización, perdiendo sus propiedades originales.
51
¿En qué situación es mejor usar Format-List en lugar de una tabla?
Cuando el objeto tiene muchas propiedades o textos muy largos que no caben en columnas.
52
¿Cuál es la función del cmdlet Where-Object?
Filtrar objetos en el pipeline basándose en una condición.
53
¿Qué representan los alias where y ??
Son alias del cmdlet Where-Object.
54
¿Qué significa la variable especial $_ dentro de un bloque de filtrado?
Representa al objeto actual que está siendo procesado en ese momento en la tubería.
55
¿Cuál es el operador para decir "mayor que" en PowerShell?
El operador -gt (Greater Than).
56
¿Por qué es mejor filtrar al principio del pipeline?
Para ahorrar memoria y tiempo, procesando solo los objetos necesarios desde el inicio.
57
¿Qué símbolo se utiliza para identificar una variable en PowerShell?
El símbolo $ (ej. $miVariable).
58
¿Qué guarda realmente una variable cuando le asignas un cmdlet como Get-Service?
Guarda el objeto o la colección de objetos completos de .NET.
59
¿Cómo accedes a una propiedad específica (como el nombre) de un objeto guardado en una variable?
Usando la notación de punto: $variable.Propiedad.
60
¿Qué sucede si asignas un pipeline entero a una variable?
La variable guarda el resultado final después de que todos los filtros y procesos se hayan aplicado.
61
¿Cómo puedes saber cuántos elementos hay dentro de una variable que contiene una lista?
Usando la propiedad .Count (ej. $lista.Count).
62
¿Qué significa la sigla ISE en PowerShell?
Integrated Scripting Environment (Entorno de Scripting Integrado).
63
¿Cuál es la principal limitación del PowerShell ISE hoy en día?
Solo es compatible con Windows PowerShell 5.1 (no soporta PS 7+).
64
¿Qué herramienta recomienda Microsoft actualmente para escribir scripts?
Visual Studio Code con la extensión de PowerShell.
65
¿El PowerShell ISE es multiplataforma?
No, solo funciona en sistemas operativos Windows.
66
¿Qué ventaja tiene VS Code respecto al control de versiones?
Tiene integración nativa con Git y GitHub.
67
¿Cómo se llama la medida de seguridad que impide ejecutar scripts por defecto?
Execution Policy (Política de Ejecución).
68
¿Cuál es el nivel de política recomendado para desarrolladores en Windows?
RemoteSigned.
69
¿Qué comando se usa para permitir que un script descargado de internet se ejecute?
Unblock-File.
70
¿Por qué es necesario escribir ./ antes del nombre del script?
Para indicar explícitamente que el script está en el directorio actual (por seguridad).
71
¿Qué comando se usa para cambiar la política de ejecución de todo el sistema?
Set-ExecutionPolicy.
72
¿Qué ventaja principal tiene ForEach-Object sobre el bucle foreach clásico?
Su eficiencia en memoria gracias al Streaming (procesa uno a uno).
73
¿Qué significa el símbolo % en un pipeline?
Es el alias de ForEach-Object.
74
¿Cuál es la principal limitación de la estructura de control foreach?
Requiere que toda la colección de objetos esté cargada previamente en memoria.
75
¿Qué bucle usarías si quieres que el código se ejecute al menos una vez antes de comprobar la condición?
El bucle do-until (o do-while).
76
¿Cómo se representa el objeto actual dentro de un ForEach-Object?
Mediante la variable automática $_.
77
¿Qué hace el cmdlet New-Item?
Crea un nuevo elemento (archivo, carpeta, clave de registro) en una ubicación específica.
78
¿Qué alias se utiliza frecuentemente para New-Item?
El alias ni.
79
¿Cuál es la función del parámetro -ItemType?
Especifica qué tipo de objeto se va a crear (ej: File o Directory).
80
¿Qué sucede si usas el parámetro -Force y el archivo ya existe?
PowerShell sobrescribe el archivo existente sin preguntar.
81
¿Qué devuelve New-Item tras crear un archivo con éxito?
Devuelve el objeto completo (FileInfo) del nuevo elemento creado.
82
¿Qué hace el cmdlet Get-Content?
Lee el contenido de un archivo y lo devuelve como una colección de objetos (líneas).
83
¿Qué alias de Linux y CMD funcionan para este cmdlet?
cat (Linux) y type (CMD).
84
¿Para qué sirve el parámetro -Wait?
Para monitorizar un archivo en tiempo real mientras se añaden nuevas líneas.
85
¿Qué parámetro usarías para leer solo las últimas 20 líneas de un archivo?
El parámetro -Tail 20.
86
¿Cuál es la diferencia entre el uso normal y el parámetro -Raw?
El normal lee línea por línea (lento pero versátil); -Raw lee todo como un único bloque (rápido).
87
¿Cuál es la función principal de Get-CimInstance?
Consultar información detallada del hardware y sistema operativo mediante el estándar CIM.
88
¿Qué prefijo suelen tener las clases de información en Windows?
El prefijo Win32_ (ej. Win32_BIOS).
89
¿Cuál es la principal ventaja de CIM sobre el antiguo WMI?
Es un estándar de la industria más rápido y compatible con redes modernas (WS-Man).
90
¿Qué parámetro usarías para obtener información de un equipo remoto?
El parámetro -ComputerName.
91
¿Qué comando se usa para ejecutar acciones (métodos) sobre un objeto de CIM?
El cmdlet Invoke-CimMethod.
92
¿Qué información proporciona el cmdlet Get-Host?
Información sobre la aplicación o interfaz que está ejecutando PowerShell.
93
¿Qué propiedad de Get-Host permite cambiar el título de la ventana?
La propiedad UI.RawUI.WindowTitle.
94
Si ejecutas PowerShell en VS Code, ¿qué nombre aparecerá en la propiedad Name de Get-Host?
Visual Studio Code Host (o similar).
95
¿Es Get-Host el comando adecuado para saber la versión del motor de PowerShell?
No, para eso es mejor usar la variable automática $PSVersionTable.
96
¿Qué propiedad indica el idioma regional de la sesión de consola?
La propiedad CurrentCulture.
97
¿Cuál es la función principal de Invoke-RestMethod?
Interactuar con APIs REST y convertir automáticamente JSON/XML en objetos de PowerShell.
98
¿Qué diferencia hay entre Invoke-RestMethod e Invoke-WebRequest?
Invoke-RestMethod devuelve solo los datos procesados; Invoke-WebRequest devuelve la respuesta HTTP completa.
99
¿Qué parámetro se usa para enviar datos a un servidor (como en un método POST)?
El parámetro -Body.
100
¿Cuál es el alias más común para Invoke-RestMethod?
El alias irm.
101
¿Es necesario usar un comando extra para leer un JSON recibido por este cmdlet?
No, la deserialización es automática; el resultado ya es un objeto de PowerShell.
102
¿Qué hace el cmdlet Set-Location?
Cambia la ubicación de trabajo actual a una ruta específica (carpeta, registro, etc.).
103
¿Cuáles son los tres alias más comunes para este cmdlet?
cd, chdir y sl.
104
¿Qué símbolo se usa para representar el directorio raíz del usuario actual?
El símbolo de la tilde ~.
105
¿En qué se diferencia de Push-Location?
Set-Location solo cambia de sitio; Push-Location guarda la ubicación anterior para poder volver luego.
106
¿Se puede usar Set-Location para navegar por algo que no sean carpetas de disco?
Sí, gracias a los Providers (ej. Registro HKLM:, Certificados Cert:, etc.).
107
¿Qué es un PSProvider?
Un adaptador que permite navegar por diferentes almacenes de datos (como el Registro) como si fueran carpetas.
108
¿Qué comando muestra todas las unidades (reales y virtuales) disponibles?
Get-PSDrive.
109
¿Cuál es la "Regla de Oro" del filtrado en PowerShell?
Filter Left, Format Right (Filtrar lo antes posible, formatear al final).
110
¿Qué sucede si pones un Format-Table en mitad de un pipeline?
Se rompen los objetos y los siguientes cmdlets solo recibirán texto de visualización.
111
¿Para qué sirve la variable $ErrorActionPreference?
Para definir cómo debe reaccionar PowerShell ante un error (detenerse, continuar, etc.).