데이터베이스 엔진 PowerShell 공급자는 파일 경로와 유사한 구조로 SQL Server 인스턴스의 개체 집합을 노출합니다. Windows PowerShell cmdlet을 사용하여 공급자 경로를 탐색하고 사용자 지정 드라이브를 만들어 입력해야 하는 경로를 단축할 수 있습니다.
비고
두 개의 SQL Server PowerShell 모듈이 있습니다. SqlServer 및 SQLPS.
SqlServer 모듈은 사용할 현재 PowerShell 모듈입니다.
SQLPS 모듈은 이전 버전과의 호환성을 위해 SQL Server 설치에 포함되어 있지만 더 이상 업데이트되지 않습니다.
SqlServer 모듈에는 SQLPS의 업데이트된 버전의 cmdlet이 포함되어 있으며 최신 SQL 기능을 지원하는 새 cmdlet이 포함되어 있습니다.
PowerShell 갤러리에서 SqlServer 모듈을 설치합니다.
자세한 내용은 SQL Server PowerShell을 참조하세요.
Windows PowerShell은 cmdlet을 구현하여 PowerShell 공급자가 지원하는 개체의 계층 구조를 나타내는 경로 구조를 탐색합니다. 경로의 노드로 이동한 경우 다른 cmdlet을 사용하여 현재 개체에 대한 기본 작업을 수행할 수 있습니다. cmdlet은 자주 사용되기 때문에 짧고 정식 별칭이 있습니다. cmdlet을 유사한 명령 프롬프트 명령에 매핑하는 별칭 집합과 UNIX 셸 명령에 대한 다른 집합도 있습니다.
SQL Server 공급자는 다음 표에 표시된 공급자 cmdlet의 하위 집합을 구현합니다.
Cmdlet | 정식 별칭 | cmd 별칭 | UNIX 셸 별칭 | 설명 |
---|---|---|---|---|
Get-Location | gl (gl) | pwd | pwd | 현재 노드를 가져옵니다. |
위치 설정 | sl | cd, chdir | cd, chdir | 현재 노드를 변경합니다. |
Get-ChildItem |
gci | dir | ls | 현재 노드에 저장된 개체를 나열합니다. |
아이템 가져오기 | gi(Gi) | 현재 항목의 속성을 반환합니다. | ||
이름 바꾸기 항목 | rni | rn | ren | 개체의 이름을 바꿉니다. |
제거 항목 | ri | del, rd | rm, rmdir | 개체를 제거합니다. |
중요합니다
일부 SQL Server 식별자(개체 이름)에는 Windows PowerShell이 경로 이름에서 지원하지 않는 문자가 포함되어 있습니다. 이러한 문자를 포함하는 이름을 사용하는 방법에 대한 자세한 내용은 PowerShell의 SQL Server 식별자를 참조하세요.
Get-ChildItem 반환된 SQL Server 정보
Get-ChildItem(또는 해당 dir 및 ls 별칭)에서 반환되는 정보는 SQLSERVER: 경로의 위치에 따라 달라집니다.
경로 위치 | 결과 Get-ChildItem |
---|---|
SQLSERVER:\SQL | 로컬 컴퓨터의 이름을 반환합니다. SMO 또는 WMI를 사용하여 다른 컴퓨터의 데이터베이스 엔진 인스턴스에 연결한 경우 해당 컴퓨터도 나열됩니다. |
SQLSERVER:\SQL\ComputerName | 컴퓨터의 데이터베이스 엔진 인스턴스 목록입니다. |
SQLSERVER:\SQL\ComputerName\InstanceName | 엔드포인트, 인증서 및 데이터베이스와 같은 인스턴스의 최상위 개체 형식 목록입니다. |
데이터베이스와 같은 개체 클래스 노드 | 데이터베이스 목록과 같은 해당 형식의 개체 목록입니다master model AdventureWorks2022 . |
개체 이름 노드(예: AdventureWorks2022 |
개체 내에 포함된 개체 형식 목록입니다. 예를 들어 데이터베이스는 테이블 및 뷰와 같은 개체 형식을 나열합니다. |
기본적으로 Get-ChildItem 은 시스템 개체를 나열하지 않습니다. Force 매개 변수를 사용하여 sys 스키마의 개체와 같은 시스템 개체를 볼 수 있습니다.
사용자 지정 드라이브
Windows PowerShell을 사용하면 사용자가 PowerShell 드라이브라고 하는 가상 드라이브를 정의할 수 있습니다. 이러한 드라이브는 경로 문의 시작 노드에 매핑됩니다. 일반적으로 자주 입력되는 경로를 줄이는 데 사용됩니다. SQLSERVER: 경로가 길어질 수 있으므로 Windows PowerShell 창에서 공간을 확보하고 많은 입력을 필요로 합니다. 특정 경로 노드에서 많은 작업을 수행하려는 경우 해당 노드에 매핑되는 사용자 지정 Windows PowerShell 드라이브를 정의할 수 있습니다.
PowerShell Cmdlet 별칭 사용
cmdlet의 별칭 사용
- 전체 cmdlet 이름을 입력하는 대신 더 짧은 별칭을 입력하거나 친숙한 추천 프롬프트 명령에 매핑되는 별칭을 입력합니다.
예: 별칭
예를 들어 다음 cmdlet 또는 별칭 집합 중 하나를 사용하여 SQLSERVER:\SQL 폴더로 이동하고 폴더에 대한 자식 항목 목록을 요청하여 사용 가능한 SQL Server 인스턴스 목록을 검색할 수 있습니다.
## Shows using the full cmdet name.
Set-Location SQLSERVER:\SQL
Get-ChildItem
## Shows using canonical aliases.
sl SQLSERVER:\SQL
gci
## Shows using command prompt aliases.
cd SQLSERVER:\SQL
dir
## Shows using Unix shell aliases.
cd SQLSERVER:\SQL
ls
Get-ChildItem 사용
Get-Childitem을 사용하여 정보 반환
자식 목록을 원하는 노드로 이동합니다.
Get-Childitem 실행하여 목록을 가져옵니다.
예: Get-ChildItem
다음 예제에서는 SQL Server 공급자 경로의 여러 노드에 대해 Get-Childitem 반환된 정보를 보여 줍니다.
## Return the current computer and any computer
## to which you have made a SQL or WMI connection.
Set-Location SQLSERVER:\SQL
Get-ChildItem
## List the instances of the Database Engine on the local computer.
Set-Location SQLSERVER:\SQL\localhost
Get-ChildItem
## Lists the categories of objects available in the
## default instance on the local computer.
Set-Location SQLSERVER:\SQL\localhost\DEFAULT
Get-ChildItem
## Lists the databases from the local default instance.
## The force parameter is used to include the system databases.
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
Get-ChildItem -force
사용자 지정 드라이브 만들기
사용자 지정 드라이브 만들기 및 사용
New-PSDrive를 사용하여 사용자 지정 드라이브를 정의합니다. 루트 매개 변수를 사용하여 사용자 지정 드라이브 이름으로 표시되는 경로를 지정합니다.
Set-Location과 같은 경로 탐색 cmdlet에서 사용자 지정 드라이브 이름을 참조합니다.
예: 사용자 지정 드라이브
이 예제에서는 샘플 데이터베이스의 배포된 복사본 AdventureWorks2022
에 대한 노드에 매핑되는 AWDB라는 가상 드라이브를 만듭니다. 그런 다음, 가상 드라이브를 사용하여 데이터베이스의 테이블로 이동합니다.
## Create a new virtual drive.
New-PSDrive -Name AWDB -Root SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022
## Use AWDB: to navigate to a specific table.
Set-Location AWDB:\Tables\Purchasing.Vendor