vendredi 25 novembre 2011

Se connecter a une DB SQL et executer une query

Cette fonction se connecte a une DB SQL et retourne le resultat d'une query


Une fois configuré il suffit d'ajouter un alias dans son profils pour y avoir acces plus facilement ;-)


New-item -path alias:get-cmdb -value 


Script :

# Description : Ce script permet de faire des recherches dans une DB ( en l'occurence ici 
#
# Instructions: Copier sur un dossier de votre PC ( exemple c:\pwshell\get-cmdb.ps1 )
#    Ajouter cette ligne à votre fichier Profil : New-item -path alias:get-cmdb -value "PATH DE VOTRE SCRIPT"
#    Redemarrer votre session Powershell.
#
# Exemple : get-cmdb | ? {$_.name -match "toto"}
#
#
# ENTREE :  Nom du serveur
# SORTIE :  Hash Table


function sql_to_hash ([string]$query){
 $Database = NOM_DE_LA_DB
 $Server = SERVER
 $pwd = PASSWORD
 $Username = USERNAME
 $query = $query
 
 # Connect to SQL and query data, extract data to SQL Adapter
 $SqlQuery = $query
 $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
 $SqlConnection.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;Trusted_Connection=False;User Id=$Username;Password=$pwd"
 $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
 $SqlCmd.CommandText = $SqlQuery
 $SqlCmd.Connection = $SqlConnection
 $SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
 $SqlAdapter.SelectCommand = $SqlCmd
 $DataSet = New-Object System.Data.DataSet
 $nRecs = $SqlAdapter.Fill($DataSet)
 $nRecs | Out-Null
 
 #Populate Hash Table
 $objTable = $DataSet.Tables[0]
 $object = New-Object psobject
 $object = $objTable
 $object
}

$Server = $args[0]

if ($Server)
{
 $server = $Server.replace("*","%")   # Permet de faire des recherches groupes
}
if ( $Server -eq $null)
{
 $query = "
#AJOUTER UNE QUERY SQL LISTANT TOUT LES SERVEURS DE LA DB
}
else
{
$query = "
#AJOUTER UNE QUERY SQL EN AJOUTANT UNE CONDITION POUR QUE LE NOM DU SERVEUR SOIT EGALE A LA VARIABLE $server 

}

 sql_to_hash $query 

Aucun commentaire:

Enregistrer un commentaire