Navegar por las rutas de acceso de SQL Server PowerShell

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

El proveedor de PowerShell del motor de base de datos expone el conjunto de objetos de una instancia de SQL Server en una estructura similar a una ruta de acceso del archivo. Puede usar los cmdlets de Windows PowerShell para navegar por la ruta de acceso del proveedor y crear las unidades personalizadas para acortar la ruta de acceso que tiene que escribir.

Nota:

Hay dos módulos de SQL Server PowerShell: SqlServer y SQLPS.

El módulo SqlServer es el módulo de PowerShell actual que se va a usar.

El módulo SQLPS está incluido en la instalación de SQL Server (por motivos de compatibilidad con versiones anteriores), pero ya no se actualiza.

El módulo SqlServer contiene versiones actualizadas de los cmdlets en SQLPS e incluye cmdlets para admitir las características más recientes de SQL.

Instale el módulo SqlServer desde la Galería de PowerShell.

Para más información, consulte el artículo sobre SQL Server PowerShell.

Windows PowerShell implementa cmdlets para navegar por la estructura de ruta de acceso que representa la jerarquía de objetos compatible con un proveedor de PowerShell. Cuando ha navegado a un nodo de la ruta de acceso, puede usar otros cmdlets para realizar operaciones básicas en el objeto actual. Dado que los cmdlets se usan con frecuencia, tienen alias canónicos cortos. También hay un conjunto de alias que asigna los cmdlets a comandos del símbolo del sistema similares, y otro conjunto para los comandos shell de UNIX.

El proveedor de SQL Server implementa un subconjunto de los cmdlets de proveedor, que se muestran en la tabla siguiente:

cmdlet Alias canónico Alias de cmd Alias de shell de UNIX Descripción
Get-Location gl pwd pwd Obtiene el nodo actual.
Set-Location sl cd, chdir cd, chdir Cambia el nodo actual.
Get-ChildItem gci dir ls Enumera los objetos almacenados en el nodo actual.
Get-Item gi Devuelve las propiedades del elemento actual.
Rename-Item rni rn ren Cambia el nombre de un objeto.
Remove-Item ri del, rd rm, rmdir Quita un objeto.

Importante

Algunos identificadores de SQL Server (nombres de objeto) contienen caracteres que Windows PowerShell no admite en los nombres de ruta de acceso. Para obtener más información sobre cómo usar nombres que contengan estos caracteres, vea SQL Server Identifiers in PowerShell.

Información de SQL Server devuelta por Get-ChildItem

La información devuelta por Get-ChildItem (o sus alias dir e ls ) depende de la ubicación en una ruta de acceso de SQLSERVER.

Ubicación de la ruta de acceso Resultados de Get-ChildItem
SQLSERVER:\SQL Devuelve el nombre del equipo local. Si ha usado SMO o WMI para conectarse a las instancias del motor de base de datos en otros equipos, esos equipos también se enumeran.
SQLSERVER:\SQL\nombreDeEquipo La lista de instancias del motor de base de datos en el equipo.
SQLSERVER:\SQL\nombreDeEquipo\nombreDeInstancia Lista de tipos de objeto de nivel superior en la instancia, como Extremos, Certificados y Bases de datos.
Nodo de clase de objeto, como Databases Lista de objetos de ese tipo, como la lista de bases de datos: master, model, AdventureWorks2022.
Nodo de nombre de objeto, como AdventureWorks2022 Lista de los tipos de objeto contenidos en el objeto. Por ejemplo, una base de datos mostraría tipos de objeto como tablas y vistas.

De forma predeterminada, Get-ChildItem no muestra ningún objeto del sistema. Use el parámetro Force para ver los objetos del sistema, como los objetos del esquema sys .

Unidades personalizadas

Windows PowerShell deja que los usuarios definan las unidades virtuales, a las que se hace referencia como unidades de PowerShell. Estas unidades se asignan en los nodos de inicio de una instrucción de ruta de acceso. Se suelen usar para acortar las rutas de acceso que se escriben con frecuencia. Las rutas de acceso de SQLSERVER: pueden requerir mucho tiempo y espacio en la ventana de Windows PowerShell, así como mucho esfuerzo para escribirlas. Si va a trabajar mucho en un nodo de ruta de acceso determinado, puede definir una unidad de Windows PowerShell personalizada que se asigne a ese nodo.

Use Alias de Cmdlet de PowerShell

Use un alias de cmdlet

  • En lugar de escribir un nombre completo de cmdlet, escriba un alias más corto que se asigna a un comando de símbolo de sistema.

Ejemplo de Alias (PowerShell)

Por ejemplo, puede usar uno de los conjuntos de cmdlets o alias siguientes para recuperar una lista de las instancias de SQL Server disponibles para navegar a la carpeta SQLSERVER:\SQL y solicitar la lista de elementos secundarios de la misma:

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

Uso de Get-ChildItem

Devuelve información mediante Get-Childitem

  1. Navega hasta el nodo del que quiere obtener una lista de elementos secundarios.

  2. Ejecuta Get-Childitem para obtener la lista.

Ejemplo de Get-ChildItem (PowerShell)

Estos ejemplos muestran la información devuelta por Get-Childitem para varios nodos en una ruta de acceso del proveedor de 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  

Crea una unidad personalizada

Cree y use una unidad personalizada

  1. Use New-PSDrive para definir una unidad personalizada. Use el parámetro de Root para especificar la ruta de acceso representada por el nombre de la unidad personalizada.

  2. Haga referencia al nombre de la unidad personalizada en cmdlets de navegación de la ruta de acceso como Set-Location.

Ejemplo de unidad personalizada (PowerShell)

Este ejemplo crea una unidad virtual denominada AWDB que asigna al nodo de una copia implementada de la base de datos de ejemplo de AdventureWorks2022. La unidad virtual se usa para navegar a una tabla de la base de datos.

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

Consulte también