OpenSearch/docs/reference/sql/endpoints/client-apps/ps1.asciidoc

51 lines
1.7 KiB
Plaintext

[role="xpack"]
[testenv="platinum"]
[[sql-client-apps-ps1]]
=== Microsoft PowerShell
experimental[]
[quote, https://docs.microsoft.com/en-us/powershell/scripting/powershell-scripting]
____
https://docs.microsoft.com/en-us/powershell/[PowerShell] is a task-based command-line shell and scripting language built on .NET.
____
PowerShell is available on all recent Windows Desktop OSes. It also has embedded ODBC support, thus offering a quick and accessible way to
connect to {es}.
==== Prerequisites
* Microsoft PowerShell
* {es-sql} <<sql-odbc, ODBC driver>>
* A preconfigured User or System DSN (see <<dsn-configuration,Configuration>> section on how to configure a DSN).
==== Writing a script
While putting the following instructions into a script file is not an absolute requirement, doing so will make it easier to extend and
reuse. The following instructions exemplify how to execute a simple SELECT query from an existing index in your {es} instance, using a DSN
configured in advance. Open a new file, `select.ps1`, and place the following instructions in it:
["source","powershell",subs="attributes,callouts"]
--------------------------------------------
$connectstring = "DSN=Local Elasticsearch;"
$sql = "SELECT * FROM library"
$conn = New-Object System.Data.Odbc.OdbcConnection($connectstring)
$conn.open()
$cmd = New-Object system.Data.Odbc.OdbcCommand($sql,$conn)
$da = New-Object system.Data.Odbc.OdbcDataAdapter($cmd)
$dt = New-Object system.Data.datatable
$null = $da.fill($dt)
$conn.close()
$dt
--------------------------------------------
Now open a PowerShell shell and simply execute the script:
[[apps_excel_exed]]
.Run SQL in PowerShell
image:images/sql/odbc/apps_ps_exed.png[]
// vim: set noet fenc=utf-8 ff=dos sts=0 sw=4 ts=4 tw=138 columns=140