about_Logging_Non-Windows
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
man
Linux-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, LogPipelineExecutionDetails
Name LogPipelineExecutionDetails ---- --------------------------- PSReadLine True
Szkriptblokkok 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 általa feldolgozott összes szkriptblokk tartalmát. 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
,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
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, 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.conf
beá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.log
naplófájlba írjanak.
Hozzon létre egy konfigurációs (
conf
) fájlt a PowerShell-naplókonfigurációhoz a/etc/rsyslog.d
kö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.conf
az alapértelmezett érték van50-default.conf
.sudo nano /etc/rsyslog.d/40-powershell.conf
Adja hozzá a következő adatokat a
40-powershell.conf
fájlhoz::syslogtag, contains, "powershell[" /var/log/powershell.log & stop
Ellenőrizze, hogy van-e
/etc/rsyslog.conf
belefoglalá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/*.conf
Ha 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.conf
Ha a
40-powershell.conf
fá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.conf
Hozzá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.service
Futtassa
pwsh
a PowerShell-adatok naplózáshoz való létrehozásához.pwsh
Feljegyzés
A
/var/log/powershell.log
fá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.log
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 konzolalkalmazás vagy a naplóeszköz használatával lekérdezheti a PowerShell-bejegyzések egyesített naplózási rendszerét.
PowerShell-naplóadatok megtekintése a macOS konzolalkalmazásban
A macOS konzolalkalmazás egy segédprogram, amely grafikus felhasználói felületet biztosít a naplóadatok megtekintéséhez. A konzolalkalmazás alapértelmezés szerint a macOS részét képezi, és az Alkalmazások mappában található Segédprogramok mappa megnyitásával érhető el.
Az alábbi lépésekkel megtekintheti a PowerShell-naplóadatokat a macOS konzolalkalmazásban:
- Keresse meg a konzolalkalmazást, és indítsa el.
- Válassza ki a gép nevét az Eszközök területen.
- A Keresés mezőbe írja be a PowerShell fő bináris fájljának nevét
pwsh
, és nyomja le a Return billentyűt. - Módosítsa a keresési szűrőt a következőre
Any
Process
: . - Rövid útmutató.
- Futtassa
pwsh
a PowerShell-adatok naplózáshoz való létrehozásához.
A PowerShell futó példányának folyamatazonosítója a $PID
változóban van tárolva. Az alábbi lépésekkel szűrhet a PowerShell egy adott folyamatpéldányára a konzolalkalmazásban .
- Futtasson egy példányt.
pwsh
- Futtassa
$PID
az előző lépésben elindított PowerShell-példányban a folyamatazonosító meghatározásához. - Írja be a folyamatazonosítót
pwsh
a Keresés mezőbe, és nyomja le a Return billentyűt. - Módosítsa a keresési szűrőt a következőre
Any
PID
: . - Rövid útmutató.
- PowerShell-adatok létrehozása a PowerShell első lépésben elindított példányából való naplózáshoz.
További információ: Naplóüzenetek megtekintése a Mac konzolon.
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 (Zsh) 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 --process pwsh --level info
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
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 of 2022
log show --info --start "2022-04-05 09:00:00" --process pwsh
További információkért futtassa log show --help
a parancs súgóját log show
.
É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ó.
Lásd még
- Linux syslog és rsyslog.conf információkért tekintse meg a Linux-számítógép helyi
man
lapjait - 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ó
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: