다음을 통해 공유


Azure Data Studio에 대한 PowerShell 편집기 지원

이 확장 프로그램은 Azure Data Studio에서 풍부한 PowerShell 편집기 지원을 제공합니다. 이제 Azure Data Studio에서 제공하는 우수한 IDE와 유사한 인터페이스를 사용하여 PowerShell 스크립트를 작성하고 디버그할 수 있습니다.

PowerShell 확장

기능

  • 구문 강조
  • 코드 조각
  • cmdlet 등에 대한 IntelliSense
  • PowerShell 스크립트 분석기에서 제공하는 규칙 기반 분석
  • cmdlet 및 변수 정의로 이동
  • cmdlet 및 변수의 참조 찾기
  • 문서 및 작업 영역 기호 검색
  • F8 키를 사용하여 선택한 PowerShell 코드 실행
  • Ctrl+F1을 사용하여 커서 아래에 있는 기호에 대한 온라인 도움말 시작
  • 기본 대화형 콘솔 지원!

확장 설치

Azure Data Studio 설명서의 단계에 따라 Powershell 확장의 공식 릴리스를 설치할 수 있습니다. 확장 창에서 "PowerShell" 확장을 검색하여 설치합니다. 향후 확장 업데이트에 대한 알림이 자동으로 표시됩니다.

릴리스 페이지에서 VSIX 패키지를 설치하고 명령줄을 통해 설치할 수도 있습니다.

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

플랫폼 지원

  • Windows PowerShell v3 이상 및 PowerShell Core를 사용하는 Windows 7~10
  • PowerShell Core를 포함하는 Linux(모든 PowerShell 지원 배포판)
  • PowerShell Core을 포함하는 macOS

자주 묻는 질문에 대한 답변은 FAQ를 참조하세요.

PowerShell Core 설치

macOS 또는 Linux에서 Azure Data Studio를 실행하는 경우 PowerShell Core를 설치해야 할 수도 있습니다.

PowerShell Core는 GitHub의 오픈 소스 프로젝트입니다. macOS 또는 Linux 플랫폼에 PowerShell Core를 설치하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

예제 스크립트

확장 examples 폴더에는 PowerShell 편집 및 디버깅 기능을 검색하는 데 사용할 수 있는 몇 가지 예제 스크립트가 있습니다. 포함된 README.md 파일을 확인하여 사용하는 방법에 대해 자세히 알아보세요.

이 폴더는 다음 경로에서 찾을 수 있습니다.

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

또는 확장의 미리 보기 버전을 사용하는 경우

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

Azure Data Studio에서 확장의 예제를 열어서 보려면 PowerShell 명령 프롬프트에서 다음 코드를 실행합니다.

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

파일 만들기 및 열기

편집기 내에서 새 파일을 만들고 열려면 PowerShell 통합 터미널 내에서 New-EditorFile을 사용합니다.

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

이 명령은 PowerShell 파일 뿐만 아니라 모든 파일 형식에 작동합니다.

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

Azure Data Studio에서 하나 이상의 파일을 열려면 이 Open-EditorFile 명령을 사용합니다.

Open-EditorFile ExportData.ps1, ImportData.py

실행할 때 콘솔에 포커스 없음

SSMS 작업을 수행하는 데 익숙한 사용자의 경우, 쿼리를 실행한 다음, 쿼리 창으로 다시 전환하지 않고도 쿼리를 다시 실행할 수 있을 것입니다. 이 경우 코드 편집기의 기본 동작이 이상하게 느껴질 수 있습니다. F8로 실행할 때 편집기에 포커스를 유지하려면 다음 설정을 변경합니다.

"powershell.integratedConsole.focusConsoleOnExecute": false

기본값 true는 접근성을 위한 것입니다.

이 설정은 Get-Credential과 같이 입력을 명시적으로 호출하는 명령을 사용하는 경우에도 포커스가 콘솔로 변경되지 않도록 합니다.

SQL PowerShell 예제

이러한 예제(아래)를 사용하려면 PowerShell 갤러리 SqlServer 모듈을 설치해야 합니다.

Install-Module -Name SqlServer

참고 항목

버전 21.1.18102 이상에서 SqlServer 모듈은 Windows PowerShell 외에 PowerShell Core 6.2 이상도 지원합니다.

이 예제에서는 Get-SqlInstance cmdlet을 사용하여 ServerA 및 ServerB의 서버 SMO 개체를 가져옵니다. 이 명령의 기본 출력에는 인스턴스의 인스턴스 이름, 버전, 서비스 팩, CU 업데이트 수준이 포함됩니다.

Get-SqlInstance -ServerInstance ServerA, ServerB

다음은 출력의 모양에 대한 샘플입니다.

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

SqlServer 모듈에는 다음과 같은 저장된 SQL Server 연결 유형에 프로그래밍 방식으로 액세스할 수 있는 SQLRegistration이라는 공급자가 포함되어 있습니다.

  • 데이터베이스 엔진 서버(등록된 서버)
  • CMS(중앙 관리 서버)
  • Analysis Services
  • Integration Services
  • Reporting Services

다음 예제에서는 등록된 서버 파일에 나열된 모든 SQL Server 인스턴스 목록을 가져오기 위해 dir (별칭 Get-ChildItem)을 수행 합니다.

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

다음은 출력의 모양에 대한 샘플입니다.

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

데이터베이스 또는 데이터베이스 내의 개체를 사용하는 많은 작업에서 Get-SqlDatabase cmdlet을 사용할 수 있습니다. -ServerInstance-Database 매개 변수의 값을 제공하는 경우 해당 데이터베이스 개체만 검색됩니다. 그러나 -ServerInstance 매개 변수만 지정하면 해당 인스턴스에 있는 모든 데이터베이스의 전체 목록이 반환됩니다.

다음은 출력의 모양에 대한 샘플입니다.

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

다음 예제에서는 Get-SqlDatabase cmdlet을 사용하여 ServerB 인스턴스의 모든 데이터베이스 목록을 검색한 다음, Out-GridView cmdlet을 사용하여 백업할 데이터베이스를 선택하기 위한 그리드/테이블을 표시합니다. 사용자가 "확인" 단추를 클릭하면 강조 표시된 데이터베이스만 백업됩니다.

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

이 예제에서도 등록된 서버 파일에 나열된 모든 SQL Server 인스턴스 목록을 가져온 다음, 나열된 각 SQL Server 인스턴스에 대해 자정 이후 실패한 모든 SQL 에이전트 작업을 보고하는 Get-SqlAgentJobHistory를 호출합니다.

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

이 예에서는 dir(Get-ChildItem의 별칭)를 수행하여 등록된 서버 파일에 나열된 모든 SQL Server 인스턴스 목록을 가져온 다음 Get-SqlDatabase cmdlet을 사용하여 각 인스턴스에 대한 데이터베이스 목록을 가져옵니다.

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

다음은 출력의 모양에 대한 샘플입니다.

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

문제 보고

PowerShell 확장에 문제가 있는 경우 문제 진단 및 보고에 대한 자세한 내용은 문제 해결 문서를 참조하세요.

보안 정보

보안 문제는 여기를 참조 하세요.

코드에 기여하기

이 확장에 기여하는 방법에 대한 자세한 내용은 개발 설명서를 확인하세요.

유지 관리자

라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 이 프로젝트의 릴리스에 포함된 타사 이진 파일에 대한 자세한 내용은 타사 알림 파일을 참조 하세요.

준수 사항

이 프로젝트는 Microsoft 오픈 소스 준수 사항을 채택했습니다. 자세한 내용은 준수 사항 FAQ를 참조하거나 opencode@microsoft.com에 추가 질문 또는 의견을 알려주세요.