From 40fa971f06ccdc5b0107949139ed17a708246ec8 Mon Sep 17 00:00:00 2001 From: wpanda Date: Mon, 16 Mar 2026 12:31:44 +0100 Subject: [PATCH] . --- GEMINI_sharepoint_concept.md | 60 +++---- .../powershell/Drucker_Überwachung_0.1.ps1 | 47 ------ .../powershell/Drucker_Überwachung_0.2.ps1 | 54 ------- .../powershell/Drucker_Überwachung_0.3.ps1 | 75 --------- .../powershell/Drucker_Überwachung_0.4.ps1 | 152 ------------------ .../Drucker_Überwachung_mit_SqlLite_0.1.ps1 | 98 ----------- .../Drucker_Überwachung_mit_SqlLite_0.2.ps1 | 101 ------------ .../Drucklog_MySQL_0.1-from-Dev.ps1 | 81 ---------- ...ySQL_0.1.ps1 => drucklog_export_v.0.1.ps1} | 13 +- Scripts/powershell/o365_mail.ps1 | 91 ----------- 10 files changed, 34 insertions(+), 738 deletions(-) delete mode 100644 Scripts/powershell/Drucker_Überwachung_0.1.ps1 delete mode 100644 Scripts/powershell/Drucker_Überwachung_0.2.ps1 delete mode 100644 Scripts/powershell/Drucker_Überwachung_0.3.ps1 delete mode 100644 Scripts/powershell/Drucker_Überwachung_0.4.ps1 delete mode 100644 Scripts/powershell/Drucker_Überwachung_mit_SqlLite_0.1.ps1 delete mode 100644 Scripts/powershell/Drucker_Überwachung_mit_SqlLite_0.2.ps1 delete mode 100644 Scripts/powershell/Drucklog_MySQL_0.1-from-Dev.ps1 rename Scripts/powershell/{Drucklog_MySQL_0.1.ps1 => drucklog_export_v.0.1.ps1} (93%) delete mode 100644 Scripts/powershell/o365_mail.ps1 diff --git a/GEMINI_sharepoint_concept.md b/GEMINI_sharepoint_concept.md index b800419..375e440 100644 --- a/GEMINI_sharepoint_concept.md +++ b/GEMINI_sharepoint_concept.md @@ -5,47 +5,37 @@ Egy központi, felhőalapú (O365) platform létrehozása az IT részleg összes ## 2. Webhely Típusa - **Típus:** SharePoint Team Site (**Privát**) -- **Név javaslat:** `IT Internal Repository` -- **Hozzáférés:** Kizárólag az IT csapat tagjai számára. +- **Név:** `IT Internal Repository` +- **Hozzáférés:** Kizárólag az IT csapat tagjai számára (Tulajdonosok és Tagok). -## 3. Javasolt Struktúra (Dokumentumtárak) -A meglévő helyi struktúra alapján az alábbi könyvtárakat hozzuk létre: +## 3. Végleges Struktúra (Dokumentumtárak) +A SharePoint felületen kialakított mappaszerkezet: -- **01_Infrastructure (Infrastruktúra):** - - Switch konfigok (`Conf/Switch/`), szerver beállítások (`Conf/aps.local/`), hálózati rajzok. - - *Metaadat javaslat:* Eszköz típusa, Gyártó. -- **02_Development_Projects (Projektek):** - - Docker fájlok, n8n munkafolyamatok, Python fejlesztések (`Dev/`). - - *Cél:* Fejlesztési dokumentáció és kódminták. -- **03_Knowledge_Base (Wiki / SOP):** - - Telepítési útmutatók, hibajegy-megoldások, folyamatleírások (`Doc/`). - - *Formátum:* SharePoint Pages vagy Markdown. -- **04_Automation_Scripts (Szkriptek):** - - Bash, PowerShell, Python szkriptek gyűjteménye (`Scripts/`). - - *Előny:* Felhőből bárhonnan elérhető kódminták. -- **05_Archive (Archívum):** - - Régi backupok, kifutott projektek (`Backup/`). +- **01_Infrastructure:** Postfix konfigok, Switch beállítások, hálózati rajzok. +- **02_Software:** Telepítőfájlok (.zip, .exe), szoftveres dokumentációk. +- **03_Knowledge_Base:** Általános IT útmutatók és Markdown (.md) dokumentumok. +- **04_Automation_Scripts:** Python és Bash szkriptek gyűjteménye. +- **05_Archive:** Régi mentések és logok. ## 4. Technikai Funkciók (IT Fókusz) -- **Verziókezelés:** Minden fájl módosítása visszakövethető (SharePoint Version History). -- **OneDrive Sync:** A fájlok helyi (Windows/Linux) szerkesztése és automatikus szinkronizációja (VS Code ajánlott). -- **Markdown és Plain Text (.txt) Stratégia:** - - A technikai dokumentáció (.md) és a nyers konfigurációk (.txt, .conf, .sh) eredeti formátumban maradnak. - - A switch konfigok (.txt) közvetlenül olvashatók és kereshetők a SharePoint webes felületén. - - A verziókövetés lehetővé teszi a konfigurációk közötti különbségek követését. - - A képek megjelenítése miatt a komplex dokumentációhoz a helyi szerkesztés (VS Code + OneDrive) ajánlott. +- **SOP (Wiki) Oldalak:** Modern SharePoint oldalakat használunk a folyamatok leírására (német nyelven a kollégáknak). +- **Code Snippets:** A kódminták szintaxis-kiemeléssel jelennek meg az oldalakon. +- **Verziókezelés:** Minden fájl módosítása visszakövethető. +- **OneDrive Sync:** Windows/WSL környezetből való kényelmes feltöltés és szinkronizáció. -- **Teams Integráció:** - - A SharePoint webhelyhez kapcsolódó Teams csapat automatikusan létrejön. - - A dokumentumtárak (Libraries) külön fülként (Tab) hozzáadhatók a Teams csatornákhoz. - - Gyors elérés: Fájlok megtekintése és alapvető szerkesztése közvetlenül a Teams felületén. - - Központi keresés: A Teams keresője megtalálja a SharePointon tárolt konfigokat és leírásokat is. - -## 5. Következő Lépések (Teendők) +## 5. Elvégzett és Következő Lépések - [x] Célközönség meghatározása (Csak IT). -- [ ] Üres SharePoint Site létrehozása (Privát Team Site). -- [ ] Dokumentumtárak (Libraries) létrehozása a fenti struktúra szerint. -- [ ] Kezdeti adatok feltöltése (OneDrive szinkronizációval). +- [x] Privát SharePoint Team Site létrehozása. +- [x] Dokumentumtárak (Libraries) kialakítása (01-05). +- [x] Kezdőlap (Dashboard) testreszabása (Hero, Schnelllinks). +- [x] Első SOP (Wiki) oldalak létrehozása (Német nyelven). +- [ ] Teljes adatkészlet feltöltése (OneDrive szinkronizáció befejezése). +- [ ] Teams integráció véglegesítése (Tab-ok hozzáadása). + +## 6. Megvalósított SOP Oldalak (2026.03.16) +- **SOP: Automatisierter PDF-Import aus O365 (v2.2)** +- **SOP: Bereinigung alter Datensätze (delete_old_records.py)** +- **SOP: Konfiguration Postfix SMTP Relay (APS-SMTP01)** --- *Ez a dokumentum a Gemini CLI segítségével készült, és a projekt aktuális állapotát tükrözi.* diff --git a/Scripts/powershell/Drucker_Überwachung_0.1.ps1 b/Scripts/powershell/Drucker_Überwachung_0.1.ps1 deleted file mode 100644 index 7cb9761..0000000 --- a/Scripts/powershell/Drucker_Überwachung_0.1.ps1 +++ /dev/null @@ -1,47 +0,0 @@ -$events = Get-WinEvent -LogName "Microsoft-Windows-PrintService/Operational" -MaxEvents 500 | - Where-Object { $_.Id -eq 307 } - -$logList = @() - -foreach ($event in $events) { - $message = $event.Message - $user = "" - $document = "" - $printer = "" - $pages = "" - - # Felhasználó (pl. L.Vogt auf APS-NB072) - if ($message -match "im Besitz von (.+?) wurde auf") { - $user = $matches[1].Trim() - } - - # Nyomtató neve (pl. Jasenitz) - if ($message -match "wurde auf (.+?) über Port") { - $printer = $matches[1].Trim() - } - - # Oldalszám (pl. Gedruckte Seiten: 1) - if ($message -match "Gedruckte Seiten:\s+(\d+)") { - $pages = $matches[1] - } - - # Dokumentum sorszám (pl. Dokument 62) – jobb híján - if ($message -match "^Dokument\s+(\d+)") { - $document = "Dokument " + $matches[1] - } - - $logList += [PSCustomObject]@{ - Datum = $event.TimeCreated - Benutzer = $user - Dokument = $document - Drucker = $printer - Seiten = $pages - } -} - -# Exportálás CSV-be -$exportPfad = "$env:USERPROFILE\Desktop\drucklog_export.csv" -$logList | Export-Csv -Path $exportPfad -NoTypeInformation -Encoding UTF8 - -Write-Host "Exportálás kész: $exportPfad" - diff --git a/Scripts/powershell/Drucker_Überwachung_0.2.ps1 b/Scripts/powershell/Drucker_Überwachung_0.2.ps1 deleted file mode 100644 index da854d7..0000000 --- a/Scripts/powershell/Drucker_Überwachung_0.2.ps1 +++ /dev/null @@ -1,54 +0,0 @@ -$events = Get-WinEvent -LogName "Microsoft-Windows-PrintService/Operational" -MaxEvents 500 | - Where-Object { $_.Id -eq 307 } - -$logList = @() - -foreach ($event in $events) { - $message = $event.Message - $user = "" - $computer = "" - $document = "" - $printer = "" - $pages = "" - - # Felhasználó és gép különválasztása - if ($message -match "im Besitz von (.+?) wurde auf") { - $fullUser = $matches[1].Trim() - if ($fullUser -match "^(.+?) auf (.+)$") { - $user = $matches[1].Trim() - $computer = $matches[2].Trim() - } else { - $user = $fullUser - } - } - - # Nyomtató neve (pl. Jasenitz) - if ($message -match "wurde auf (.+?) über Port") { - $printer = $matches[1].Trim() - } - - # Oldalszám (pl. Gedruckte Seiten: 1) - if ($message -match "Gedruckte Seiten:\s+(\d+)") { - $pages = $matches[1] - } - - # Dokument sorszám (pl. Dokument 62) - if ($message -match "^Dokument\s+(\d+)") { - $document = "Dokument " + $matches[1] - } - - $logList += [PSCustomObject]@{ - Datum = $event.TimeCreated - Benutzer = $user - Computer = $computer - Dokument = $document - Drucker = $printer - Seiten = $pages - } -} - -# Exportálás CSV-be -$exportPfad = "$env:USERPROFILE\Desktop\drucklog_export.csv" -$logList | Export-Csv -Path $exportPfad -NoTypeInformation -Encoding UTF8 - -Write-Host "Exportálás kész: $exportPfad" diff --git a/Scripts/powershell/Drucker_Überwachung_0.3.ps1 b/Scripts/powershell/Drucker_Überwachung_0.3.ps1 deleted file mode 100644 index 665540e..0000000 --- a/Scripts/powershell/Drucker_Überwachung_0.3.ps1 +++ /dev/null @@ -1,75 +0,0 @@ -# Printer Log Report 0.3 -# -# Get-WinEvent on Englische Windows : Get-WinEvent -LogName "Microsoft-Windows-PrintService/Operational" -# Get-WinEvent on Deutsche Windows : Get-WinEvent -LogName "Microsoft-Windows-PrintService/Betriebsbereit" - -$events = Get-WinEvent -LogName "Microsoft-Windows-PrintService/Operational" -MaxEvents 500 | - Where-Object { $_.Id -eq 307 } - -$logList = @() - -foreach ($event in $events) { - $message = $event.Message - $user = "" - $computer = "" - $document = "" - $printer = "" - $pages = 0 - - # Felhasználó és gép különválasztása - if ($message -match "im Besitz von (.+?) wurde auf") { - $fullUser = $matches[1].Trim() - if ($fullUser -match "^(.+?) auf (.+)$") { - $user = $matches[1].Trim() - $computer = $matches[2].Trim() - } else { - $user = $fullUser - } - } - - # Nyomtató neve (pl. Jasenitz) - if ($message -match "wurde auf (.+?) über Port") { - $printer = $matches[1].Trim() - } - - # Oldalszám (pl. Gedruckte Seiten: 1) - if ($message -match "Gedruckte Seiten:\s+(\d+)") { - $pages = [int]$matches[1] - } - - # Dokument sorszám (pl. Dokument 62) - if ($message -match "^Dokument\s+(\d+)") { - $document = "Dokument " + $matches[1] - } - - $logList += [PSCustomObject]@{ - Datum = $event.TimeCreated - Benutzer = $user - Computer = $computer - Dokument = $document - Drucker = $printer - Seiten = $pages - } -} - -# Export részletes lista -$exportPfad = "$env:USERPROFILE\Desktop\drucklog_export.csv" -$logList | Export-Csv -Path $exportPfad -NoTypeInformation -Encoding UTF8 - -# ✅ Összesítés felhasználónként -$summary = $logList | Group-Object -Property Benutzer | ForEach-Object { - $userGroup = $_.Group - [PSCustomObject]@{ - Benutzer = $_.Name - Anzahl_Dokumente = $userGroup.Count - Gesamt_Seiten = ($userGroup | Measure-Object -Property Seiten -Sum).Sum - } -} - -# Export összesítés -$summaryPfad = "$env:USERPROFILE\Desktop\drucklog_summary.csv" -$summary | Export-Csv -Path $summaryPfad -NoTypeInformation -Encoding UTF8 - -Write-Host "Exportálás kész:" -Write-Host "- Részletes lista: $exportPfad" -Write-Host "- Felhasználónkénti összesítés: $summaryPfad" diff --git a/Scripts/powershell/Drucker_Überwachung_0.4.ps1 b/Scripts/powershell/Drucker_Überwachung_0.4.ps1 deleted file mode 100644 index 7f5ee4c..0000000 --- a/Scripts/powershell/Drucker_Überwachung_0.4.ps1 +++ /dev/null @@ -1,152 +0,0 @@ -# Printer Log Report 0.3 -# -# Get-WinEvent on Englische Windows : Get-WinEvent -LogName "Microsoft-Windows-PrintService/Operational" -# Get-WinEvent on Deutsche Windows : Get-WinEvent -LogName "Microsoft-Windows-PrintService/Betriebsbereit" - - -$events = Get-WinEvent -LogName "Microsoft-Windows-PrintService/Operational" -MaxEvents 2000 | - Where-Object { $_.Id -eq 307 } - -$logList = @() - -foreach ($event in $events) { - $message = $event.Message - $user = "" - $computer = "" - $document = "" - $printer = "" - $pages = 0 - - if ($message -match "im Besitz von (.+?) wurde auf") { - $fullUser = $matches[1].Trim() - if ($fullUser -match "^(.+?) auf (.+)$") { - $user = $matches[1].Trim() - $computer = $matches[2].Trim() - } else { - $user = $fullUser - } - } - - if ($message -match "wurde auf (.+?) über Port") { - $printer = $matches[1].Trim() - } - - if ($message -match "Gedruckte Seiten:\s+(\d+)") { - $pages = [int]$matches[1] - } - - if ($message -match "^Dokument\s+(\d+)") { - $document = "Dokument " + $matches[1] - } - - $logList += [PSCustomObject]@{ - Datum = $event.TimeCreated - Tag = $event.TimeCreated.Date.ToString("yyyy-MM-dd") - Woche = Get-Date $event.TimeCreated -UFormat "%Y-W%V" - Benutzer = $user - Computer = $computer - Dokument = $document - Drucker = $printer - Seiten = $pages - } -} - -# 🔹 Export részletes lista -$exportPfad = "$env:USERPROFILE\Desktop\drucklog_export.csv" -$logList | Export-Csv -Path $exportPfad -NoTypeInformation -Encoding UTF8 - -# 🔸 Összesítés felhasználónként (teljes) -$summary = $logList | Group-Object -Property Benutzer | ForEach-Object { - $userGroup = $_.Group - [PSCustomObject]@{ - Benutzer = $_.Name - Anzahl_Dokumente = $userGroup.Count - Gesamt_Seiten = ($userGroup | Measure-Object -Property Seiten -Sum).Sum - } -} -$summary | Export-Csv -Path "$env:USERPROFILE\Desktop\drucklog_summary.csv" -NoTypeInformation -Encoding UTF8 - -# 🔸 Napi összesítés felhasználónként -$dailySummary = $logList | Group-Object -Property Tag, Benutzer | ForEach-Object { - $day = $_.Group[0].Tag - $user = $_.Group[0].Benutzer - $pages = ($_.Group | Measure-Object -Property Seiten -Sum).Sum - $docs = $_.Count - - [PSCustomObject]@{ - Datum = $day - Benutzer = $user - Dokumente = $docs - Seiten = $pages - } -} -$dailySummary | Export-Csv -Path "$env:USERPROFILE\Desktop\drucklog_daily.csv" -NoTypeInformation -Encoding UTF8 - -# 🔸 Heti összesítés felhasználónként (ISO hét formátum: pl. 2025-W30) -$weeklySummary = $logList | Group-Object -Property Woche, Benutzer | ForEach-Object { - $week = $_.Group[0].Woche - $user = $_.Group[0].Benutzer - $pages = ($_.Group | Measure-Object -Property Seiten -Sum).Sum - $docs = $_.Count - - [PSCustomObject]@{ - Woche = $week - Benutzer = $user - Dokumente = $docs - Seiten = $pages - } -} -$weeklySummary | Export-Csv -Path "$env:USERPROFILE\Desktop\drucklog_weekly.csv" -NoTypeInformation -Encoding UTF8 - -Write-Host "Exportálás kész:" -Write-Host "- Részletes lista: drucklog_export.csv" -Write-Host "- Összesítés: drucklog_summary.csv" -Write-Host "- Napi összesítés: drucklog_daily.csv" -Write-Host "- Heti összesítés: drucklog_weekly.csv" - -# 🔸 Nyomtatónkénti összesítés -$printerSummary = $logList | Group-Object -Property Drucker | ForEach-Object { - $printer = $_.Name - $pages = ($_.Group | Measure-Object -Property Seiten -Sum).Sum - $docs = $_.Count - - [PSCustomObject]@{ - Drucker = $printer - Dokumente = $docs - Seiten = $pages - } -} - -$printerSummary | Export-Csv -Path "$env:USERPROFILE\Desktop\drucklog_by_printer.csv" -NoTypeInformation -Encoding UTF8 - -# 🔸 Napi összesítés nyomtatónként -$dailyPrinterSummary = $logList | Group-Object -Property Tag, Drucker | ForEach-Object { - $day = $_.Group[0].Tag - $printer = $_.Group[0].Drucker - $pages = ($_.Group | Measure-Object -Property Seiten -Sum).Sum - $docs = $_.Count - - [PSCustomObject]@{ - Datum = $day - Drucker = $printer - Dokumente = $docs - Seiten = $pages - } -} -$dailyPrinterSummary | Export-Csv -Path "$env:USERPROFILE\Desktop\drucklog_daily_by_printer.csv" -NoTypeInformation -Encoding UTF8 - -# 🔸 Heti összesítés nyomtatónként -$weeklyPrinterSummary = $logList | Group-Object -Property Woche, Drucker | ForEach-Object { - $week = $_.Group[0].Woche - $printer = $_.Group[0].Drucker - $pages = ($_.Group | Measure-Object -Property Seiten -Sum).Sum - $docs = $_.Count - - [PSCustomObject]@{ - Woche = $week - Drucker = $printer - Dokumente = $docs - Seiten = $pages - } -} -$weeklyPrinterSummary | Export-Csv -Path "$env:USERPROFILE\Desktop\drucklog_weekly_by_printer.csv" -NoTypeInformation -Encoding UTF8 diff --git a/Scripts/powershell/Drucker_Überwachung_mit_SqlLite_0.1.ps1 b/Scripts/powershell/Drucker_Überwachung_mit_SqlLite_0.1.ps1 deleted file mode 100644 index 592eef7..0000000 --- a/Scripts/powershell/Drucker_Überwachung_mit_SqlLite_0.1.ps1 +++ /dev/null @@ -1,98 +0,0 @@ -# Drucklog_Export.ps1 -# Nyomtatási napló beolvasása Event Log-ból, feldolgozása és mentése SQLite adatbázisba duplikációk nélkül -# Fontos modul SQLite feldolgozäshoz -# Install-Module -Name SQLite -Scope CurrentUser -# Import-Module SQLite - -# --- Beállítások --- -$logName = "Microsoft-Windows-PrintService/Operational" -$dbPath = "$env:USERPROFILE\Desktop\drucklog_APS-PRINT01.db" -# $dbPath = "$env:USERPROFILE\Desktop\drucklog_APS-PRINT02.db" - -# --- SQLite kapcsolat --- -# Add-Type -Path "C:\Tools\SQLite\System.Data.SQLite.dll" -$connectionString = "Data Source=$dbPath;Version=3;" -$connection = New-Object System.Data.SQLite.SQLiteConnection($connectionString) -$connection.Open() - -# --- Tábla létrehozása, ha nem létezik --- -$createTableCmd = $connection.CreateCommand() -$createTableCmd.CommandText = @" -CREATE TABLE IF NOT EXISTS drucklog ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - event_id INTEGER UNIQUE, - datum TEXT, - tag TEXT, - woche TEXT, - benutzer TEXT, - computer TEXT, - dokument TEXT, - drucker TEXT, - seiten INTEGER -); -"@ -$createTableCmd.ExecuteNonQuery() - -# --- Események lekérdezése --- -$events = Get-WinEvent -LogName $logName -ErrorAction SilentlyContinue | Where-Object { $_.Id -eq 307 } - -# --- Adatok feldolgozása --- -$logList = foreach ($event in $events) { - $msg = $event.Message - - if ($msg -match "im Besitz von (.+?) auf (.+?) wurde auf (.+?) über Port") { - $benutzer = $matches[1] - $computer = $matches[2] - $drucker = $matches[3] - } - else { - continue - } - - $dokument = if ($msg -match "Dokument (.+?), Dokument drucken") { $matches[1] } else { "Unbekannt" } - $seiten = if ($msg -match "Gedruckte Seiten: (\d+)") { [int]$matches[1] } else { 0 } - - $calendar = [System.Globalization.CultureInfo]::CurrentCulture.Calendar - $weekRule = [System.Globalization.CalendarWeekRule]::FirstFourDayWeek - $firstDay = [System.DayOfWeek]::Monday - $woche = $calendar.GetWeekOfYear($event.TimeCreated, $weekRule, $firstDay) - - [PSCustomObject]@{ - Id = $event.RecordId - Datum = $event.TimeCreated.ToString("yyyy-MM-dd HH:mm:ss") - Tag = $event.TimeCreated.ToString("yyyy-MM-dd") - Woche = $woche - Benutzer = $benutzer - Computer = $computer - Dokument = $dokument - Drucker = $drucker - Seiten = $seiten - } -} - -# --- Adatok mentése adatbázisba, duplikáció nélkül --- -foreach ($row in $logList) { - $checkCmd = $connection.CreateCommand() - $checkCmd.CommandText = "SELECT COUNT(*) FROM drucklog WHERE event_id = @id" - $checkCmd.Parameters.AddWithValue("@id", $row.Id) - $exists = $checkCmd.ExecuteScalar() - - if ($exists -eq 0) { - $insertCmd = $connection.CreateCommand() - $insertCmd.CommandText = "INSERT INTO drucklog (event_id, datum, tag, woche, benutzer, computer, dokument, drucker, seiten) - VALUES (@id, @datum, @tag, @woche, @benutzer, @computer, @dokument, @drucker, @seiten)" - $insertCmd.Parameters.AddWithValue("@id", $row.Id) - $insertCmd.Parameters.AddWithValue("@datum", $row.Datum) - $insertCmd.Parameters.AddWithValue("@tag", $row.Tag) - $insertCmd.Parameters.AddWithValue("@woche", $row.Woche) - $insertCmd.Parameters.AddWithValue("@benutzer", $row.Benutzer) - $insertCmd.Parameters.AddWithValue("@computer", $row.Computer) - $insertCmd.Parameters.AddWithValue("@dokument", $row.Dokument) - $insertCmd.Parameters.AddWithValue("@drucker", $row.Drucker) - $insertCmd.Parameters.AddWithValue("@seiten", $row.Seiten) - $insertCmd.ExecuteNonQuery() - } -} - -$connection.Close() -Write-Host "Sikeresen frissítve: $($logList.Count) esemény feldolgozva." diff --git a/Scripts/powershell/Drucker_Überwachung_mit_SqlLite_0.2.ps1 b/Scripts/powershell/Drucker_Überwachung_mit_SqlLite_0.2.ps1 deleted file mode 100644 index cd478fd..0000000 --- a/Scripts/powershell/Drucker_Überwachung_mit_SqlLite_0.2.ps1 +++ /dev/null @@ -1,101 +0,0 @@ -# Drucklog_Export.ps1 -# Nyomtatási napló beolvasása Event Log-ból, feldolgozása és mentése SQLite adatbázisba duplikációk nélkül -# Fontos modul SQLite feldolgozäshoz -# Install-Module -Name SQLite -Scope CurrentUser -# Import-Module SQLite - -# --- Beállítások --- -$logName = "Microsoft-Windows-PrintService/Operational" -$dbPath = "$env:USERPROFILE\Desktop\drucklog_APS-PRINT01.db" -# $dbPath = "$env:USERPROFILE\Desktop\drucklog_APS-PRINT02.db" - -# --- SQLite kapcsolat --- -# Add-Type -Path "C:\Tools\SQLite\System.Data.SQLite.dll" -$connectionString = "Data Source=$dbPath;Version=3;" -$connection = New-Object System.Data.SQLite.SQLiteConnection($connectionString) -$connection.Open() - -# --- Tábla létrehozása, ha nem létezik --- -$createTableCmd = $connection.CreateCommand() -$createTableCmd.CommandText = @" -CREATE TABLE IF NOT EXISTS drucklog ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - event_id INTEGER UNIQUE, - datum TEXT, - tag TEXT, - woche TEXT, - benutzer TEXT, - computer TEXT, - dokument TEXT, - drucker TEXT, - seiten INTEGER -); -"@ -$createTableCmd.ExecuteNonQuery() - -# --- Események lekérdezése --- -$events = Get-WinEvent -LogName $logName -ErrorAction SilentlyContinue | Where-Object { $_.Id -eq 307 } - -# --- Adatok feldolgozása --- -$logList = foreach ($event in $events) { - $msg = $event.Message - - if ($msg -match "im Besitz von (.+?) auf (.+?) wurde auf (.+?) über Port") { - $benutzer = $matches[1] - $computer = $matches[2] - $drucker = $matches[3] - } - else { - continue - } - - $dokument = if ($msg -match "Dokument (.+?), Dokument drucken") { $matches[1] } else { "Unbekannt" } - $seiten = if ($msg -match "Gedruckte Seiten: (\d+)") { [int]$matches[1] } else { 0 } - - $calendar = [System.Globalization.CultureInfo]::CurrentCulture.Calendar - $weekRule = [System.Globalization.CalendarWeekRule]::FirstFourDayWeek - $firstDay = [System.DayOfWeek]::Monday - $woche = $calendar.GetWeekOfYear($event.TimeCreated, $weekRule, $firstDay) - - [PSCustomObject]@{ - Id = $event.RecordId - Datum = $event.TimeCreated.ToString("yyyy-MM-dd HH:mm:ss") - Tag = $event.TimeCreated.ToString("yyyy-MM-dd") - Woche = $woche - Benutzer = $benutzer - Computer = $computer - Dokument = $dokument - Drucker = $drucker - Seiten = $seiten - } -} - -# --- Adatok mentése adatbázisba, duplikáció nélkül --- -$ujBejegyzesek = 0 -foreach ($row in $logList) { - $checkCmd = $connection.CreateCommand() - $checkCmd.CommandText = "SELECT COUNT(*) FROM drucklog WHERE event_id = @id" - $checkCmd.Parameters.AddWithValue("@id", $row.Id) - $exists = $checkCmd.ExecuteScalar() - - if ($exists -eq 0) { - $insertCmd = $connection.CreateCommand() - $insertCmd.CommandText = "INSERT INTO drucklog (event_id, datum, tag, woche, benutzer, computer, dokument, drucker, seiten) - VALUES (@id, @datum, @tag, @woche, @benutzer, @computer, @dokument, @drucker, @seiten)" - $insertCmd.Parameters.AddWithValue("@id", $row.Id) - $insertCmd.Parameters.AddWithValue("@datum", $row.Datum) - $insertCmd.Parameters.AddWithValue("@tag", $row.Tag) - $insertCmd.Parameters.AddWithValue("@woche", $row.Woche) - $insertCmd.Parameters.AddWithValue("@benutzer", $row.Benutzer) - $insertCmd.Parameters.AddWithValue("@computer", $row.Computer) - $insertCmd.Parameters.AddWithValue("@dokument", $row.Dokument) - $insertCmd.Parameters.AddWithValue("@drucker", $row.Drucker) - $insertCmd.Parameters.AddWithValue("@seiten", $row.Seiten) - $insertCmd.ExecuteNonQuery() - $ujBejegyzesek++ - } -} - -$connection.Close() -Write-Host "Sikeresen frissítve: $($logList.Count) esemény feldolgozva." -Write-Host "Új bejegyzések az adatbázisban: $ujBejegyzesek" diff --git a/Scripts/powershell/Drucklog_MySQL_0.1-from-Dev.ps1 b/Scripts/powershell/Drucklog_MySQL_0.1-from-Dev.ps1 deleted file mode 100644 index 8700fa0..0000000 --- a/Scripts/powershell/Drucklog_MySQL_0.1-from-Dev.ps1 +++ /dev/null @@ -1,81 +0,0 @@ -# Drucklog_MySQL.ps1 -# Install-Module MySQLCmdlets -# Nyomtatási napló export MySQL adatbázisba -# Aufgabeplannung: Taglich um 8.00 Uhr -# Name: Drucklog_MySQL_0.1.ps1 -# powershell.exe -ExecutionPolicy Bypass -File "-ExecutionPolicy Bypass -File "C:\Tools\drucklog_export_0.1.ps1" - -# Beállítások -$logName = "Microsoft-Windows-PrintService/Operational" -$mysqlHost = "10.101.0.82" -$mysqlUser = "druckloguser" -$mysqlPassword = "Test123#" -$mysqlDatabase = "drucklog" -$quelleServer = $env:COMPUTERNAME # vagy: "Szerver01" - -# MySQL .NET csomag betöltése (előzetesen szükséges: MySql.Data.dll) -# Add-Type -Path "C:\Tools\MySql.Data.dll" -# Add-Type -Path "C:\Program Files (x86)\MySQL\MySQL Connector NET 9.4\MySql.Data.dll" -[Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\MySQL\MySQL Connector NET 9.4\MySql.Data.dll") | Out-Null - -# Kapcsolódás -$connectionString = "server=$mysqlHost;user id=$mysqlUser;password=$mysqlPassword;database=$mysqlDatabase;SslMode=none" -$connection = New-Object MySql.Data.MySqlClient.MySqlConnection($connectionString) -$connection.Open() - -# Lekérés a logból -$events = Get-WinEvent -LogName $logName -ErrorAction SilentlyContinue | Where-Object { $_.Id -eq 307 } - -# Kulturális beállítás a heti számításhoz -$calendar = [System.Globalization.CultureInfo]::CurrentCulture.Calendar -$weekRule = [System.Globalization.CalendarWeekRule]::FirstFourDayWeek -$firstDay = [System.DayOfWeek]::Monday - -$ujBejegyzes = 0 - -foreach ($event in $events) { - $msg = $event.Message - - if ($msg -match "im Besitz von (.+?) auf (.+?) wurde auf (.+?) über Port") { - $benutzer = $matches[1] - $computer = $matches[2] - $drucker = $matches[3] - } else { - continue - } - - $dokument = if ($msg -match "Dokument (.+?), Dokument drucken") { $matches[1] } else { "Unbekannt" } - $seiten = if ($msg -match "Gedruckte Seiten: (\d+)") { [int]$matches[1] } else { 0 } - $woche = $calendar.GetWeekOfYear($event.TimeCreated, $weekRule, $firstDay) - $datum = $event.TimeCreated.ToString("yyyy-MM-dd HH:mm:ss") - $tag = $event.TimeCreated.ToString("yyyy-MM-dd") - $id = $event.RecordId - - # Duplikáció ellenőrzés - $checkCmd = $connection.CreateCommand() - $checkCmd.CommandText = "SELECT COUNT(*) FROM drucklog WHERE event_id = @id AND quelle_server = @qs" - $checkCmd.Parameters.AddWithValue("@id", $id) - $checkCmd.Parameters.AddWithValue("@qs", $quelleServer) - $exists = $checkCmd.ExecuteScalar() - - if ($exists -eq 0) { - $insertCmd = $connection.CreateCommand() - $insertCmd.CommandText = "INSERT INTO drucklog (event_id, datum, tag, woche, benutzer, computer, dokument, drucker, seiten, quelle_server) - VALUES (@id, @datum, @tag, @woche, @benutzer, @computer, @dokument, @drucker, @seiten, @qs)" - $insertCmd.Parameters.AddWithValue("@id", $id) - $insertCmd.Parameters.AddWithValue("@datum", $datum) - $insertCmd.Parameters.AddWithValue("@tag", $tag) - $insertCmd.Parameters.AddWithValue("@woche", $woche) - $insertCmd.Parameters.AddWithValue("@benutzer", $benutzer) - $insertCmd.Parameters.AddWithValue("@computer", $computer) - $insertCmd.Parameters.AddWithValue("@dokument", $dokument) - $insertCmd.Parameters.AddWithValue("@drucker", $drucker) - $insertCmd.Parameters.AddWithValue("@seiten", $seiten) - $insertCmd.Parameters.AddWithValue("@qs", $quelleServer) - $insertCmd.ExecuteNonQuery() - $ujBejegyzes++ - } -} - -$connection.Close() -Write-Host "Feldolgozott események: $($events.Count) | Új bejegyzés: $ujBejegyzes" diff --git a/Scripts/powershell/Drucklog_MySQL_0.1.ps1 b/Scripts/powershell/drucklog_export_v.0.1.ps1 similarity index 93% rename from Scripts/powershell/Drucklog_MySQL_0.1.ps1 rename to Scripts/powershell/drucklog_export_v.0.1.ps1 index 2903c04..2c6d00e 100644 --- a/Scripts/powershell/Drucklog_MySQL_0.1.ps1 +++ b/Scripts/powershell/drucklog_export_v.0.1.ps1 @@ -1,12 +1,16 @@ -# Drucklog_MySQL.ps1 +# Drucklog_MySQL.ps1 # Install-Module MySQLCmdlets # Nyomtatási napló export MySQL adatbázisba +#Teszt +Add-Content -Path "C:\Tools\drucklog_task.log" -Value "$(Get-Date -Format "yyyy-MM-dd HH:mm:ss") - Script futott" + + # Beállítások $logName = "Microsoft-Windows-PrintService/Operational" -$mysqlHost = "10.101.0.82" -$mysqlUser = "druckloguser" -$mysqlPassword = "Test123#" +$mysqlHost = "10.102.1.65" +$mysqlUser = "svc.druckerlog" +$mysqlPassword = "ctqBirh3eEbakLb96Ks1" $mysqlDatabase = "drucklog" $quelleServer = $env:COMPUTERNAME # vagy: "Szerver01" @@ -15,6 +19,7 @@ $quelleServer = $env:COMPUTERNAME # vagy: "Szerver01" # Add-Type -Path "C:\Program Files (x86)\MySQL\MySQL Connector NET 9.4\MySql.Data.dll" [Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\MySQL\MySQL Connector NET 9.4\MySql.Data.dll") | Out-Null + # Kapcsolódás $connectionString = "server=$mysqlHost;user id=$mysqlUser;password=$mysqlPassword;database=$mysqlDatabase;SslMode=none" $connection = New-Object MySql.Data.MySqlClient.MySqlConnection($connectionString) diff --git a/Scripts/powershell/o365_mail.ps1 b/Scripts/powershell/o365_mail.ps1 deleted file mode 100644 index dc137c5..0000000 --- a/Scripts/powershell/o365_mail.ps1 +++ /dev/null @@ -1,91 +0,0 @@ -# Requires -Modules @{ModuleName='Microsoft.Graph.Applications';ModuleVersion='1.19.0'}, @{ModuleName='Microsoft.Graph.Mail';ModuleVersion='1.19.0'} - -# ============================================================================== -# KONFIGURÁCIÓ -# ============================================================================== -# Adatok az Azure App Regisztrációból -# Tennant ID : caee3499-03f8-4175-9fa8-a935248d0ece -$TENANT_ID = "caee3499-03f8-4175-9fa8-a935248d0ece" -# Client Id : 3a08b279-1fc3-419f-a77e-31f12a0f65f7 -$CLIENT_ID = "3a08b279-1fc3-419f-a77e-31f12a0f65f7" -# Key : Rk-8Q~nJ.sZ-xUiNxtEDdzVgoFFosODLVHX~jdrh (érték, nem Secret ID) -$CLIENT_SECRET = "Rk-8Q~nJ.sZ-xUiNxtEDdzVgoFFosODLVHX~jdrh" - -# Figyelt postafiók -$USER_EMAIL = "i.meszely@aps-hh.de" - -# Microsoft Graph API végpontok (alapértelmezett, nem kell módosítani) -$GRAPH_API_ENDPOINT = "https://graph.microsoft.com/v1.0" - -# Scopes needed for the application -# Mail.ReadWrite for reading, marking as read, and eventually moving emails -$SCOPES = @("Mail.ReadWrite") - -# ============================================================================== -# FÜGGVÉNYEK -# ============================================================================== - -Function Connect-GraphAPI { - <# - .SYNOPSIS - Csatlakozik a Microsoft Graph API-hoz kliens hitelesítő adatokkal. - .DESCRIPTION - Ez a függvény megpróbál csatlakozni a Microsoft Graph API-hoz az Azure AD alkalmazás regisztrációjában megadott - kliens hitelesítő adatok (Tenant ID, Client ID, Client Secret) segítségével. - Sikeres kapcsolat esetén egy Access Token-t ad vissza. Hiba esetén null-t ad vissza és hibaüzenetet ír ki. - .OUTPUTS - Access Token (String) vagy $null - #> - [CmdletBinding()] - Param() - - Write-Host "Graph API-hoz való csatlakozás megkezdése..." -ForegroundColor Cyan - - try { - # Ellenőrizzük, hogy a szükséges modulok telepítve vannak-e - $requiredModules = @("Microsoft.Graph.Applications", "Microsoft.Graph.Mail") - foreach ($module in $requiredModules) { - if (-not (Get-Module -ListAvailable -Name $module)) { - Write-Warning "A(z) '$module' PowerShell modul nincs telepítve. Kérjük telepítse futtatás előtt: Install-Module $module" - return $null - } - } - - # Csatlakozás a Graph API-hoz kliens hitelesítő adatokkal - # A -Scopes paraméterben az alkalmazásengedélyek neveit kell megadni - $connectResult = Connect-MgGraph -TenantId $TENANT_ID -ClientId $CLIENT_ID -ClientSecret $CLIENT_SECRET -Scopes $SCOPES -ErrorAction Stop - - if ($connectResult) { - Write-Host "Sikeresen csatlakozott a Graph API-hoz." -ForegroundColor Green - # Lekérjük az Access Token-t - $token = (Get-MsalToken).AccessToken - return $token - } else { - Write-Error "Nem sikerült csatlakozni a Graph API-hoz." - return $null - } - } - catch { - Write-Error "Hiba történt a Graph API-hoz való csatlakozás során: $($_.Exception.Message)" - Write-Host "Kérjük, ellenőrizze a konfigurációs beállításokat (TENANT_ID, CLIENT_ID, CLIENT_SECRET) és az alkalmazásengedélyeket az Azure AD-ben." -ForegroundColor Yellow - return $null - } -} - -# ============================================================================== -# FŐ LOGIKA -# ============================================================================== -function Main { - $accessToken = Connect-GraphAPI - - if (-not $accessToken) { - Write-Error "Nem sikerült Access Token-t szerezni. Kilépés." - return - } - - Write-Host "Access Token sikeresen lekérve. Kész a Graph API hívásokhoz." -ForegroundColor Green - # Itt fogjuk később implementálni az e-mailek feldolgozását -} - -# Fő függvény meghívása -Main \ No newline at end of file