Compatibilidad del Editor de PowerShell para Azure Data Studio
Esta extensión proporciona compatibilidad avanzada del Editor de PowerShell con Azure Data Studio. Ahora, puede escribir y depurar scripts de PowerShell mediante la excelente interfaz tipo IDE que proporciona Azure Data Studio.
Características
- Resaltado de sintaxis
- Fragmentos de código
- IntelliSense para cmdlets y más
- Análisis basado en reglas proporcionado por el Analizador de scripts de PowerShell
- Ir a la definición de cmdlets y variables
- Buscar referencias de cmdlets y variables
- Detección de símbolos de documentos y área de trabajo
- Ejecutar la selección de código de PowerShell mediante F8
- Iniciar la ayuda en línea para el símbolo debajo del cursor con Ctrl+F1
- Compatibilidad básica de la consola interactiva.
Instalar la extensión
Para instalar la versión oficial de la extensión de PowerShell, siga el procedimiento que se indica en la documentación de Azure Data Studio. En el panel Extensiones, busque la extensión “PowerShell” e instálela. Recibirá notificaciones automáticamente sobre las futuras actualizaciones de la extensión.
También puede instalar un paquete VSIX desde la página Versiones mediante la línea de comandos:
azuredatastudio --install-extension PowerShell-<version>.vsix
Compatibilidad con plataformas
- Windows 7 a Windows 10 con Windows PowerShell v3 y posteriores, y PowerShell Core
- Linux con PowerShell Core (todas las distribuciones compatibles con PowerShell)
- macOS con PowerShell Core
Vea las preguntas más frecuentes para obtener respuestas a preguntas comunes.
Instalación de PowerShell Core
Si ejecuta Azure Data Studio en macOS o Linux, puede que también necesite instalar PowerShell Core.
PowerShell Core es un proyecto de código abierto hospedado en GitHub. Para obtener más información sobre cómo instalar PowerShell Core en las plataformas macOS o Linux, vea los artículos siguientes:
Scripts de ejemplo
Estos son algunos scripts de ejemplo de la carpeta examples
de la extensión que puede usar para descubrir funciones de edición y depuración de PowerShell. Vea el archivo README.md incluido para obtener más información sobre cómo usarlas.
Esta carpeta se encuentra en la ruta siguiente:
$HOME/.azuredatastudio/extensions/microsoft.powershell-<version>/examples
o si usa la versión preliminar de la extensión.
$HOME/.azuredatastudio/extensions/microsoft.powershell-preview-<version>/examples
Para abrir o ver los ejemplos de la extensión en Azure Data Studio, ejecute el código siguiente desde el símbolo del sistema de PowerShell:
azuredatastudio (Get-ChildItem $Home\.azuredatastudio\extensions\microsoft.powershell-*\examples)[-1]
Crear y abrir archivos
Para crear y abrir un archivo dentro del editor, use la opción New-EditorFile desde el terminal integrado de PowerShell.
PS C:\temp> New-EditorFile ExportData.ps1
Este comando no funciona con cualquier tipo de archivo, no solo con los archivos de PowerShell.
PS C:\temp> New-EditorFile ImportData.py
Para abrir uno o más archivos en Azure Data Studio, use el comando Open-EditorFile
.
Open-EditorFile ExportData.ps1, ImportData.py
Sin foco en la consola al ejecutar
Los usuarios que suelan trabajar con SSMS estarán acostumbrados a ejecutar una consulta y ser capaces de volverla al ejecutar sin tener que cambiar al panel de consulta. En este caso, el comportamiento predeterminado del editor de código puede resultarle extraño. Para mantener el foco en el editor al ejecutar con F8, cambie la opción siguiente:
"powershell.integratedConsole.focusConsoleOnExecute": false
El valor predeterminado es true
con fines de accesibilidad.
Tenga en cuenta que este valor impedirá que el foco cambie a la consola, incluso si usa un comando que realice llamadas explícitas de entrada, como Get-Credential
.
Ejemplos de PowerShell T-SQL
Para poder usar los ejemplos que aparecen a continuación, necesita instalar el módulo SqlServer desde la Galería de PowerShell.
Install-Module -Name SqlServer
Nota
Con la versión 21.1.18102
y posteriores, el módulo SqlServer
es compatible con PowerShell Core 6.2 y posteriores, además de Windows PowerShell.
En este ejemplo, usamos el cmdlet Get-SqlInstance
para obtener los objetos de SMO de servidor para los ServerA y ServerB. En el resultado predeterminado de este comando, se incluyen el nombre de la instancia, la versión, el Service Pack y el nivel de actualización acumulativa de las instancias.
Get-SqlInstance -ServerInstance ServerA, ServerB
Este es un ejemplo de la apariencia del resultado:
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
El módulo SqlServer
contiene un proveedor denominado SQLRegistration
que permite acceder mediante programación a los siguientes tipos de conexiones de SQL Server guardadas:
- Servidor de motor de base de datos (servidores registrados)
- Servidor de administración central (CMS)
- Analysis Services
- Servicio de integración
- Reporting Services
En el ejemplo siguiente, realizaremos una operación de dir
(alias de Get-ChildItem
) para obtener la lista de todas las instancias de SQL Server del archivo de servidores registrados.
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse
Este es un ejemplo de la apariencia del resultado:
Mode Name
---- ----
- ServerA
- ServerB
- localhost\SQL2017
- localhost\SQL2016Happy
- localhost\SQL2017
Puede usar el cmdlet Get-SqlDatabase
para muchas operaciones que implican una base de datos u objetos contenidos en una. Si proporciona valores para los parámetros -ServerInstance
y -Database
, solo se recuperará ese objeto de base de datos. Pero, si solo especifica el parámetro -ServerInstance
, se devolverá una lista completa de todas las bases de datos de esa instancia.
Este es un ejemplo de la apariencia del resultado:
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
En el ejemplo siguiente, se usa el cmdlet Get-SqlDatabase
para recuperar una lista de todas las bases de datos en la instancia de ServerB y, después, se presenta una cuadrícula o tabla (mediante el cmdlet Out-GridView
) para seleccionar las bases de datos para las que se realizarán copias de seguridad. Cuando el usuario hace clic en el botón “Aceptar”, solo se realizarán copias de seguridad de las bases de datos resaltadas.
Get-SqlDatabase -ServerInstance ServerB |
Out-GridView -PassThru |
Backup-SqlDatabase -CompressionOption On
En este ejemplo, se obtiene una lista de todas las instancias de SQL Server del archivo de servidores registrados y, después, se realiza una llamada a Get-SqlAgentJobHistory
, que informa de todos los trabajos del Agente SQL con errores desde medianoche para todas las instancias de SQL Server de la lista.
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE {$_.Mode -ne 'd' } |
FOREACH {
Get-SqlAgentJobHistory -ServerInstance $_.Name -Since Midnight -OutcomesType Failed
}
En este ejemplo, realizaremos una operación de dir
(alias de Get-ChildItem
) para obtener la lista de todas las instancias de SQL Server del archivo de servidores registrados y, después, usaremos el cmdlet Get-SqlDatabase
para obtener una lista de las bases de datos de cada una de esas instancias.
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' -Recurse |
WHERE { $_.Mode -ne 'd' } |
FOREACH {
Get-SqlDatabase -ServerInstance $_.Name
}
Este es un ejemplo de la apariencia del resultado:
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
Informar de problemas
Si tiene algún problema con la extensión de PowerShell, vea los documentos de solución de problemas para obtener información sobre cómo diagnosticar problemas e informar sobre estos.
Nota de seguridad
En el caso de problemas de seguridad, vea este recurso.
Colaborar en el desarrollo del código
Para obtener más información sobre cómo colaborar en el desarrollo de esta extensión, vea la documentación de desarrollo.
Mantenedores
- Keith Hill - @r_keith_hill
- Tyler Leonhardt - @TylerLeonhardt
- Rob Holt
Licencia
Esta extensión se concederá bajo la licencia MIT. Para obtener más información sobre los archivos binarios de terceros que incluimos con las versiones de este proyecto, vea el archivo de avisos de terceros.
Código de conducta
El proyecto ha adoptado el Código de conducta de código abierto de Microsoft. Para obtener más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.