Powershell i SQL 16 – wykrywanie instancji w sieci

5-Lis-2016

Teraz pora na funkcję, która nie należy do SMO ale do .NET! Funkcja ta ma najczęściej za zadanie pomóc użytkownikowi odnaleźć SQL  server znajdujący się gdzieś w sieci, kiedy użytkownik nie zna jego nazwy, ale raczej wolałby wybrać serwer z listy dostępnych w danej chwili instancji SQL.

Ta funkcja to:

([System.Data.Sql.SqlDataSourceEnumerator]::Instance).GetDataSources()

EnumerateSQLInstances

Świetnie! Mając taką informację jesteśmy o krok od skryptu, który spróbuje wykryć serwery SQL dostępne w sieci i odpytać je o szczegóły wersji, która jest tam zainstalowana:

Prawda, że proste?

  • Zakładając, żę w zmiennej $instances mamy wynik wspomnianej już funkcji wykonujemy pętlę przez wszystkie wykryte instancje
  • Jeśli nazwa instancji jest niepusta to oznacza to, że pracujemy z instancją nazwaną i trzeba odpowiednio skonstruować nazwę instancji jako nazwa_serwera\nazwa_instancji
  • Teraz można utworzyć obiekt odpowiadający serwerowi SQL
  • Zapytać go o wersję SQL, która jest zainstalowana
  • Wpisać wynik do wcześniej zadeklarowanej tablicy hashowanej
  • I na końcu wyświetlić tą tablicę

Dodaj komentarz:

Autor: Rafał Kraik