Dela via


about_Logging

Kort beskrivning

PowerShell loggar interna åtgärder från motorn, leverantörerna och cmdletarna till Windows-händelseloggen.

Lång beskrivning

PowerShell loggar information om PowerShell-åtgärder, till exempel att starta och stoppa motorn och leverantörerna och köra PowerShell-kommandon.

Kommentar

Windows PowerShell 5.1 (och äldre) innehåller EventLog-cmdletar för Windows-händelseloggarna. I dessa versioner visar du listan med EventLog-cmdletar : Get-Command -Noun EventLog. Mer information finns i cmdlet-dokumentationen och about_EventLogs för din version av Windows PowerShell.

Information om loggning i PowerShell 7 finns i följande artiklar:

Visa PowerShell-händelseloggposter i Windows

PowerShell-loggar kan visas med windows-Prikazivač događaja. Händelseloggen finns i gruppen Program- och tjänstloggar och heter Microsoft-Windows-PowerShell. Den associerade ETW-providern GUID är {A0C1853B-5C40-4B15-8766-3CF1C58F985A}.

När loggning av skriptblock är aktiverat loggar PowerShell följande händelser till loggen Microsoft-Windows-PowerShell/Operational :

Fält Värde
EventId 4104 / 0x1008
Kanal Operational
Nivå Verbose
Opcode Create
Uppgift CommandStart
Nyckelord Runspace

Aktivera loggning av skriptblock

När du aktiverar loggning av skriptblock registrerar PowerShell innehållet i alla skriptblock som bearbetas. När den här informationen har aktiverats loggar alla nya PowerShell-sessioner den här informationen.

Kommentar

För att säkerställa att känsliga data är skyddade aktiverar du Loggning av skyddade händelser när du använder Loggning av skriptblock i något annat än diagnostiksyfte.

Loggning av skriptblock kan aktiveras via en grupprincip eller en registerinställning.

Med hjälp av grupprincip

Aktivera automatisk transkription genom att aktivera funktionen Aktivera Loggning av PowerShell-skriptblockering i grupprincip via administrativa mallar> Windows-komponenter –> Windows PowerShell.

Använda registret

Kör följande funktion:

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"
}

Skyddad händelseloggning

Om du ökar loggningsnivån på ett system ökar risken för att loggat innehåll kan innehålla känsliga data. Med skriptloggning aktiverat kan till exempel autentiseringsuppgifter eller andra känsliga data som används av ett skript skrivas till händelseloggen. När en dator som har loggat känsliga data komprometteras kan loggarna ge en angripare information som behövs för att utöka deras räckvidd.

För att skydda den här informationen introducerar Windows 10 loggning av skyddade händelser. Med skyddad händelseloggning kan deltagande program kryptera känsliga data som skrivits till händelseloggen. Senare kan du dekryptera och bearbeta loggarna på en säkrare och centraliserad logginsamlare.

Händelselogginnehållet skyddas med IETF-standarden för kryptografisk meddelandesyntax (CMS). CMS använder kryptering med offentliga nycklar. Nycklarna som används för att kryptera innehåll och dekryptera innehåll hålls åtskilda.

Den offentliga nyckeln kan delas brett och är inte känsliga data. Allt innehåll som krypteras med den här offentliga nyckeln kan bara dekrypteras av den privata nyckeln. Mer information om kryptografi för offentliga nycklar finns i Wikipedia – Kryptering av offentliga nycklar.

Om du vill aktivera en princip för skyddad händelseloggning distribuerar du en offentlig nyckel till alla datorer som har händelseloggdata att skydda. Motsvarande privata nyckel används för att efterbearbeta händelseloggarna på en säkrare plats, till exempel en central händelselogginsamlare eller SIEM-aggregator . Du kan konfigurera SIEM i Azure. Mer information finns i Allmän SIEM-integrering.

Aktivera skyddad händelseloggning via grupprincip

Aktivera skyddad händelseloggning genom att aktivera Enable Protected Event Logging funktionen i Grupprincip via Administrative Templates -> Windows Components -> Event Logging. Den här inställningen kräver ett krypteringscertifikat som du kan ange i något av flera formulär:

  • Innehållet i ett base-64-kodat X.509-certifikat (till exempel Export enligt alternativet i Certifikathanteraren).
  • Tumavtrycket för ett certifikat som finns i certifikatarkivet för den lokala datorn (kan distribueras av PKI-infrastrukturen).
  • Den fullständiga sökvägen till ett certifikat (kan vara lokal eller en fjärrresurs).
  • Sökvägen till en katalog som innehåller ett certifikat eller certifikat (kan vara lokal eller en fjärrresurs).
  • Ämnesnamnet för ett certifikat som finns i certifikatarkivet för den lokala datorn (kan distribueras av PKI-infrastrukturen).

Det resulterande certifikatet måste ha Document Encryption som en förbättrad nyckelanvändning (1.3.6.1.4.1.311.80.1) och antingen Data Encipherment eller Key Encipherment nyckelanvändning aktiverad.

Varning

Den privata nyckeln ska inte distribueras till datorernas loggningshändelser. Den bör förvaras på en säker plats där du dekrypterar meddelandena.

Dekryptera meddelanden om loggning av skyddade händelser

Följande skript hämtar och dekrypterar händelser, förutsatt att du har den privata nyckeln:

Get-WinEvent Microsoft-Windows-PowerShell/Operational |
    Where-Object Id -EQ 4104 |
    Unprotect-CmsMessage

Se även