Запрос к MySQL через SSH-туннель:

$tunnelcmd = "c:\ProgramData\icinga2\Scripts\icinga2\bin\plink.exe"
$tunnelarg = "-batch -P 2201 -N -C -v -L 33060:localhost:3306 user@222.222.222.222 -pw password"

$processPlink = (start-process $tunnelcmd -argumentlist $tunnelarg -PassThru)

Start-Sleep -s 5

$connString = "Server=127.0.0.1;Port=33060;Uid=user;Pwd=password;database=inventory;charset=utf8"
$sQLquery = "SELECT ClassID, Name, Namespace, Enabled FROM tbInventoryClass WHERE Enabled = 1"

Invoke-MySQLQuery -connectionString $connString -query $sQLquery

$processPlink.Kill()

Функция SQL запроса (Invoke-MySQLQuery):

function Invoke-MySQLQuery {
    Param(
        [Parameter(
            Mandatory = $true,
            ParameterSetName = '',
            ValueFromPipeline = $true)]
        [string]$query,
        [Parameter(
            Mandatory = $true,
            ParameterSetName = '',
            ValueFromPipeline = $true)]
        [string]$connectionString
    )


    try {
      # load MySQL driver and create connection
      Write-Verbose "Create Database Connection"

      # Обязательно заменить в промышленной среде!!!
      $icinga2ScriptsPath = "C:\ProgramData\icinga2\Scripts\icinga2"

      $mySQLDataDLL = "$icinga2ScriptsPath\bin\MySQL.Data.dll"
      [void][system.reflection.Assembly]::LoadFrom($mySQLDataDLL)
      #[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
      $connection = New-Object MySql.Data.MySqlClient.MySqlConnection
      $connection.ConnectionString = $ConnectionString
      Write-Verbose "Open Database Connection"
      $connection.Open()

      # Run MySQL Querys
      Write-Verbose "Run MySQL Querys"
      $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["data"] # | Format-Table

    } catch {
        $ErrorMessage = $_.Exception.Message
        Write-Host "Could not run MySQL Query" $ErrorMessage
    } finally {
        Write-Verbose "Close Connection"
        $connection.Close()
    }

  } #Конец функции Invoke-MySQLQuery

Ссылки