Twoja funkcja zwraca sformatowane dane wyjściowe zamiast samej tabeli:
$DataSet.Tables[0] | ft -AutoSize
Usuń | ft -AutoSize
i będziesz mógł pracować z rzeczywistymi danymi tabeli:
$Result1 = Invoke-MySql -Query $Query1 |
Where-Object { $_.gid -eq 2122322 } |
Select-Object -Expand key3
Format-*
polecenia cmdlet służą do formatowania danych prezentowanych użytkownikowi. Nigdy używaj ich na danych, które powinny podlegać dalszemu przetwarzaniu (w zasadzie nigdy nie używaj ich wewnątrz funkcji).