Delen via


about_Logging_Windows

Korte beschrijving

PowerShell registreert interne bewerkingen van de engine, providers en cmdlets naar het Windows-gebeurtenislogboek.

Lange beschrijving

PowerShell registreert details over PowerShell-bewerkingen, zoals het starten en stoppen van de engine en providers, en het uitvoeren van PowerShell-opdrachten.

Zie about_Logging voor meer informatie over het aanmelden in Windows PowerShell 5.1.

PowerShell ondersteunt het configureren van twee categorieën logboekregistratie:

  • Modulelogboekregistratie: leg de uitvoeringsgebeurtenissen van de pijplijn vast voor leden van opgegeven modules. Modulelogboekregistratie moet zijn ingeschakeld voor zowel de sessie als specifieke modules. Zie about_PowerShell_Config voor meer informatie over het configureren van deze logboekregistratie.

    Als modulelogboekregistratie is ingeschakeld via configuratie, kunt u logboekregistratie in- en uitschakelen voor specifieke modules in een sessie door de waarde van de eigenschap LogPipelineExecutionDetails van de module in te stellen.

    Als u bijvoorbeeld modulelogboekregistratie wilt inschakelen voor de PSReadLine-module :

    $psrl = Get-Module PSReadLine
    $psrl.LogPipelineExecutionDetails = $true
    Get-Module PSReadline | Select-Object Name, LogPipelineExecutionDetails
    
    Name       LogPipelineExecutionDetails
    ----       ---------------------------
    PSReadLine                        True
    
  • Logboekregistratie van scriptblokken: leg de verwerking vast van opdrachten, scriptblokken, functies en scripts, ongeacht of deze interactief of via automatisering worden aangeroepen.

    Wanneer u Logboekregistratie van scriptblokkering inschakelt, registreert PowerShell de inhoud van alle scriptblokken die worden verwerkt. Zodra deze is ingeschakeld, wordt deze informatie in een nieuwe PowerShell-sessie in een logboek opgeslagen. Zie Logboekregistratie van scriptblokkering inschakelen voor meer informatie.

De PowerShell-gebeurtenisprovider registreren in Windows

In tegenstelling tot Linux of macOS vereist Windows dat de gebeurtenisprovider is geregistreerd voordat gebeurtenissen naar het gebeurtenislogboek kunnen worden geschreven. Als u de PowerShell-gebeurtenisprovider wilt inschakelen, voert u de volgende opdracht uit vanaf een PowerShell-prompt met verhoogde bevoegdheid.

$PSHOME\RegisterManifest.ps1

De vermeldingen in het PowerShell-gebeurtenislogboek weergeven in Windows

PowerShell-logboeken kunnen worden weergegeven met behulp van de Windows-Logboeken. Het gebeurtenislogboek bevindt zich in de groep Toepassings- en serviceslogboeken en heeft de naam PowerShellCore. De bijbehorende GUID van de ETW-provider is {f90714a8-5509-434a-bf6d-b1624c8a19a2}.

Wanneer Logboekregistratie van scriptblokkering is ingeschakeld, worden de volgende gebeurtenissen door PowerShell vastgelegd in het PowerShellCore-/operationele logboek:

Veld Waarde
Eventid 4104 / 0x1008
Kanaal Operational
Niveau Verbose
Opcode Create
Taak CommandStart
Trefwoord Runspace

Registratie van de PowerShell-gebeurtenisprovider in Windows ongedaan maken

Als u de gebeurtenisprovider registreert, wordt de binaire bibliotheek die wordt gebruikt voor het decoderen van gebeurtenissen, vergrendeld. Als u deze bibliotheek wilt bijwerken, moet de registratie van de provider worden opgehefd om deze vergrendeling vrij te geven.

Als u de registratie van de PowerShell-provider ongedaan wilt maken, voert u de volgende opdracht uit vanaf een PowerShell-prompt met verhoogde bevoegdheid.

$PSHOME\RegisterManifest.ps1 -Unregister

Nadat u PowerShell hebt bijgewerkt, voert u uit $PSHOME\RegisterManifest.ps1 om de bijgewerkte gebeurtenisprovider te registreren.

Logboekregistratie van scriptblokkering inschakelen

Wanneer u Logboekregistratie van scriptblokkering inschakelt, registreert PowerShell de inhoud van alle scriptblokken die worden verwerkt. Zodra deze is ingeschakeld, wordt deze informatie in een nieuwe PowerShell-sessie in een logboek opgeslagen.

Notitie

Het wordt aanbevolen om logboekregistratie van beveiligde gebeurtenissen in te schakelen, zoals hieronder wordt beschreven, wanneer u logboekregistratie voor scriptblokkering gebruikt voor iets anders dan diagnostische doeleinden.

Logboekregistratie van scriptblokkering kan worden ingeschakeld via groepsbeleid of een registerinstelling.

Met behulp van Groepsbeleid

