Aller au contenu

Change
Photo

Vbs : Read Data On Mysql


  • Veuillez vous connecter pour répondre
Aucune réponse à ce sujet

#1
Ashina

Ashina

    Geekette Royale

  • Membre
  • 5 904 messages
  • LocalisationLes Valettes [Suisse]

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.S. Ne soyez pas surpris de ne pas trouver certaines variables déclarées, elles le sont dans un autre fichier (MDT oblige).


Modifié par Ashina, 05 mars 2014 - 15:10.

  • 0
T4G: HomeMade => Antec 902, Core2Quad Q9650, 8Gb RAM DDR2 1066MHz, SSD OCZ 120Gb, GTX 460 1Gb
ULTRAPORTABLE: Y'a plus non plus... :arf:
P4G: Y'a plus... :arf:




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)