Udostępnij za pośrednictwem


Obsługa edytora programu PowerShell dla programu Azure Data Studio

To rozszerzenie zapewnia zaawansowaną obsługę edytora programu PowerShell w narzędziu Azure Data Studio. Teraz możesz pisać i debugować skrypty programu PowerShell przy użyciu doskonałego interfejsu przypominającego środowisko IDE dostępnego w narzędziu Azure Data Studio.

Rozszerzenie programu PowerShell

Funkcje

  • wyróżnianie składni
  • Fragmenty kodu
  • Funkcja IntelliSense dla poleceń cmdlet i nie tylko
  • Analiza oparta na regułach dostarczana przez analizator skryptów programu PowerShell
  • Przejdź do pozycji Definicja poleceń cmdlet i zmiennych
  • Znajdowanie odwołań do poleceń cmdlet i zmiennych
  • Odnajdywanie symboli dokumentu i obszaru roboczego
  • Uruchamianie wybranego wyboru kodu programu PowerShell przy użyciu F8
  • Uruchamianie pomocy online dla symbolu pod kursorem przy użyciu Ctrl+F1
  • Podstawowa obsługa konsoli interakcyjnej!

Instalowanie rozszerzenia

Oficjalną wersję rozszerzenia programu PowerShell można zainstalować, wykonując kroki opisane w dokumentacji narzędzia Azure Data Studio. W okienku Rozszerzenia wyszukaj rozszerzenie "PowerShell" i zainstaluj je tam. Otrzymasz powiadomienie automatycznie o wszelkich przyszłych aktualizacjach rozszerzeń!

Pakiet VSIX można również zainstalować na naszej stronie Wydania i zainstalować go za pomocą wiersza polecenia:

azuredatastudio --install-extension PowerShell-<version>.vsix

Obsługa platform

  • System Windows 7 do 10 z programem Windows PowerShell w wersji 3 lub nowszej oraz programem PowerShell Core
  • System Linux z programem PowerShell Core (wszystkie dystrybucje obsługiwane przez program PowerShell)
  • system macOS z programem PowerShell Core

Przeczytaj często zadawane pytania, aby uzyskać odpowiedzi na często zadawane pytania.

Instalowanie programu PowerShell Core

Jeśli korzystasz z programu Azure Data Studio w systemie macOS lub Linux, może być również konieczne zainstalowanie programu PowerShell Core.

PowerShell Core to projekt open source w witrynie GitHub. Aby uzyskać więcej informacji na temat instalowania programu PowerShell Core na platformach macOS lub Linux, zobacz następujące artykuły:

Przykładowe skrypty

W folderze rozszerzenia examples znajdują się przykładowe skrypty, których można użyć do odnajdywania funkcji edytowania i debugowania programu PowerShell. Zapoznaj się z dołączonym plikiem README.md , aby dowiedzieć się więcej o sposobie ich używania.

Ten folder można znaleźć w następującej ścieżce:

$HOME/.azuredatastudio/extensions/microsoft.powershell-<version>/examples

lub jeśli używasz wersji zapoznawczej rozszerzenia

$HOME/.azuredatastudio/extensions/microsoft.powershell-preview-<version>/examples

Aby otworzyć/wyświetlić przykłady rozszerzenia w narzędziu Azure Data Studio, uruchom następujący kod w wierszu polecenia programu PowerShell:

azuredatastudio (Get-ChildItem $Home\.azuredatastudio\extensions\microsoft.powershell-*\examples)[-1]

Tworzenie i otwieranie plików

Aby utworzyć i otworzyć nowy plik w edytorze, użyj polecenia New-EditorFile z poziomu zintegrowanego terminalu programu PowerShell.

PS C:\temp> New-EditorFile ExportData.ps1

To polecenie działa dla dowolnego typu pliku, a nie tylko plików programu PowerShell.

PS C:\temp> New-EditorFile ImportData.py

Aby otworzyć co najmniej jeden plik w narzędziu Open-EditorFile Azure Data Studio, użyj polecenia .