Als u automatische transcriptie wilt inschakelen, schakelt u de functie Logboekregistratie van PowerShell-scripts inschakelen in groepsbeleid via beheersjablonen ->PowerShell Core.

Het register gebruiken

Voer de volgende functie uit:

function Enable-PSScriptBlockLogging {
    $basePath = @(
        'HKLM:\Software\Policies\Microsoft'
        'PowerShellCore\ScriptBlockLogging'
    ) -join '\'

    if (-not (Test-Path $basePath)) {
        $null = New-Item $basePath -Force
    }

    Set-ItemProperty $basePath -Name EnableScriptBlockLogging -Value "1"
}

Het PowerShell-configuratiebestand gebruiken

U kunt de ScriptBlockLogging optie instellen in het powershell.config.json bestand waarmee wordt bepaald hoe PowerShell zich gedraagt. Zie about_PowerSHell_Config voor meer informatie.

Logboekregistratie van beveiligde gebeurtenissen

Door het niveau van logboekregistratie in een systeem te verhogen, wordt de kans vergroot dat vastgelegde inhoud gevoelige gegevens bevat. Als logboekregistratie van scripts is ingeschakeld, kunnen referenties of andere gevoelige gegevens die door een script worden gebruikt, bijvoorbeeld naar het gebeurtenislogboek worden geschreven. Wanneer een computer die gevoelige gegevens heeft geregistreerd, is gecompromitteerd, kunnen de logboeken een aanvaller voorzien van informatie die nodig is om het bereik te vergroten.

Om deze informatie te beveiligen, introduceert Windows 10 logboekregistratie van beveiligde gebeurtenissen. Met beveiligde gebeurtenislogboekregistratie kunnen deelnemende toepassingen gevoelige gegevens versleutelen die naar het gebeurtenislogboek worden geschreven. Later kunt u deze logboeken ontsleutelen en verwerken op een veiligere en gecentraliseerde logboekverzamelaar.

De inhoud van het gebeurtenislogboek wordt beveiligd met de CMS-standaard (Cryptografische berichtsyntaxis) van IETF. CMS maakt gebruik van openbare-sleutelcryptografie. De sleutels die worden gebruikt voor het versleutelen van inhoud en het ontsleutelen van inhoud, worden gescheiden gehouden.

De openbare sleutel kan op grote schaal worden gedeeld en is geen gevoelige gegevens. Alle inhoud die met deze openbare sleutel is versleuteld, kan alleen worden ontsleuteld door de persoonlijke sleutel. Zie Wikipedia - Public Key Cryptography (Engelstalig) voor meer informatie over public key cryptography.

Als u een beleid voor logboekregistratie van beveiligde gebeurtenissen wilt inschakelen, implementeert u een openbare sleutel op alle computers waarop gebeurtenislogboekgegevens moeten worden beveiligd. De bijbehorende persoonlijke sleutel wordt gebruikt om de gebeurtenislogboeken na te verwerken op een veiligere locatie, zoals een centrale gebeurtenislogboekverzamelaar of SIEM-aggregator . U kunt SIEM instellen in Azure. Zie Algemene SIEM-integratie voor meer informatie.

Logboekregistratie van beveiligde gebeurtenissen inschakelen via groepsbeleid

Als u logboekregistratie van beveiligde gebeurtenissen wilt inschakelen, schakelt u de Enable Protected Event Logging functie in groepsbeleid in via Administrative Templates -> Windows Components -> Event Logging. Voor deze instelling is een versleutelingscertificaat vereist, dat u op een van de volgende manieren kunt opgeven:

  • De inhoud van een base-64 gecodeerd X.509-certificaat (bijvoorbeeld zoals aangeboden door de Export optie in Certificaatbeheer).
  • De vingerafdruk van een certificaat die te vinden is in het certificaatarchief van de lokale computer (kan worden geïmplementeerd door de PKI-infrastructuur).
  • Het volledige pad naar een certificaat (kan lokaal of een externe share zijn).
  • Het pad naar een map met een certificaat of certificaten (kan lokaal of een externe share zijn).
  • De onderwerpnaam van een certificaat die te vinden is in het certificaatarchief van de lokale computer (kan worden geïmplementeerd door de PKI-infrastructuur).

Het resulterende certificaat moet Document Encryption een uitgebreid sleutelgebruik hebben (1.3.6.1.4.1.311.80.1) en Data Encipherment een of-sleutelgebruik Key Encipherment is ingeschakeld.

Waarschuwing

De persoonlijke sleutel mag niet worden geïmplementeerd op de machines die gebeurtenissen registreren. Het moet worden bewaard op een veilige locatie waar u de berichten ontsleutelt.

Berichten over logboekregistratie van beveiligde gebeurtenissen ontsleutelen

Met het volgende script worden gebeurtenissen opgehaald en ontsleuteld, ervan uitgaande dat u de persoonlijke sleutel hebt:

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

Zie ook