Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
- Use la
$PSVersionTablevariable automática. - Solo cuando necesite saltarse el Control de cuentas de usuario (UAC) para las tareas que requieren privilegios elevados en el equipo local.
- La directiva de ejecución predeterminada en Windows sistemas cliente es
Restricted, lo que impide la ejecución de scripts. - Use
Get-ExecutionPolicypara determinar la directiva de ejecución actual. - Use
Set-ExecutionPolicy(por ejemplo,Set-ExecutionPolicy -ExecutionPolicy RemoteSigned).
Capítulo 2: El sistema de ayuda
- N.º El parámetro DisplayName de
Get-Servicees nominal, no posicional. -
Get-Processtiene seis conjuntos de parámetros. - Utilice
Get-Command -Noun EventLog. - Utilice
Get-Process -Name powershell. - 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
-
Get-Processgenera unSystem.Diagnostics.Processobjeto . - Canalice el comando a
Get-Member. - Compruebe si el objeto tiene un método que realiza la acción.
- Use el parámetro del
PassThrucomando, si tiene uno. - 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
- Una línea sencilla de PowerShell es una canalización continua, independientemente de cuántas líneas físicas abarque.
- Los saltos de línea naturales pueden producirse en caracteres como la barra vertical (
|), coma (,), corchetes ([ ]), llaves ({ }) y paréntesis (( )). - 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.
- Un comando puede aceptar la entrada de canalización por valor (por tipo) o por nombre de propiedad.
- 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
- 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.
- Use
Get-Alias -Name %para determinar el cmdlet exacto. - Dado que los alias reducen la legibilidad y la portabilidad, lo que dificulta la comprensión de los scripts.
- Use
Get-ChildItem -Path HKLM:\, HKCU:\para enumerar las claves del Registro en ambos subárboles. - El
-replaceoperador 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
-
ForEach-Objectprocesa los elementos de uno en uno desde la canalización (streaming), mientras que laforeachsentencia procesa los elementos de una colección que ya se ha cargado en la memoria. - Un
whilebucle 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 diferenciado whilede ydo until, que se ejecuta al menos una vez. -
breaksale completamente del bucle, mientrascontinueomite la iteración actual y continúa con la siguiente.
Capítulo 7: Trabajar con WMI
- 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. - WSMan (administración remota de Windows).
- Las sesiones CIM permiten la reutilización de conexiones, admiten credenciales alternativas, mejoran el rendimiento y simplifican la administración de varias conexiones remotas.
- Cree una opción de sesión con
New-CimSessionOption, por ejemplo, para usar DCOM, y pásela aNew-CimSession. A continuación, use esa sesión conGet-CimInstance. - Utilice
Remove-CimSession.
Capítulo 8: Comunicación remota de PowerShell
- Utilice
Enable-PSRemoting. - Utilice
Enter-PSSession. - Permite usar una sesión persistente en lugar de especificar el nombre del equipo y las credenciales con cada comando.
- Sí, puede usar una sesión de PowerShell (PSSession) en un escenario de comunicación remota interactiva de uno a uno.
- 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
- Utilice
Get-Verb. - Agregue el
[CmdletBinding()]atributo a la función . - Cuando la función realiza cambios en el estado del sistema o realiza acciones potencialmente impactantes.
- Especifique
-ErrorAction Stop. - 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
- Cree un
.psm1archivo y coloque las funciones en él. - El uso de verbos aprobados garantiza la coherencia, evita advertencias y mejora la detectabilidad.
- Utilice
New-ModuleManifest. - Use
Export-ModuleMemberen el.psm1archivo o especifique funciones en elFunctionsToExportcampo del.psd1archivo. - 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 (.psm1o 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.
Colaborar con nosotros en GitHub
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.