about_Logging
Descripción breve
PowerShell registra las operaciones internas del motor, los proveedores y los cmdlets en el registro de eventos de Windows.
Descripción larga
PowerShell registra detalles sobre las operaciones de PowerShell, como iniciar y detener el motor y los proveedores, y ejecutar comandos de PowerShell.
Nota:
Windows PowerShell 5.1 (y versiones anteriores) incluyen cmdlets eventLog para los registros de eventos de Windows. En esas versiones, para mostrar la lista de cmdlets de EventLog , escriba:
Get-Command -Noun EventLog
. Para obtener más información, consulte la documentación del cmdlet y about_EventLogs para la versión de Windows PowerShell.
Para obtener información sobre el registro en PowerShell 7, consulte los artículos siguientes:
Visualización de las entradas del registro de eventos de PowerShell en Windows
Los registros de PowerShell se pueden ver mediante el Visor de eventos de Windows. El registro de eventos se encuentra en el grupo Registros de aplicaciones y servicios y se denomina Microsoft-Windows-PowerShell. El proveedor GUID
ETW asociado es {A0C1853B-5C40-4B15-8766-3CF1C58F985A}
.
Cuando el registro de bloques de scripts está habilitado, PowerShell registra los siguientes eventos en el registro de Microsoft-Windows-PowerShell/Operational :
Campo | Value |
---|---|
EventId | 4104 / 0x1008 |
Canal | Operational |
Nivel | Verbose |
Código de operación | Create |
Tarea | CommandStart |
Palabra clave | Runspace |
Habilitación del registro de bloques de scripts
Al habilitar el registro de bloques de scripts, PowerShell registra el contenido de todos los bloques de script que procesa. Una vez habilitada, cualquier nueva sesión de PowerShell registra esta información.
Nota:
Para asegurarse de que los datos confidenciales están protegidos, habilite el registro de eventos protegidos al usar el registro de bloques de scripts para cualquier otro propósito que no sea de diagnóstico.
El registro de bloques de script se puede habilitar a través de la directiva de grupo o una configuración del Registro.
Uso de la directiva de grupo
Para habilitar la transcripción automática, habilite la característica Activar el registro de bloques de scripts de PowerShell en la directiva de grupo a través de Administración plantillasistrative ->Componentes de Windows ->Windows PowerShell.
Uso del Registro
Ejecute la siguiente función:
function Enable-PSScriptBlockLogging {
$basePath = @(
'HKLM:\Software\Policies\Microsoft\Windows'
'PowerShell\ScriptBlockLogging'
) -join '\'
if (-not (Test-Path $basePath)) {
$null = New-Item $basePath -Force
}
Set-ItemProperty $basePath -Name EnableScriptBlockLogging -Value "1"
}
Registro de eventos protegidos
Aumentar el nivel de registro en un sistema aumenta la posibilidad de que el contenido registrado pueda contener datos confidenciales. Por ejemplo, con el registro de scripts habilitado, las credenciales u otros datos confidenciales utilizados por un script se pueden escribir en el registro de eventos. Cuando una máquina que ha registrado datos confidenciales está en peligro, los registros pueden proporcionar a un atacante información necesaria para ampliar su alcance.
Para proteger esta información, Windows 10 presenta el registro de eventos protegidos. El registro de eventos protegido permite a las aplicaciones participantes cifrar los datos confidenciales escritos en el registro de eventos. Más adelante, puede descifrar y procesar estos registros en un recopilador de registros más seguro y centralizado.
El contenido del registro de eventos está protegido mediante el estándar de sintaxis de mensajes criptográficos (CMS) de IETF. CMS usa criptografía de clave pública. Las claves usadas para cifrar el contenido y descifrar el contenido se mantienen independientes.
La clave pública se puede compartir ampliamente y no es información confidencial. Cualquier contenido cifrado con esta clave pública solo se puede descifrar mediante la clave privada. Para obtener más información sobre la criptografía de clave pública, vea Wikipedia - Criptografía de clave pública.
Para habilitar una directiva de registro de eventos protegidos, implemente una clave pública en todas las máquinas que tengan datos de registro de eventos para proteger. La clave privada correspondiente se usa para posprocesar los registros de eventos en una ubicación más segura, como un recopilador de registros de eventos central o un agregador SIEM . Puede configurar SIEM en Azure. Para obtener más información, consulte Integración de SIEM genérica.
Habilitación del registro de eventos protegido a través de la directiva de grupo
Para habilitar el registro de eventos protegidos, habilite la característica en la Enable Protected Event Logging
directiva de grupo a través Administrative Templates -> Windows Components -> Event Logging
de . Esta configuración requiere un certificado de cifrado, que puede proporcionar en uno de varios formularios:
- Contenido de un certificado X.509 codificado en base 64 (por ejemplo, como ofrece la
Export
opción en el Administrador de certificados). - Huella digital de un certificado que se puede encontrar en el almacén de certificados del equipo local (puede implementarse mediante la infraestructura de PKI).
- Ruta de acceso completa a un certificado (puede ser local o un recurso compartido remoto).
- Ruta de acceso a un directorio que contiene un certificado o certificados (puede ser local o un recurso compartido remoto).
- El nombre del firmante de un certificado que se puede encontrar en el almacén de certificados del equipo local (se puede implementar mediante la infraestructura de PKI).
El certificado resultante debe tener Document Encryption
como uso mejorado de clave (1.3.6.1.4.1.311.80.1
) y usos de Data Encipherment
clave habilitados Key Encipherment
.
Advertencia
La clave privada no se debe implementar en los eventos de registro de máquinas. Debe mantenerse en una ubicación segura donde descifre los mensajes.
Descifrar mensajes de registro de eventos protegidos
El script siguiente recupera y descifra eventos, suponiendo que tenga la clave privada:
Get-WinEvent Microsoft-Windows-PowerShell/Operational |
Where-Object Id -eq 4104 |
Unprotect-CmsMessage
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de