Powershell | Antivirus

SCREENSHOT

error

c:\xampp\mysql\bin\mysql.exe -u root

#CREATE USER 'luis'@'localhost' IDENTIFIED BY 'luison';

#GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'localhost' WITH GRANT OPTION;

#FLUSH PRIVILEGES;

########------------SACAR HASH DE PROGRAMAS---------------################
$HASH = (Get-FileHash C:\Windows\system32\notepad.exe).HASH
$PROGRAMA = "notepad.exe"

########------FOREACH QUE RELACIONA PROCESOS, NOMBRE Y HASH-------##########
foreach($programas in get-process)
{
    $programas.name
    Get-FileHash $programas.path | select hash
    "- - - - - - - -"
}

#Conectar con MySQL

#Cargar el espacio de nombres MySql.Data que proporciona acceso a clases que representan la arquitectura ADO.NET
[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")

#Crear un objeto MySql.Data.MySqlClient.MySqlConnection que representa una conexi贸n abierta a una base de datos del servidor MySQL
#Indicar en el constructor los param茅tros necesarios para realizar la conexi贸n: server, port, uid, pwd y database
$Connection = ([MySql.Data.MySqlClient.MySqlConnection]::new("server=" + "localhost" + ";port=3306;uid=" + "luis" + ";pwd=luison" + ";database="+"antivirus"+";SslMode=none"))
#Ejecutar el m茅todo Open para conectar a la base de datos de MySQL
$Connection.Open()
##########----------------INSERT-------------------------------------##########

$Query = 'INSERT INTO antivirus (HASH,PROGRAMA) VALUES ("'+$HASH+'","'+$PROGRAMA+'");'
$Command = New-Object MySql.Data.MySqlClient.MySqlCommand($Query, $Connection)
$DataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Command)
$DataSet = New-Object System.Data.DataSet
$RecordCount = $dataAdapter.Fill($dataSet, "data")
$DataSet.Tables[0]
$Connection.Close()

#########-----------------CONSULTA-----------------------------------##########

#Crear un objeto MySql.Data.MySqlClient.MySqlCommand que representa una instrucci贸n SQL para ejecutar contra una base de datos MySQL
#Indicar en el constructor la instrucci贸n SQL para ejecutar y la conexi贸n (realizada en el paso anterior)
$Query = 'select hash from antivirus;'
$Command = [MySql.Data.MySqlClient.MySqlCommand]::new($Query, $Connection)

#Crear un objeto MySql.Data.MySqlClient.MySqlDataAdapter que representa un conjunto de comandos de datos y una conexi贸n de base de datos que se utilizan para llenar un conjunto de datos y actualizar una base de datos MySQL
#Indicar en el constructor el objeto MySql.Data.MySqlClient.MySqlCommand creado anteriormente
$DataAdapter = [MySql.Data.MySqlClient.MySqlDataAdapter]::new($Command)

#Crear un objeto System.Data.DataSet que representa una cach茅 de datos en memoria en donde se almacenan los datos obtenidos del objeto MySql.Data.MySqlClient.MySqlDataAdapter
$DataSet = [System.Data.DataSet]::new()
#Agregar en System.Data.DataSet los datos del objeto MySql.Data.MySqlClient.MySqlDataAdapter
$DataAdapter.Fill($DataSet)
#Mostrar los datos que contiene System.Data.DataSet
$DataSet.Tables

#Cerrar la conexi贸n con MySQL cerrando el objeto MySql.Data.MySqlClient.MySqlConnection
$Connection.Close()

###########------------subida masiva de programas y hash a una bd------##########
foreach($programas in get-process)
{
    $PROGRAMAs.name
    Get-FileHash $programas.path | select hash
    $FILEHASH = (Get-FileHash $programas.path | select hash).hash
    "- - - - - - - -"
    #Cargar el espacio de nombres MySql.Data que proporciona acceso a clases que representan la arquitectura ADO.NET
    [void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")

    #Crear un objeto MySql.Data.MySqlClient.MySqlConnection que representa una conexi贸n abierta a una base de datos del servidor MySQL
    #Indicar en el constructor los param茅tros necesarios para realizar la conexi贸n: server, port, uid, pwd y database
    $Connection = ([MySql.Data.MySqlClient.MySqlConnection]::new("server=" + "localhost" + ";port=3306;uid=" + "luis" + ";pwd=luison" + ";database="+"antivirus"+";SslMode=none"))
    #Ejecutar el m茅todo Open para conectar a la base de datos de MySQL
    $Connection.Open()

    $Query = 'INSERT INTO antivirus (HASH,PROGRAMA) VALUES ("'+$FILEHASH+'","'+$PROGRAMAS.NAME+'");'
    $Command = New-Object MySql.Data.MySqlClient.MySqlCommand($Query, $Connection)
    $DataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Command)
    $DataSet = New-Object System.Data.DataSet
    $RecordCount = $dataAdapter.Fill($dataSet, "data")
    $DataSet.Tables[0]
    $Connection.Close()
}

#####PIDO EL HASH QUE TENGO EN EL PC DEL AD DE UN PROGRAMA
$PETICION = Invoke-Command -ScriptBlock {

                (Get-FileHash C:\Windows\system32\notepad.exe).HASH

                                           } -Computername "EQUIPO1"

##Iniciar BBDD

#Cargar el espacio de nombres MySql.Data que proporciona acceso a clases que representan la arquitectura ADO.NET
[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")

#Crear un objeto MySql.Data.MySqlClient.MySqlConnection que representa una conexi贸n abierta a una base de datos del servidor MySQL
#Indicar en el constructor los param茅tros necesarios para realizar la conexi贸n: server, port, uid, pwd y database
$Connection = ([MySql.Data.MySqlClient.MySqlConnection]::new("server=" + "localhost" + ";port=3306;uid=" + "luis" + ";pwd=luison" + ";database="+"antivirus"+";SslMode=none"))
#Ejecutar el m茅todo Open para conectar a la base de datos de MySQL
$Connection.Open()

#Crear un objeto MySql.Data.MySqlClient.MySqlCommand que representa una instrucci贸n SQL para ejecutar contra una base de datos MySQL
#Indicar en el constructor la instrucci贸n SQL para ejecutar y la conexi贸n (realizada en el paso anterior)
$Query = 'select hash from antivirus;'
$Command = [MySql.Data.MySqlClient.MySqlCommand]::new($Query, $Connection)

#Crear un objeto MySql.Data.MySqlClient.MySqlDataAdapter que representa un conjunto de comandos de datos y una conexi贸n de base de datos que se utilizan para llenar un conjunto de datos y actualizar una base de datos MySQL
#Indicar en el constructor el objeto MySql.Data.MySqlClient.MySqlCommand creado anteriormente
$DataAdapter = [MySql.Data.MySqlClient.MySqlDataAdapter]::new($Command)

#Crear un objeto System.Data.DataSet que representa una cach茅 de datos en memoria en donde se almacenan los datos obtenidos del objeto MySql.Data.MySqlClient.MySqlDataAdapter
$DataSet = [System.Data.DataSet]::new()
#Agregar en System.Data.DataSet los datos del objeto MySql.Data.MySqlClient.MySqlDataAdapter
$DataAdapter.Fill($DataSet)
#Mostrar los datos que contiene System.Data.DataSet
$DataSet.Tables

####-------------COMPARACION DE HASH
foreach($comparacion in $DataSet.tables)
{
    If($PETICION -eq $comparacion)
        {"TODO BIEN"}
      else
        {"Archivo modificado"}
}