Apéndice: Respuestas a preguntas de revisión

En este apéndice se proporcionan respuestas concisas a las preguntas de revisión encontradas al final de cada capítulo. Úselo para validar su comprensión y reforzar los conceptos clave.

Capítulo 1: Introducción a PowerShell

  1. Use la $PSVersionTable variable automática.
  2. Solo cuando necesite saltarse el Control de cuentas de usuario (UAC) para las tareas que requieren privilegios elevados en el equipo local.
  3. La directiva de ejecución predeterminada en Windows sistemas cliente es Restricted, lo que impide la ejecución de scripts.
  4. Use Get-ExecutionPolicy para determinar la directiva de ejecución actual.
  5. Use Set-ExecutionPolicy (por ejemplo, Set-ExecutionPolicy -ExecutionPolicy RemoteSigned).

Capítulo 2: El sistema de ayuda

  1. N.º El parámetro DisplayName de Get-Service es nominal, no posicional.
  2. Get-Process tiene seis conjuntos de parámetros.
  3. Utilice Get-Command -Noun EventLog.
  4. Utilice Get-Process -Name powershell.
  5. Ejecute Update-Help (con privilegios elevados como administrador en Windows PowerShell) para descargar e instalar el contenido de ayuda más reciente.

Capítulo 3: Detección de objetos, propiedades y métodos

  1. Get-Process genera un System.Diagnostics.Process objeto .
  2. Canalice el comando a Get-Member.
  3. Compruebe si el objeto tiene un método que realiza la acción.
  4. Use el parámetro del PassThru comando, si tiene uno.
  5. Ejecute el comando una vez y almacene los resultados en una variable para evitar generar repetidamente grandes cantidades de salida al crear prototipos.

Capítulo 4: One-Liners y la canalización

  1. Una línea sencilla de PowerShell es una canalización continua, independientemente de cuántas líneas físicas abarque.
  2. Los saltos de línea naturales pueden producirse en caracteres como la barra vertical (|), coma (,), corchetes ([ ]), llaves ({ }) y paréntesis (( )).
  3. Debe filtrar a la izquierda para mejorar el rendimiento y la eficacia al reducir la cantidad de datos que se pasan a través de la canalización.
  4. Un comando puede aceptar la entrada de canalización por valor (por tipo) o por nombre de propiedad.
  5. Dado que la mayoría del contenido de la Galería de PowerShell es contribuido por la comunidad y no se puede examinar, debe revisarse y probarse antes de su uso.

Capítulo 5: Formato, alias, proveedores, comparación

  1. Dado que los cmdlets de formato producen objetos de formato, que causan una interrupción en la canalización y no se pueden usar en la mayoría de los otros comandos.
  2. Use Get-Alias -Name % para determinar el cmdlet exacto.
  3. Dado que los alias reducen la legibilidad y la portabilidad, lo que dificulta la comprensión de los scripts.
  4. Use Get-ChildItem -Path HKLM:\, HKCU:\ para enumerar las claves del Registro en ambos subárboles.
  5. El -replace operador no distingue mayúsculas de minúsculas de forma predeterminada, mientras que el .Replace() método distingue mayúsculas de minúsculas.

Capítulo 6: Control de flujo

  1. ForEach-Object procesa los elementos de uno en uno desde la canalización (streaming), mientras que la foreach sentencia procesa los elementos de una colección que ya se ha cargado en la memoria.
  2. Un while bucle evalúa su condición antes de ejecutarse, por lo que es posible que no se ejecute en absoluto si la condición es falsa, a diferencia do while de y do until, que se ejecuta al menos una vez.
  3. break sale completamente del bucle, mientras continue omite la iteración actual y continúa con la siguiente.

Capítulo 7: Trabajar con WMI

  1. Los cmdlets WMI (por ejemplo, Get-WmiObject) son más antiguos y usan DCOM, mientras que los cmdlets CIM (por ejemplo, Get-CimInstance) son más recientes y usan WSMan de forma predeterminada.
  2. WSMan (administración remota de Windows).
  3. Las sesiones CIM permiten la reutilización de conexiones, admiten credenciales alternativas, mejoran el rendimiento y simplifican la administración de varias conexiones remotas.
  4. Cree una opción de sesión con New-CimSessionOption, por ejemplo, para usar DCOM, y pásela a New-CimSession. A continuación, use esa sesión con Get-CimInstance.
  5. Utilice Remove-CimSession.

Capítulo 8: Comunicación remota de PowerShell

  1. Utilice Enable-PSRemoting.
  2. Utilice Enter-PSSession.
  3. Permite usar una sesión persistente en lugar de especificar el nombre del equipo y las credenciales con cada comando.
  4. Sí, puede usar una sesión de PowerShell (PSSession) en un escenario de comunicación remota interactiva de uno a uno.
  5. Los cmdlets de ejecución local devuelven objetos dinámicos con métodos, mientras que los comandos remotos devuelven objetos deserializados sin métodos.

Capítulo 9: Funciones

  1. Utilice Get-Verb.
  2. Agregue el [CmdletBinding()] atributo a la función .
  3. Cuando la función realiza cambios en el estado del sistema o realiza acciones potencialmente impactantes.
  4. Especifique -ErrorAction Stop.
  5. Para documentar cómo usar la función para que usted y otros usuarios puedan comprenderla fácilmente y acceder a la ayuda con Get-Help.

Capítulo 10: Módulos de script

  1. Cree un .psm1 archivo y coloque las funciones en él.
  2. El uso de verbos aprobados garantiza la coherencia, evita advertencias y mejora la detectabilidad.
  3. Utilice New-ModuleManifest.
  4. Use Export-ModuleMember en el .psm1 archivo o especifique funciones en el FunctionsToExport campo del .psd1 archivo.
  5. El módulo debe estar en una carpeta denominada igual que el módulo, que se encuentra en una ruta de acceso que aparece en $env:PSModulePathy contiene el archivo de módulo adecuado (.psm1 o manifiesto).

Notas finales

  • Estas respuestas son intencionadamente concisas para reforzar los conceptos clave.
  • Vuelva a consultar los capítulos para obtener una comprensión más profunda.