Powershell i SQL 08 – Informacje o instancji, zapytania

5-Lip-2015

W kolejnym przykładzie, spróbujemy uzyskać kilka informacji o instancji. Ponieważ informacje wyciągniemy z serwera wykorzystując zapytanie, przy okazji dowiesz się także jak uruchamiać zapytania na wybranej instancji SQL serwera w inny sposób niż pokazaliśmy to w części drugiej serii.

Zaczynamy od załadowania modułu SQLPS:

Zakładamy, że chcemy uzyskać informacje z kilku instancji SQL, więc przygotowujemy zmienną przechowującą listę nazw tych instancji. U nas dwa razy odwołamy się do tej samej instancji, ale to tylko dlatego, że na aktualnie wykorzystywanym komputerze jest zainstalowana tylko jedna instancja (proszę o wyrozumiałość):

Teraz pora zdecydować, co chcemy odczytać z tych instancji. Będzie to po prostu zapytanie do uruchomienia

No i pora na uruchomienie zapytania. Można to zrobić co najmniej na dwa sposoby:

1. – Wykorzystamy parametr -ServerInstance polecenia Invoke-Sqlcmd. Lista serwerów jest przekazywana potokiem do ForEach, który z kolei wywołuje Invoke-Sqlcmd na aktualnie iterowanej nazwie instancji:

server_info

2. – Komendą Change-Location (alias cd) zmieniamy kontekst na właściwy dla danej instancji. Tam wykonujemy Invoke-Sqlcmd w bieżącym kontekście, czyli na wybranej instancji:

Ale nie tylko zapytania SQL wchodzą w grę. Sporo informacji uda się uzyskać przez WMI. Poniższe polecenie wyświetli informacje o aliasach zdefiniowanych na serwerze:

Kolejne odwołanie do WMI pozwala ustalić wartość opcji FileStream dla wybranej instancji. Po wykonaniu obu linijek, w zmiennej $wmi mamy obiekt zawierający wartość opcji FileStream:

Posiadając ten obiekt można nawet zmienić opcję, korzystając z metody EnableFilestream:

Dodaj komentarz:

Autor: Rafał Kraik