62 lines
2.9 KiB
PowerShell
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!"
|