about_Logging_Windows
Deskripsi singkat
PowerShell mencatat operasi internal dari mesin, penyedia, dan cmdlet ke log peristiwa Windows.
Deskripsi panjang
PowerShell mencatat detail tentang operasi PowerShell, seperti memulai dan menghentikan mesin dan penyedia, dan menjalankan perintah PowerShell.
Untuk informasi tentang pengelogan di Windows PowerShell 5.1, lihat about_Logging.
PowerShell mendukung konfigurasi dua kategori pengelogan:
Pengelogan modul - Rekam peristiwa eksekusi alur untuk anggota modul tertentu. Pengelogan modul harus diaktifkan untuk sesi dan modul tertentu. Untuk informasi selengkapnya tentang mengonfigurasi pengelogan ini, lihat about_PowerShell_Config.
Jika pengelogan modul diaktifkan melalui konfigurasi, Anda dapat mengaktifkan dan menonaktifkan pengelogan untuk modul tertentu dalam sesi dengan mengatur nilai properti LogPipelineExecutionDetails modul.
Misalnya, untuk mengaktifkan pengelogan modul untuk modul PSReadLine :
$psrl = Get-Module PSReadLine $psrl.LogPipelineExecutionDetails = $true Get-Module PSReadline | Select-Object Name, LogPipelineExecutionDetails
Name LogPipelineExecutionDetails ---- --------------------------- PSReadLine True
Pengelogan blok skrip - Rekam pemrosesan perintah, blok skrip, fungsi, dan skrip baik dipanggil secara interaktif, atau melalui otomatisasi.
Saat Anda mengaktifkan Pembuatan Log Blok Skrip, PowerShell merekam konten semua blok skrip yang diprosesnya. Setelah diaktifkan, sesi PowerShell baru mencatat informasi ini. Untuk informasi selengkapnya, lihat Mengaktifkan Pembuatan Log Blok Skrip.
Mendaftarkan penyedia peristiwa PowerShell di Windows
Tidak seperti Linux atau macOS, Windows mengharuskan penyedia acara untuk didaftarkan sebelum peristiwa dapat ditulis ke log peristiwa. Untuk mengaktifkan penyedia peristiwa PowerShell, jalankan perintah berikut dari prompt PowerShell yang ditingkatkan.
$PSHOME\RegisterManifest.ps1
Menampilkan entri log peristiwa PowerShell di Windows
Log PowerShell dapat dilihat menggunakan Pemantau Peristiwa Windows. Log peristiwa terletak di grup Log Aplikasi dan Layanan dan diberi nama PowerShellCore. GUID penyedia ETW terkait adalah {f90714a8-5509-434a-bf6d-b1624c8a19a2}
.
Saat Pengelogan Blok Skrip diaktifkan, PowerShell mencatat peristiwa berikut ke log PowerShellCore/Operational :
Bidang | Nilai |
---|---|
EventId | 4104 / 0x1008 |
Saluran | Operational |
Tingkat | Verbose |
Opcode | Create |
Tugas | CommandStart |
Kata kunci | Runspace |
Membatalkan pendaftaran penyedia peristiwa PowerShell di Windows
Mendaftarkan penyedia peristiwa menempatkan kunci di pustaka biner yang digunakan untuk mendekode peristiwa. Untuk memperbarui pustaka ini, penyedia harus tidak terdaftar untuk melepaskan kunci ini.
Untuk membatalkan pendaftaran penyedia PowerShell, jalankan perintah berikut dari prompt PowerShell yang ditinggikan.
$PSHOME\RegisterManifest.ps1 -Unregister
Setelah memperbarui PowerShell, jalankan $PSHOME\RegisterManifest.ps1
untuk mendaftarkan penyedia peristiwa yang diperbarui.
Mengaktifkan Pengelogan Blok Skrip
Saat Anda mengaktifkan Pembuatan Log Blok Skrip, PowerShell merekam konten semua blok skrip yang diprosesnya. Setelah diaktifkan, sesi PowerShell baru mencatat informasi ini.
Catatan
Disarankan untuk mengaktifkan Pencatatan Peristiwa Terproteksi, seperti yang dijelaskan di bawah ini, saat menggunakan Pengelogan Blok Skrip untuk apa pun selain tujuan diagnostik.
Pengelogan Blok Skrip dapat diaktifkan melalui Kebijakan Grup atau pengaturan registri.
Menggunakan Kebijakan Grup
Untuk mengaktifkan transkripsi otomatis, aktifkan fitur Aktifkan Pengelogan Blok Skrip PowerShell di Kebijakan Grup melalui Templat Administratif ->PowerShell Core.
Menggunakan Registri
Jalankan fungsi berikut:
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"
}
Menggunakan file konfigurasi PowerShell
Anda dapat mengatur ScriptBlockLogging
opsi dalam powershell.config.json
file yang mengontrol bagaimana PowerShell berperilaku. Untuk informasi selengkapnya, lihat about_PowerSHell_Config.
Pengelogan Peristiwa terproteksi
Meningkatkan tingkat pengelogan pada sistem meningkatkan kemungkinan konten yang dicatat mungkin berisi data sensitif. Misalnya, dengan pembuatan log skrip diaktifkan, kredensial, atau data sensitif lainnya yang digunakan oleh skrip dapat ditulis ke log peristiwa. Ketika komputer yang telah mencatat data sensitif disusupi, log dapat memberi penyerang informasi yang diperlukan untuk memperluas jangkauan mereka.
Untuk melindungi informasi ini, Windows 10 memperkenalkan Pengelogan Peristiwa Terproteksi. Pengelogan Peristiwa terproteksi memungkinkan aplikasi yang berpartisipasi mengenkripsi data sensitif yang ditulis ke log peristiwa. Nantinya, Anda dapat mendekripsi dan memproses log ini pada pengumpul log yang lebih aman dan terpusat.
Konten log peristiwa dilindungi menggunakan standar IETF Cryptographic Message Syntax (CMS). CMS menggunakan kriptografi kunci publik. Kunci yang digunakan untuk mengenkripsi konten dan mendekripsi konten tetap terpisah.
Kunci publik dapat dibagikan secara luas dan bukan data sensitif. Konten apa pun yang dienkripsi dengan kunci publik ini hanya dapat didekripsi oleh kunci privat. Untuk informasi selengkapnya tentang Kriptografi Kunci Publik, lihat Wikipedia - Kriptografi Kunci Umum.
Untuk mengaktifkan kebijakan Pengelogan Peristiwa Terproteksi, sebarkan kunci publik ke semua komputer yang memiliki data log peristiwa untuk dilindungi. Kunci privat yang sesuai digunakan untuk pasca-proses log peristiwa di lokasi yang lebih aman seperti pengumpul log peristiwa pusat, atau agregator SIEM . Anda dapat menyiapkan SIEM di Azure. Untuk informasi selengkapnya, lihat Integrasi SIEM generik.
Mengaktifkan Pengelogan Peristiwa terproteksi melalui Kebijakan Grup
Untuk mengaktifkan Pengelogan Peristiwa Terproteksi, aktifkan Enable Protected Event Logging
fitur dalam Kebijakan Grup melalui Administrative Templates -> Windows Components -> Event Logging
. Pengaturan ini memerlukan sertifikat enkripsi, yang dapat Anda sediakan dalam salah satu dari beberapa formulir:
- Konten sertifikat X.509 yang dikodekan base-64 (misalnya, seperti yang ditawarkan oleh
Export
opsi di Pengelola Sertifikat). - Thumbprint sertifikat yang dapat ditemukan di penyimpanan sertifikat Komputer Lokal (dapat disebarkan oleh infrastruktur PKI).
- Jalur lengkap ke sertifikat (bisa lokal, atau berbagi jarak jauh).
- Jalur ke direktori yang berisi sertifikat atau sertifikat (bisa lokal, atau berbagi jarak jauh).
- Nama subjek sertifikat yang dapat ditemukan di penyimpanan sertifikat Komputer Lokal (dapat disebarkan oleh infrastruktur PKI).
Sertifikat yang dihasilkan harus memiliki Document Encryption
sebagai penggunaan kunci yang ditingkatkan (1.3.6.1.4.1.311.80.1
), dan baik Data Encipherment
atau Key Encipherment
penggunaan kunci diaktifkan.
Peringatan
Kunci privat tidak boleh disebarkan ke peristiwa pengelogan komputer. Ini harus disimpan di lokasi yang aman tempat Anda mendekripsi pesan.
Mendekripsi pesan Pengelogan Peristiwa yang Dilindungi
Skrip berikut mengambil dan mendekripsi peristiwa, dengan asumsi Bahwa Anda memiliki kunci privat:
Get-WinEvent Microsoft-Windows-PowerShell/Operational |
Where-Object Id -eq 4104 |
Unprotect-CmsMessage