Introdução
Em alguns de nossos scripts vamos precisar de informações que estão em um servidor de banco de dados, pensando nisso é importante sabermos manipularmos conexões com bancos de dados utilizando Powershell.Nesse artigo vou mostrar códigos utilizados para efetuar leitura, edição e outras ações em servidor MySQL e MSSQL, além de um script pronto para execução de Insert, Select, Delete e outros comandos em ambas plataformas.
MSSQL
Para conexões com MSSQL utilizamos objetos do tipo System.Data.SqlClient.SqlConnection, podemos criar o objeto com seguinte comando.$sql = new-object System.Data.SqlClient.SqlConnection;
Agora podemos analisar as propriedades dele com o cmdlet Get-Member
$sql | Get-Member
Vamos começar preenchendo a propriedade ConnectionString, com os dados da conexão.
$server = "localhost"
$user = "sa"
$password = "Pa$$w0rd"
$database = "TESTE_DB"
$sql.ConnectionString=“server=$server;user id=$user;password=$password;database=$database;pooling=false”
Após criarmos a conexão precisamos criar um objeto do tipo System.Data.SqlClient.SqlCommand para colocarmos o comando que vamos executar.
$sqlCmd = New-Object System.Data.SqlClient.SqlCommand
Também vamos precisar ter a string do comando que vamos executar
$Comando = “select * from tabela
Agora precisamos atribuir o comando que criamos e a conexão ao objeto $sqlCmd
$sqlCmd.CommandText = $comando
$sqlCmd.Connection = $sql
Feito isso temos o objeto $sqlCmd pronto para a execução, iniciamos então abrindo a conexão e executando o comando.
$sql.open()
$sqlReader = $sqlcmd.ExecuteReader()
Agora temos que verificar os itens retornados, eles ficam dentro do $sqlReader no método Read, então executamos o código a baixo para retornar os itens.
while($sqlReader.Read()){
$sqlReader[0]
}
Devemos notar que o $sqlReader é um vetor, em cada uma das posições do vetor vai representar uma das colunas retornadas pelo select, caso queiramos a segunda coluna trocamos o [0] por [1].
Após isto não podemos esquecer de fechar a conexão com o banco.
$sql.Close()
Caso nosso interesse seja um insert, delete ou outro comando que não seja de leitura, utilizamos o ExecuteNonQuery ao invés do ExecuteReader.
$sqlReader = $sqlCmd.ExecuteNonQuery()
MySQL via PowerShell
Para utilizarmos o MySQL no Powershell é necessário termos uma DLL chamada MySql.Data.dll, que vem pode ser baixada no site do MySQL ( ela vem junto ao cliente MySQL )Primeiro temos que carregar a DLL para nossa sessão Powershell.
[void][system.reflection.Assembly]::LoadFrom(“C:\MySql.Data.dll”)
Todo processo é muito semelhante ao do MSSQL, porém os objetos utilizados para criação da connection string e dos comandos muda.
Para criarmos a connection string utilizamos:
$sql = new-object MySql.Data.MySqlClient.MySqlConnection;
$server = "localhost"
$user = "root"
$password = "Pa$$w0rd"
$database = "TESTE_DB"
$sql.ConnectionString=“server=$server;user id=$user;password=$password;database=$database;pooling=false”
Então para executarmos o comando criamos o objeto de comando referente ao MySQL.
$sqlCmd = New-Object MySql.Data.MySqlClient.MySqlCommand
O resto do processo permanece o mesmo.
Script pronto!
Você pode baixar um script pronto que fiz com funções para efetuar as conexões na Gallery Script, linkReferências
Esse artigo foi desenvolvido com base no conhecimento adquerido na execução de projetos de automatização.
Retirado de: https://social.technet.microsoft.com/wiki/pt-br/contents/articles/14100.executando-comandos-mysql-e-mssql-no-powershell.aspx
Este artigo foi originalmente publicado por:
Matheus Kamphorst | Blog: http://howtoserver.com
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.