Files
WPanda/Scripts/powershell/rdp_fehler_log_sammlung.ps1
2025-12-15 10:00:38 +01:00

62 lines
2.9 KiB
PowerShell

# MySQL kapcsolati adatok
# Install-PackageProvider -Name NuGet -Force
# Register-PackageSource -Name NuGet -Location https://www.nuget.org/api/v2/ -ProviderName NuGet -Trusted
# Install-Package MySql.Data -Force
# Oder : https://dev.mysql.com/downloads/connector/net/
$mysqlServer = "localhost" # vagy a szerver IP/cím
$mysqlDatabase = "rdp_log" # az adatbázis neve
$mysqlUser = "rdplog" # felhasználónév
$mysqlPassword = "Test123#" # jelszó
# Forrás és célmappa
$sourceFolder = "C:\RdpLog\Logs" # a mappa, ahol a CSV fájlok vannak
$destinationFolder = "C:\RdpLog\Archive" # a mappa, ahova áthelyezzük a feldolgozott fájlokat
# MySQL kapcsolódás
Add-Type -Path "C:\Program Files\PackageManagement\NuGet\Packages\MySql.Data.9.4.0\lib\net9.0\MySql.Data.dll" # cseréld le a valós útvonalra!
$connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$connection.ConnectionString = "server=$mysqlServer;database=$mysqlDatabase;uid=$mysqlUser;pwd=$mysqlPassword;"
$connection.Open()
# Minden CSV fájl feldolgozása
Get-ChildItem -Path $sourceFolder -Filter "*.csv" | ForEach-Object {
$csvPath = $_.FullName
$csvData = Import-Csv -Path $csvPath -Delimiter "," -Encoding UTF8
Write-Host "Feldolgozás alatt: $csvPath"
# Adatok feltöltése az adatbázisba
foreach ($row in $csvData) {
$query = "INSERT INTO rdplog (ServerName, LogName, EventID, SessionID, Ursachencode, Level, UserName, Message, TimeCreated) VALUES (@ServerName, @LogName, @EventID, @SessionID, @Ursachencode, @Level, @UserName, @Message, @TimeCreated)"
$command = New-Object MySql.Data.MySqlClient.MySqlCommand($query, $connection)
# Paraméterek hozzáadása
$command.Parameters.AddWithValue("@ServerName", $row.ServerName) | Out-Null
$command.Parameters.AddWithValue("@LogName", $row.LogName) | Out-Null
$command.Parameters.AddWithValue("@EventID", $row.EventID) | Out-Null
$command.Parameters.AddWithValue("@SessionID", $row.SessionID) | Out-Null
$command.Parameters.AddWithValue("@Ursachencode", $row.Ursachencode) | Out-Null
$command.Parameters.AddWithValue("@Level", $row.Level) | Out-Null
$command.Parameters.AddWithValue("@UserName", $row.UserName) | Out-Null
$command.Parameters.AddWithValue("@Message", $row.Message) | Out-Null
# TimeCreated átalakítása (ha szükséges)
$timeCreated = [datetime]::ParseExact($row.TimeCreated, "dd.MM.yyyy HH:mm:ss", $null)
$command.Parameters.AddWithValue("@TimeCreated", $timeCreated) | Out-Null
# Lekérdezés végrehajtása
$command.ExecuteNonQuery() | Out-Null
}
# Fájl áthelyezése a célmappába
Move-Item -Path $csvPath -Destination $destinationFolder -Force
Write-Host "Fájl áthelyezve: $csvPath -> $destinationFolder"
}
# Kapcsolat bezárása
$connection.Close()
Write-Host "Minden fájl sikeresen feldolgozva és áthelyezve!"