Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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óért lásd: about_Logging.
A PowerShell-naplók helye a célplatformtól függ.
- Linux rendszeren a PowerShell a systemd naplóba naplózza az eseményeket, amelyek továbbíthatók egy syslog kiszolgálóra. További információkért tekintse meg a Linux-disztribúció
manlapjait. - MacOS rendszeren az Apple egyesített naplózási rendszere van használatban. További információért tekintse meg az Apple fejlesztői dokumentációját a naplózásról.
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. A naplózás konfigurálásával kapcsolatos további információkért lásd: about_PowerShell_Config.
Ha a modulnaplózás konfigurációval van engedélyezve, engedélyezheti és letilthatja a naplózást egy munkamenet adott moduljaihoz a modul LogPipelineExecutionDetails tulajdonságának beállításával.
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.
Jegyzet
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 való naplózás konfigurációja a powershell.config.json fájlban van tárolva. A powershell.config.json fájl egy JSON- formázott fájl, amely a PowerShell $PSHOME könyvtárban 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 a Informational naplózási funkciót a Operational csatornára. 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.
-
LogIdentity
- Értékek:
<string name>,powershell - Leírás: A naplózáskor használandó név. Az alapértelmezett identitás
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 a
Operational.
- Értékek:
-
LogLevel
- Értékek:
Always,Critical,Error,Warning,Informational,Verbose,Debug - 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 a
Informational.
- Értékek:
-
LogKeywords
- Értékek:
Runspace,Pipeline,Protocol,Transport,Host,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, ProtectedEventLoggingés 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, a naplózott démon használatával olyan Linux-disztribúciókon, mint az Ubuntu és a Red Hat Enterprise Linux (RHEL).
A naplózott démon bináris formátumban tárolja a naplóüzeneteket. A journalctl 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. Engedélyezze a ForwardToSysLog beállítást a /etc/systemd/journald.confnaplózott konfigurációs fájlban, ha syslog naplózást szeretne használni a Linux rendszeren. 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íthet egy syslog-kiszolgálót, például rsyslog, ha a linuxos rendszeren a syslog-naplózást szeretné használni. Néhány Linux-disztribúció, például az Ubuntu előre telepítve van a 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 syslog tartalmát.
Alapértelmezés szerint syslog naplóbejegyzéseket ír a következő helyre:
- Debian-alapú disztribúciókon, beleértve az Ubuntu:
/var/log/syslog - RHEL-alapú disztribúciókon:
/var/log/messages
Az alábbi példa a cat paranccsal kérdezi le a PowerShell syslog bejegyzéseit az Ubuntu-on.
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
- TIMESTAMP – A naplóbejegyzés létrehozásának dátuma/ideje.
- MACHINENAME – Annak a rendszernek a neve, amelyben a napló készült.
- PID – A naplóbejegyzést megíró folyamat folyamatazonosítója.
- COMMITID – A build létrehozásához használt git commit azonosítója vagy címkéje.
- TID – A naplóbejegyzést író szál azonosítója.
-
CID – A naplóbejegyzés hexa csatornaazonosítója.
- 0x10 = Működőképes
- 0x11 = Elemzés
- EVENTID – A naplóbejegyzés eseményazonosítója.
- TASK – 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
EVENTID, TASK, OPCODEés LEVEL ugyanazok az értékek, 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, hogy egy powershell.lognevű napló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. Lásd el a fájlnevet az alapértelmezettnél kisebb számmal. Például40-powershell.conf, ahol az alapértelmezett érték50-default.conf.sudo nano /etc/rsyslog.d/40-powershell.confAdja hozzá a következő információkat a
40-powershell.conffájlhoz::syslogtag, contains, "powershell[" /var/log/powershell.log & stopEllenőrizze, hogy
/etc/rsyslog.conftartalmaz-e utasítást 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 include 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 az alábbi lépéseket:A tulajdonosi jogosultságot állítsd be a gyökér.
sudo chown root:root /etc/rsyslog.d/40-powershell.confHozzáférési engedélyek beállítása: root felhasználó olvasási/írási jog, felhasználók olvasási jog.
sudo chmod 644 /etc/rsyslog.d/40-powershell.conf
Indítsa újra a rsyslog szolgáltatást.
sudo systemctl restart rsyslog.serviceFuttassa a
pwsh-t a PowerShell-információ generálásához a naplózáshoz.pwshJegyzet
A
/var/log/powershell.logfájl csak akkor jön létre, ha a rsyslog szolgáltatás újraindul, és a PowerShell naplózandó információkat hoz létre.A
powershell.logfájl lekérdezésével ellenő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. A PowerShell-naplóesemények egyesített naplózási rendszerének lekérdezéséhez az log eszközt kell használnia. A PowerShell-naplóesemények nem jelennek meg a Konzol alkalmazásban macOS rendszeren. 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 rendszerű parancssorból szeretné megtekinteni a PowerShell-naplóadatokat, használja a log parancsot a Terminál vagy más rendszerhéj-gazdagépalkalmazásban. Ezek a parancsok futtathatók PowerShell, Z Shellvagy Bash.
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 folyamat paraméter csak a pwsh folyamat naplóadatait szűri. Ha a pwsh egynél több példánya fut, a folyamat paraméter a folyamatazonosítót is elfogadja értékként. A szintű paramé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 paranccsal exportálhatja az utolsó N elemeket, elemeket egy adott időpont óta, vagy egy adott időtartamon belül.
Például a következő parancs exportálja az elemeket 9am on April 5, 2022óta:
log show --start "2022-04-05 09:00:00" --predicate "subsystem == 'com.microsoft.powershell'"
További információkért futtassa a log show --help a log show parancs súgójának megtekintéséhez.
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-adatokat PowerShell-objektumokká alakítja, amelyeket a $logRecord változóban tárolnak.
log show --predicate "subsystem == 'com.microsoft.powershell'" --style json |
ConvertFrom-Json | Set-Variable logRecord
Érdemes lehet biztonságosabb helyre menteni a naplókat, például biztonsági információk és eseménykezelés (SIEM) aggregátort. A Microsoft Defender for Cloud Apps használatával beállíthatja a SIEM-et az Azure-ban. További információért lásd: SIEM Általános 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 úgy módosítható, hogy a log config paranccsal más módú és szintű naplózást 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 állítsa vissza 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 - MacOS naplózásról szóló információkért tekintse meg az Apple fejlesztői dokumentációját a naplózásról
- Windows esetén lásd: about_Logging_Windows
- Általános SIEM integráció