Open-EditorFile ExportData.ps1, ImportData.py

Brak koncentracji uwagi na konsoli podczas wykonywania

Dla tych użytkowników, którzy są przyzwyczajeni do pracy z programem SSMS, jesteś przyzwyczajony do wykonywania zapytania, a następnie jest w stanie wykonać je ponownie bez konieczności przełączania się z powrotem do okienka zapytania. W takim przypadku domyślne zachowanie edytora kodu może wydawać się dziwne. Aby zachować fokus w edytorze podczas wykonywania za pomocą F8 , zmień następujące ustawienie:

"powershell.integratedConsole.focusConsoleOnExecute": false

Wartość domyślna jest true do celów ułatwień dostępu.

Należy pamiętać, że to ustawienie uniemożliwi zmianę fokusu na konsolę, nawet jeśli używasz polecenia, które jawnie wywołuje dane wejściowe, na przykład Get-Credential.

Przykłady programu SQL PowerShell

Aby użyć tych przykładów (poniżej), należy zainstalować moduł SqlServer z Galeria programu PowerShell.

Install-Module -Name SqlServer

Uwaga

W przypadku wersji 21.1.18102 i nowszych SqlServer moduł obsługuje program PowerShell Core 6.2 i nowsze, oprócz programu Windows PowerShell.

W tym przykładzie Get-SqlInstance używamy polecenia cmdlet do pobierania obiektów SMO serwera dla serwerów ServerA i ServerB. Domyślne dane wyjściowe tego polecenia będą obejmować nazwę wystąpienia, wersję, dodatek Service Pack i poziom aktualizacji CU wystąpień.

Get-SqlInstance -ServerInstance ServerA, ServerB

Oto przykład tego, jak będą wyglądać te dane wyjściowe:

Instance Name             Version    ProductLevel UpdateLevel  HostPlatform HostDistribution
-------------             -------    ------------ -----------  ------------ ----------------
ServerA                   13.0.5233  SP2          CU4          Windows      Windows Server 2016 Datacenter
ServerB                   14.0.3045  RTM          CU12         Linux        Ubuntu

Moduł SqlServer zawiera dostawcę o nazwie SQLRegistration , który umożliwia programowy dostęp do następujących typów zapisanych połączeń programu SQL Server:

  • Serwer aparatu bazy danych (zarejestrowane serwery)
  • Serwer zarządzania centralnego (CMS)
  • Analysis Services
  • Integration Services
  • Reporting Services

W poniższym przykładzie wykonamy polecenie dir (alias dla Get-ChildItem), aby uzyskać listę wszystkich wystąpień programu SQL Server wymienionych w pliku Zarejestrowanych serwerów.

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse

Oto przykładowe dane wyjściowe, które mogą wyglądać następująco:

Mode Name
---- ----
-    ServerA
-    ServerB
-    localhost\SQL2017
-    localhost\SQL2016Happy
-    localhost\SQL2017

W przypadku wielu operacji obejmujących bazę danych lub obiekty w bazie danych Get-SqlDatabase można użyć polecenia cmdlet . Jeśli podasz wartości dla parametrów -ServerInstance i , -Database zostanie pobrany tylko jeden obiekt bazy danych. Jeśli jednak określisz -ServerInstance tylko parametr, zostanie zwrócona pełna lista wszystkich baz danych w tym wystąpieniu.

Oto przykład tego, jak będą wyglądać te dane wyjściowe:

Name                 Status           Size     Space  Recovery Compat. Owner
                                            Available  Model     Level
----                 ------           ---- ---------- -------- ------- -----
AdventureWorks2017   Normal      336.00 MB   57.01 MB Simple       140 sa
master               Normal        6.00 MB  368.00 KB Simple       140 sa
model                Normal       16.00 MB    5.53 MB Full         140 sa
msdb                 Normal       48.44 MB    1.70 MB Simple       140 sa
PBIRS                Normal      144.00 MB   55.95 MB Full         140 sa
PBIRSTempDB          Normal       16.00 MB    4.20 MB Simple       140 sa
SSISDB               Normal      325.06 MB   26.21 MB Full         140 sa
tempdb               Normal       72.00 MB   61.25 MB Simple       140 sa
WideWorldImporters   Normal         3.2 GB     2.6 GB Simple       130 sa

