Accès à une base de données
Nous pouvons utiliser powershell pour nous connecter à une base de données Access
Vous devez tout d’abords installer au poste le moteur de base Access
Il permet d’accéder aux données d’access
Il est téléchargeable à ce lien http://www.microsoft.com/fr-fr/download/details.aspx?id=13255
Test effectué sur un Windows 8.1 ; serveur 2012-R2et un office 2013 64 bits
#connexion à la base de données
#System.Data.OleDb.OleDbConnection Représente une connexion ouverte à une source de données.
$ConnString = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=D:\W2K8\cours\script powershell\base de données\contact.accdb"
$conn = new-object System.Data.OleDb.OleDbConnection($ConnString) $conn.open()
#requête SQL pour le choix de la table et des champs et recherche des données #System.Data.OleDb.OleDbCommand Représente une instruction SQL à exécuter par rapport à #une source de données ($conn).
$cmd = new-object System.Data.OleDb.OleDbCommand("select * from Contacts",$Conn)
#OleDbDataAdapter joue le rôle de pont entre DataSet et une source de données pour la récupération et l'enregistrement de données.
#OleDbDataAdapter fournit ce pont en utilisant Fill pour charger les données à partir de la source de données
$da = new-object System.Data.OleDb.OleDbDataAdapter($cmd)
#Initialise une nouvelle instance de la classe DataTable #Représente une table de données en mémoire.
$dt = new-object System.Data.DataTable
#La méthode Fill récupère les données de la source de données à l'aide d'une instruction SELECT
$da.fill($dt) | out-null
Write-host "Table contacts : " -f Yellow
#$dt récupère toutes les données de la table contacts
$dt | ft ID,nom, prénom, Société, "adresse de messagerie", fonction, "Téléphone professionnel" -AutoSize
$conn.close()