Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Rövid leírás
A PowerShell naplózza a motor, a szolgáltatók és a parancsmagok belső műveleteit.
Hosszú leírás
A PowerShell naplózza a PowerShell-műveletek részleteit, például a motor indítását és leállítását, valamint a szolgáltatók indítását és leállítását. Emellett naplózza a PowerShell-parancsokkal kapcsolatos részleteket is.
A Windows PowerShell 5.1-ben való naplózásról további információt a about_Logging.
A PowerShell-naplók helye a célplatformtól függ.
- Linuxon a PowerShell naplózza a rendszerezett naplót , amely továbbítható egy syslog-kiszolgálóra . További információkért tekintse meg a
manLinux-disztribúció lapjait. - MacOS rendszeren az Apple egyesített naplózási rendszere van használatban. További információkért tekintse meg az Apple naplózással kapcsolatos fejlesztői dokumentációját.
A PowerShell két naplózási kategória konfigurálását támogatja:
Modulnaplózás – A megadott modulok tagjainak folyamatvégrehajtási eseményeinek rögzítése. A modulnaplózást engedélyezni kell a munkamenethez és az adott modulokhoz is. További információ a naplózás konfigurálásáról: about_PowerShell_Config.
Ha a modulnaplózás konfigurációval engedélyezve van, a modul LogPipelineExecutionDetails tulajdonságának értékének beállításával engedélyezheti és letilthatja a munkamenet adott moduljainak naplózását.
Például a PSReadLine modul modulnaplózásának engedélyezéséhez:
$psrl = Get-Module PSReadLine $psrl.LogPipelineExecutionDetails = $true Get-Module PSReadLine | Select-Object Name, LogPipelineExecutionDetailsName LogPipelineExecutionDetails ---- --------------------------- PSReadLine TrueSzkriptblokk naplózása – A parancsok, szkriptblokkok, függvények és szkriptek feldolgozásának rögzítése interaktívan vagy automatizálással.
A szkriptblokkok naplózásának engedélyezésekor a PowerShell rögzíti az összes szkriptblokk tartalmát, amelyet feldolgoz. Ha engedélyezve van, minden új PowerShell-munkamenet naplózza ezeket az információkat.
Feljegyzés
Ajánlott engedélyezni a védett eseménynaplózást, ha a szkriptblokk-naplózást nem diagnosztikai célokra használja. További információ: about_PowerShell_Config.
Naplózás konfigurálása Linux vagy macOS rendszeren
A Linuxon és macOS-en történő naplózás konfigurációja a powershell.config.json fájlban van tárolva. A powershell.config.json fájl egy JSON formátumú fájl, amely a PowerShell-címtárban $PSHOME található. Ha ez a konfigurációs fájl nem létezik, létre kell hoznia az alapértelmezett beállítások módosításához. A PowerShell minden egyes telepítése a fájl saját példányát használja.
A PowerShell alapértelmezés szerint engedélyezi Informational a csatornára való naplózást Operational . A konfigurációt módosíthatja, ha további naplókimenetre van szükség, például részletes vagy analitikus naplókimenet engedélyezésére.
A következő kód egy példakonfiguráció:
{
"ModuleLogging": {
"EnableModuleLogging": false,
"ModuleNames": [
"PSReadLine",
"PowerShellGet"
]
},
"ScriptBlockLogging": {
"EnableScriptBlockInvocationLogging": true,
"EnableScriptBlockLogging": true
},
"LogLevel": "verbose"
}
Az alábbiakban felsoroljuk a PowerShell-naplózás konfigurálásának tulajdonságait. Ha a tulajdonság nem szerepel a konfigurációban, a PowerShell az alapértelmezett értéket használja.
-
LogIdentitás
- Értékek:
<string name>,powershell - Leírás: A naplózáskor használandó név. Az alapértelmezett identitás az
powershell. Ez az érték a PowerShell-telepítés két példánya, például a kiadás és a bétaverzió közötti különbséget jelzi. Ez az érték a naplókimenet külön fájlba való átirányítására is használható.
- Értékek:
-
LogChannels
- Értékek:
Operational,Analytic - Leírás: Az engedélyezni kívánt csatornák. Ha több értéket ad meg, vesszővel elválasztja az értékeket. Az alapértelmezett érték
Operational.
- Értékek:
-
LogLevel
- Értékek:
Always,Critical,Error,Warning,Informational,VerboseDebug - Leírás: Adjon meg egyetlen értéket. Az értékek a részletesség növekvő sorrendjében jelennek meg. A választott érték önmagát és az előtte lévő összes értéket engedélyezi. Az alapértelmezett érték
Informational.
- Értékek:
-
LogKeywords
- Értékek:
Runspace,Pipeline,Protocol,TransportHost,Cmdlets,Serializer, ,Session,ManagedPlugin - Leírás: A kulcsszavak lehetővé teszik a naplózás korlátozását a PowerShell adott összetevőire. Alapértelmezés szerint minden kulcsszó engedélyezve van, és ez az érték csak speciális hibaelhárításhoz hasznos.
- Értékek:
-
PowerShellPolicies
- Leírás: A PowerShellPolicies beállítás tartalmazza a ModuleLogging, a ProtectedEventLogging és a ScriptBlockLogging beállításokat. További információ: Gyakori konfigurációs beállítások.
PowerShell-naplóadatok megtekintése linuxos naplóban
A PowerShell naplózza a rendszerezett naplót olyan Linux-disztribúciók naplózott démonjának használatával, mint az Ubuntu és a Red Hat Enterprise Linux (RHEL).
A naplózott démon bináris formátumban tárolja a naplóüzeneteket.
journalctl A segédprogrammal lekérdezheti a Naplónaplót a PowerShell-bejegyzésekhez.
journalctl --grep powershell
A naplózott démon képes naplóüzeneteket továbbítani a System Logging Protocol (syslog) kiszolgálóra. A naplózott konfigurációs fájlban engedélyezze a ForwardToSysLog/etc/systemd/journald.confbeállítást, ha a linuxos rendszeren a syslog-naplózást szeretné használni. Ez számos Linux-disztribúció alapértelmezett konfigurációja.
PowerShell-naplóadatok megtekintése a linuxos syslogban
A Linux-disztribúció csomagkezelőjével telepítsen egy syslog-kiszolgálót, például az rsyslogot, ha a linuxos rendszeren szeretné használni a syslog-naplózást. Néhány Linux-disztribúció , például az Ubuntu előtelepítési rsyslog.
A syslog protokoll szabványosított szöveges formátumban tárolja a naplóüzeneteket. Bármilyen szövegfeldolgozó segédprogrammal lekérdezheti vagy megtekintheti a syslog tartalmát.
Alapértelmezés szerint a syslog a következő helyre írja a naplóbejegyzéseket:
- Debian-alapú disztribúciókon, beleértve az Ubuntu-t is:
/var/log/syslog - RHEL-alapú disztribúciók esetén:
/var/log/messages
Az alábbi példa a parancs használatával kérdezi le az cat Ubuntu PowerShell-syslog-bejegyzéseit.
cat /var/log/syslog | grep -i powershell
Syslog üzenetformátum
A syslog-üzenetek formátuma a következő:
TIMESTAMP MACHINENAME powershell[PID]: (COMMITID:TID:CID)
[EVENTID:TASK.OPCODE.LEVEL] MESSAGE
- IDŐBÉLYEG – A naplóbejegyzés létrehozásának dátuma/ideje.
- MACHINENAME – Annak a rendszernek a neve, amelyben a naplót létrehozták.
- PID – A naplóbejegyzést megíró folyamat folyamatazonosítója.
- COMMITID – A build létrehozásához használt git véglegesítési azonosító vagy címke.
- TID – A naplóbejegyzést megíró szál azonosítója.
-
CID – A naplóbejegyzés hexa csatornaazonosítója.
- 0x10 = Működési
- 0x11 = Elemzés
- EVENTID – A naplóbejegyzés eseményazonosítója.
- FELADAT – Az eseménybejegyzés tevékenységazonosítója
- OPCODE – Az eseménybejegyzés opcode-kódja
- LEVEL – Az eseménybejegyzés naplószintje
- ÜZENET – Az eseménybejegyzéshez társított üzenet
Az EVENTID, a TASK, az OPCODE és a LEVEL ugyanazokat az értékeket használja, mint a Windows eseménynaplóba való naplózáskor.
PowerShell-naplóüzenet írása külön fájlba
A PowerShell-naplóbejegyzéseket egy külön fájlba is átirányíthatja. Amikor a PowerShell-naplóbejegyzések egy külön fájlba kerülnek, a rendszer már nem naplózza őket az alapértelmezett syslog-fájlba.
Az alábbi lépések konfigurálják a PowerShell-naplóbejegyzéseket az Ubuntu-ban úgy, hogy egy nevű powershell.lognaplófájlba írjanak.
Hozzon létre egy konfigurációs (
conf) fájlt a PowerShell-naplókonfigurációhoz a/etc/rsyslog.dkönyvtárban egy szövegfájl-szerkesztővel, példáulnano. A fájlnév előtagja az alapértelmezettnél kisebb számmal. Például ahol40-powershell.confaz alapértelmezett érték van50-default.conf.sudo nano /etc/rsyslog.d/40-powershell.confAdja hozzá a következő adatokat a
40-powershell.conffájlhoz::syslogtag, contains, "powershell[" /var/log/powershell.log & stopEllenőrizze, hogy van-e
/etc/rsyslog.confbelefoglalási utasítás az új fájlhoz. Lehet benne egy általános utasítás, amely tartalmazza azt, például:$IncludeConfig /etc/rsyslog.d/*.confHa nem, manuálisan kell hozzáadnia egy belefoglalási utasítást.
Ellenőrizze, hogy az attribútumok és engedélyek megfelelően vannak-e beállítva.
ls -l /etc/rsyslog.d/40-powershell.conf-rw-r--r-- 1 root root 67 Nov 28 12:51 40-powershell.confHa a
40-powershell.conffájl tulajdonjoga vagy engedélye eltérő, hajtsa végre a következő lépéseket:Állítsa a tulajdonjogot a gyökérre.
sudo chown root:root /etc/rsyslog.d/40-powershell.confHozzáférési engedélyek beállítása: a gyökér olvasási/írási, olvasási jogosultsággal rendelkezik.
sudo chmod 644 /etc/rsyslog.d/40-powershell.conf
Indítsa újra az rsyslog szolgáltatást.
sudo systemctl restart rsyslog.serviceFuttassa
pwsha PowerShell-adatok naplózáshoz való létrehozásához.pwshFeljegyzés
A
/var/log/powershell.logfájl csak akkor jön létre, ha az rsyslog szolgáltatás újraindul, és a PowerShell adatokat hoz létre a naplózáshoz.A fájl lekérdezésével
powershell.logellenőrizze, hogy a PowerShell-adatok naplózása folyamatban van-e az új fájlba.cat /var/log/powershell.log
PowerShell-naplóadatok megtekintése macOS rendszeren
A PowerShell naplózza az Apple egyesített naplózási rendszerét, amely a macOS egyik funkciója, amely lehetővé teszi a rendszer- és alkalmazásnaplók egyetlen központi helyen történő gyűjtését és tárolását.
Az Apple egyesített naplózási rendszere bináris formátumban tárolja a naplóüzeneteket. Az eszközzel le kell log kérdeznie a PowerShell-naplóesemények egyesített naplózási rendszerét. A PowerShell-naplóesemények nem jelennek meg a macOS konzolalkalmazásban . A konzolalkalmazás az egyesített naplózási rendszert megelőző régebbi syslog-alapú naplózáshoz készült.
PowerShell-naplóadatok megtekintése a macOS parancssorából
Ha macOS-alapú parancssorból szeretné megtekinteni a PowerShell-naplóadatokat, használja a log parancsot a Terminálban vagy más rendszerhéj-gazdagépalkalmazásban. Ezek a parancsok a PowerShellből, a Z Shellből vagy a Bashből futtathatók.
Az alábbi példában a log parancs a rendszer naplóadatainak valós időben történő megjelenítésére szolgál. A folyamatparaméter csak a folyamat naplóadatait szűri pwsh . Ha több futtatási példánya pwsh is van, a folyamatparaméter egy folyamatazonosítót is elfogad értékként. A szintparaméter a megadott szinten és alatt jeleníti meg az üzeneteket.
log stream --predicate "subsystem == 'com.microsoft.powershell'" --level info
A log show parancs a naplóelemek exportálására használható. A log show parancs lehetőséget biztosít az utolsó N elemek, az adott időpont óta eltelt elemek vagy egy adott időtartamon belüli elemek exportálására.
Például a következő parancs exportálja az elemeket:9am on April 5, 2022
log show --start "2022-04-05 09:00:00" --predicate "subsystem == 'com.microsoft.powershell'"
További információkért futtassa log show --help a parancs súgóját log show .
A naplóadatokat JSON formátumban is kiadhatja, így az eseményadatokat PowerShell-objektumokká konvertálhatja. Az alábbi példa JSON formátumban adja ki az eseményeket. A ConvertFrom-Json parancsmag a JSON-adatok PowerShell-objektumokká való konvertálására szolgál, a rendszer a változóban tárolja őket $logRecord .
log show --predicate "subsystem == 'com.microsoft.powershell'" --style json |
ConvertFrom-Json | Set-Variable logRecord
Érdemes lehet a naplókat biztonságosabb helyre menteni, például a Biztonsági információk és az Eseménykezelés (SIEM) összesítőt. Az Felhőhöz készült Microsoft Defender Apps használatával beállíthatja a SIEM-et az Azure-ban. További információ: Általános SIEM-integráció.
PowerShell-naplóadatok módjai és szintjei macOS rendszeren
A PowerShell-alrendszer alapértelmezés szerint naplózza az információs szintű üzeneteket a memóriába (módba) és az alapértelmezett szintű üzeneteket a lemezre (adatmegőrzés) macOS rendszeren. Ez a viselkedés módosítható úgy, hogy a parancs használatával más módot és szintű naplózást log config engedélyezhessen.
Az alábbi példa adatszintű naplózást és adatmegőrzést tesz lehetővé a PowerShell-alrendszerben:
sudo log config --subsystem com.microsoft.powershell --mode level:info,persist:info
A visszaállítási paraméterrel visszaállíthatja a naplóbeállításokat a PowerShell-alrendszer alapértelmezett beállításaira:
sudo log config --subsystem com.microsoft.powershell --reset
Lásd még
- Linux syslog és rsyslog.conf információkért tekintse meg a Linux-számítógép helyi
manlapjait - A macOS naplózási információiért tekintse meg az Apple naplózással kapcsolatos fejlesztői dokumentációját
- Windows esetén lásd: about_Logging_Windows
- Általános SIEM-integráció