W następnym przykładzie Get-SqlDatabase użyto polecenia cmdlet , aby pobrać listę wszystkich baz danych w wystąpieniu SerweraB, a następnie przedstawia siatkę/tabelę (przy użyciu Out-GridView polecenia cmdlet), aby wybrać, których baz danych należy utworzyć kopię zapasową. Gdy użytkownik kliknie przycisk "OK", kopia zapasowa zostanie utworzona tylko z wyróżnionych baz danych.

Get-SqlDatabase -ServerInstance ServerB |
Out-GridView -PassThru |
Backup-SqlDatabase -CompressionOption On

W tym przykładzie zostanie ponownie wyświetlona lista wszystkich wystąpień programu SQL Server wymienionych w pliku Zarejestrowanych serwerów, a następnie wywołaj polecenie Get-SqlAgentJobHistory , które zgłasza każde zadanie agenta SQL, które zakończyło się niepowodzeniem od północy, dla każdego wystąpienia programu SQL Server na liście.

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE {$_.Mode -ne 'd' } |
FOREACH {
    Get-SqlAgentJobHistory -ServerInstance  $_.Name -Since Midnight -OutcomesType Failed
}

W tym przykładzie wykonamy polecenie dir (alias ) Get-ChildItemw celu pobrania listy wszystkich wystąpień programu SQL Server wymienionych w pliku zarejestrowanych serwerów, a następnie użyjemy Get-SqlDatabase polecenia cmdlet , aby uzyskać listę baz danych dla każdego z tych wystąpień.

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE { $_.Mode -ne 'd' } |
FOREACH {
    Get-SqlDatabase -ServerInstance $_.Name
}

Oto przykład tego, jak będą wyglądać te dane wyjściowe:

Name                 Status           Size  Space     Recovery Compat. Owner
                                            Available Model    Level
----                 ------           ---- ---------- -------- ------- -----
AdventureWorks2017   Normal      336.00 MB   57.01 MB Simple       140 sa
master               Normal        6.00 MB  368.00 KB Simple       140 sa
model                Normal       16.00 MB    5.53 MB Full         140 sa
msdb                 Normal       48.44 MB    1.70 MB Simple       140 sa
PBIRS                Normal      144.00 MB   55.95 MB Full         140 sa
PBIRSTempDB          Normal       16.00 MB    4.20 MB Simple       140 sa
SSISDB               Normal      325.06 MB   26.21 MB Full         140 sa
tempdb               Normal       72.00 MB   61.25 MB Simple       140 sa
WideWorldImporters   Normal         3.2 GB     2.6 GB Simple       130 sa

Raportowanie problemów

Jeśli wystąpią jakiekolwiek problemy z rozszerzeniem programu PowerShell, zapoznaj się z dokumentacją rozwiązywania problemów, aby uzyskać informacje na temat diagnozowania i raportowania problemów.

Uwaga dotycząca zabezpieczeń

Aby uzyskać informacje o problemach z zabezpieczeniami, zobacz tutaj.

Współtworzenia kodu

Zapoznaj się z dokumentacją programistycznej, aby uzyskać więcej informacji na temat współtworzenia tego rozszerzenia.

Opiekunów

Licencja

To rozszerzenie jest licencjonowane w ramach licencji MIT. Aby uzyskać szczegółowe informacje na temat plików binarnych innych firm dołączonych do wersji tego projektu, zobacz plik powiadomień innych firm.

Kodeks postępowania

W tym projekcie jest używany Kodeks postępowania firmy Microsoft dla oprogramowania typu open source. Aby uzyskać więcej informacji, zobacz Code of Conduct FAQ (Często zadawane pytania dotyczące kodeksu postępowania) lub wyślij wiadomość e-mail na adres opencode@microsoft.com w przypadku jakichkolwiek dodatkowych pytań lub komentarzy.