导航 SQL ServerPowerShell 路径

数据库引擎 PowerShell 提供程序在与文件路径相似的结构中公开 SQL Server 实例中的对象集。 您可以使用 Windows PowerShell cmdlet 导航提供程序路径,并且创建自定义驱动器以便缩短需键入的路径。

在您开始之前

Windows PowerShell 实现 cmdlet 以便导航表示 PowerShell 提供程序支持的对象层次结构的路径结构。 在您导航到该路径中的节点时,可以使用其他 cmdlet 以便针对当前对象执行基本操作。 由于 cmdlet 会经常用到,因此它们具有简短的规范别名。 还有一组将 cmdlet 映射到类似命令提示符命令的别名,以及另一组用于 UNIX shell 命令的别名。

SQL Server 提供程序实现提供程序 cmdlet 的子集,如下表所示。

cmdlet 规范别名 cmd 别名 UNIX shell 别名 DESCRIPTION
Get-Location gl pwd pwd 获取当前节点。
Set-Location sl cd、chdir cd、chdir 更改当前节点。
Get-ChildItem gci 迪尔 ls 列出存储在当前节点中的对象。
Get-Item gi 返回当前项的属性。
重命名项 rni rn 重命名对象。
Remove-Item ri del、rd rm、rmdir 删除对象。

重要

某些 SQL Server 标识符(对象名称)包含 Windows PowerShell 不支持在路径名称中使用的字符。 有关如何使用包含这些字符的名称的详细信息,请参阅 SQL Server Identifiers in PowerShell

Get-ChildItem 返回的 SQL Server 信息

Get-ChildItem (或其 dirls 别名)返回的信息取决于你在 SQLSERVER: 路径中的位置。

路径位置 Get-ChildItem 结果
SQLSERVER:\SQL 返回本地计算机的名称。 如果已使用 SMO 或 WMI 连接到其他计算机上的数据库引擎实例,则还会列出这些计算机。
SQLSERVER:\SQL\ComputerName 计算机上数据库引擎实例的列表。
SQLSERVER:\SQL\ComputerNameInstanceName 实例中顶层对象类型(如 Endpoints、Certificates 和 Databases)的列表。
对象类节点,如 Databases 该类型的对象列表,例如数据库列表:master、model、AdventureWorks20008R2。
对象名称节点,如 AdventureWorks2012 包含在该对象中的对象类型的列表。 例如,数据库将列出表和视图之类的对象类型。

默认情况下, Get-ChildItem 不会列出任何系统对象。 使用 Force 参数可查看系统对象,例如 sys 架构中的对象。

自定义驱动器

Windows PowerShell 允许用户定义虚拟驱动器,这些驱动器称为 PowerShell 驱动器。 这些映射在路径语句的起始节点上。 使用它们的目的通常是为了缩短经常键入的路径。 SQLSERVER:路径可能会很长,在 Windows PowerShell 窗口中占用空间,并且需要大量键入。 如果您打算针对特定的路径节点执行大量工作,则可以定义一个映射到该节点的自定义 Windows PowerShell 驱动器。

使用 PowerShell Cmdlet 别名

使用 cmdlet 别名

  • 代替键入整个 cmdlet 名称,键入一个较短的别名,或者映射到熟悉的注释提示命令的别名。

别名示例 (PowerShell)

例如,可以使用下面的其中一组 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 返回信息

  1. 导航到要为其列出 childrem 的节点

  2. 运行 Get-Childitem 以便获取该列表。

Get-ChildItem 示例 (PowerShell)

这些示例阐释 Get-Childitem 为 SQL Server 提供程序路径中的不同节点返回的信息。

## 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  

创建自定义驱动器

创建和使用自定义驱动器

  1. 用于 New-PSDrive 定义自定义驱动器。 使用 Root 参数指定由自定义驱动器名称表示的路径。

  2. 引用路径导航 cmdlet 中的自定义驱动器名称,例如 Set-Location

自定义驱动器示例 (PowerShell)

此示例创建了一个名为 AWDB 的虚拟驱动器,该驱动器将映射到用于 AdventureWorks2012 示例数据库的已部署副本的节点。 然后,使用该虚拟驱动器导航到数据库中的表。

## Create a new virtual drive.  
New-PSDrive -Name AWDB -Root SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2012  
  
## Use AWDB: to navigate to a specific table.  
Set-Location AWDB:\Tables\Purchasing.Vendor  

另请参阅

SQL Server PowerShell 提供程序
使用 SQL Server PowerShell 路径
将 URN 转换为 SQL Server 提供程序路径
SQL Server PowerShell