Vbs : Read Data On Mysql

Hello l'équipe,

 

Je viens vers vous avec un truc un peu bizarre, mais dont je dois respecter les contraintes pour cause de contexte client. En clair, j'ai:

 

- Un inventaire du parc de machines sur GLPI (données sur une base MySQL)

- Un serveur MDT pour le déploiement automatisé de machines (pas besoin de connaître la solution dans le problème présent, il suffit de savoir que ça repose sur l'exécution de scripts WSF & VBS).

 

Je dois, pour initialiser le hostname d'une machine à déployer, créer une fonction d'initialisation de ce hostname selon la méthode suivante:

 

- Récupération du numéro de série de la machine (requête WMI toute bête, déjà fait et validé)

- Requête MySQL dans la database GLPI: select computername, serialnumber from table where serialnumber = numéro de série selon les données remontées par WMI

 

Jusque là, en fait, rien de bien méchant... Il y a juste une contrainte dont je ne peux pas me défaire: pour la requête SQL, je ne peux pas utiliser de driver ADO/ODBC (donc de driver à installer et configurer sur la machine) parce que cette initialisation se fait dans un environnement WinPE.

 

Ce qui me manque actuellement, c'est de pouvoir valider que la connexion à la database telle que je l'ai faite (ci-dessous) fonctionne et pouvoir stocker le résultat de la requête dans une variable VBS. Si ce n'est pas le cas, est-ce que vous auriez d'autres idées ?

 

Merci d'avance à tous  :)

 

'Query for serialnumber
	strComputer = "."
	Set objWMIService = GetObject("winmgmts:" _
		& "{impersonationLevel=impersonate}!\\\" & strComputer & "\\root\\cimv2")
Set colItems = objWMIService.ExecQuery( _
	"SELECT * FROM Win32_ComputerSystemProduct") 
For Each objItem in colItems
	itemSN = objItem.IdentifyingNumber
	'SerialNumberPC = "PC"&objItem.IdentifyingNumber

Next

'SQL query in GLPI: Select ComputerName where S/N = WMISN

Function GlpiDatabaseRead
Dim connectMysql, readData, cmdSQL, recordSet

'SQL connection, create query
connectMysql.ConnectionString = "Provider=MySQLProv;Data Source=mydb;SERVER=lndsi045.ad.siasd.ch;DATABASE=glpi;UID=username;PASSWORD=password;PORT=3306;"
cmdSQL = "SELECT glpi_computers.name, glpi_computers.serial FROM glpi_computers WHERE glpi_computers.serial = "&itemSN
connectMysql.Open()
Wscript.Echo "SQL Query is: "&cmdSQL

'Exec SQL Query
readData = cmdSQL.ExecuteReader()
While readData.Read()
	Response.Write recordSet("glpi_computers.serial")
Wend
'Close SQL connection
connectMysql.Close()
'If recordSet exist
If recordSet="" Then
	Wscript.Echo "This computer doesn't exist in the database"
Else
	Wscript.Echo "Computer Name is : "&recordSet
End If

End Function


<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span>P.S. Ne soyez pas surpris de ne pas trouver certaines variables déclarées, elles le sont dans un autre fichier (MDT oblige).</span></p>