vbScript et base de donnée access

vbScript et base de donnée access - VB/VBA/VBS - Programmation

Marsh Posté le 14-06-2005 à 11:33:54    


bonjour  
donc voila mon souci j ai mon script qui me permet de recuperer l espace de mes disques ainsi que l espace libre en pourent je souhaiterais  stocker ces informations horodatées dans une base de type Access et faire des remonter d'alerte via Lotus si un volume est en dessous d un seuil pre-defini.
Alors est ce que quelqu un pourrai m orienter sur la bonne voie parce que je ne sais pas su tout commnt faire comme je suis debutant En VBscript voila merci d avance a tous!!!
 
voici mon script pour vous donner un idée :
 
' FreeSpace.vbs
' Montrez l'espace disque libre pour toutes les disques locaux
 
'[#0046b8] Check command line parameters
Select Case WScript.Arguments.Count
    Case 0
        ' Default if none specified is local computer ("." )
        Set objWMIService = GetObject( "winmgmts://./root/cimv2" )
        Set colItems = objWMIService.ExecQuery( "Select * from Win32_ComputerSystem", , 48 )
        For Each objItem in colItems
            strComputer = objItem.Name
        Next
    Case 1
        ' Command line parameter can either be a computer name
        ' or "/?" to request online help
        strComputer = Wscript.Arguments(0)
        if InStr( strComputer, "?" ) > 0 Then Syntax
    Case Else
        ' Maximum is 1 command line parameter
        Syntax
End Select
 
Display( strComputer )
WScript.Quit(0)
 
 
Function Display( strComputer )
    strMsg = vbCrLf & "Name:" & vbTab & "Drive:" & vbTab & "Size:" & _
             vbTab & "Free:" & vbTab & "% Free:" & vbCrLf & "=====" & _
             vbTab & "======" & vbTab & "=====" & vbTab & "=====" & _
             vbTab & "=======" & vbCrLf
    On Error Resume Next
    Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/cimv2" )
    If Err.Number Then
        WScript.Echo vbCrLf & "Error # " & CStr( Err.Number ) & _
                     " " & Err.Description
        Err.Clear
        Syntax
    End If
    On Error GoTo 0
    ' Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where MediaType=12",,48)
    Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where DriveType=3",,48)
    For Each objItem in colItems
        strMsg = strMsg & strComputer & vbTab & _
                 objItem.Name & vbTab & _
                 CStr( Int( 0.5 + ( objItem.Size / 1073741824 ) ) ) & _
                 vbTab & _
                 CStr( Int( 0.5 + ( objItem.FreeSpace / 1073741824 ) ) ) & _
                 vbTab & _
                 CStr( Int( 0.5 + ( 100 * objItem.FreeSpace / objItem.Size) ) ) & _
                 vbCrLf
    Next
    'WScript.Echo strMsg => cette commande m affcihe le resultat dans une MSGBOX
    'Cela permet de m afficher mon resultat sur une page Web
     dim IE
set ie = createobject("Internetexplorer.application" )
ie.navigate("about:blank" )
do while ie.document.readystate<>"complete"
wscript.sleep 100
loop
ie.document.body.innertext = strmsg
ie.visible = true
set ie = nothing
End Function
[/#0046b8]

Reply

Marsh Posté le 14-06-2005 à 11:33:54   

Reply

Marsh Posté le 18-06-2005 à 18:59:17    

mouai. les doubles post ne sont pas très bien vus mais passons.
 
Tu dois faire ta remontée dans Acces tous les combiens de temps ? (5 min, 5 heures ...)

Reply

Marsh Posté le 19-06-2005 à 12:02:53    

j aimerais bien la faire dasn un premier temps toutes les 5 minutes juste pour tester si ca marche puis par la suite genre 2 a 3fois par jours donc on va dire tout les 8 heures

Reply

Marsh Posté le 22-06-2005 à 09:55:02    

En faite MOi ma base est deja creé sous Access elle est Nommé "BdDisque" avec une Table Applée "EspaceDisque" ET qui contient les champs suivants:
"Nom"
"Drive"
"Size"
"Free"
"Pourcentage"
"Date "
Moi je souhaite UNIQUEMENT ENVOYER LES DONNEES RENVOYe PAR MON SCRIPT dans ma base de données que j ai deja creé sur Access . Il faut que a chaque lancement du script les données soit memorise dans cette base voila
ALors si Lupin ou quelqu un pouvait m aider se serais sympa merci
voici mon script qui fonctionne deja pour la recuperation des données:
 
'----------------------------------------------------------
' Script de description des Hdd dans une page web
' ----------------------------------------------------------
Dim cnt
dim Aff()
dim Aff0()
dim Aff1()
dim Aff2()
dim Aff3()
 
cnt = 0
Redim Aff(cnt)
Redim Aff0(cnt)
Redim Aff1(cnt)
Redim Aff2(cnt)
Redim Aff3(cnt)
 
Select Case WScript.Arguments.Count
Case 0
' Default if none specified is local computer ("." )
Set objWMIService = GetObject( "winmgmts://./root/cimv2" )
Set colItems = objWMIService.ExecQuery( "Select * from Win32_ComputerSystem", , 48 )
For Each objItem in colItems
strComputer = objItem.Name
Next
Case 1
' Command line parameter can either be a computer name
' or "/?" to request online help
strComputer = Wscript.Arguments(0)
if InStr( strComputer, "?" ) > 0 Then Syntax
Case Else
' Maximum is 1 command line parameter
Syntax
End Select
 
Display( strComputer )
 
Function Display( strComputer )
On Error Resume Next
Set objWMIService = GetObject( "winmgmts://" & strComputer & "/root/cimv2" )
If Err.Number Then
WScript.Echo vbCrLf & "Error # " & CStr( Err.Number ) & _
" " & Err.Description
Err.Clear
Syntax
End If
On Error GoTo 0
' Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where MediaType=12",,48)
Set colItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk where DriveType=3",,48)
For Each objItem in colItems
Aff(cnt) = strComputer
Aff0(cnt) = objItem.Name & vbTab
Aff1(cnt) = CStr( Int( 0.5 + ( objItem.Size / 1073741824 ) ) )
Aff2(cnt) = CStr( Int( 0.5 + ( objItem.FreeSpace / 1073741824 ) ) )
Aff3(cnt) = CStr( Int( 0.5 + ( 100 * objItem.FreeSpace / objItem.Size) ) ) & _
vbCrLf
cnt = cnt + 1
Redim Preserve Aff(cnt)
Redim Preserve Aff0(cnt)
Redim Preserve Aff1(cnt)
Redim Preserve Aff2(cnt)
Redim Preserve Aff3(cnt)
Next
End Function
 
' ----------------------------------------------------------
Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject" )
DestHtml = "hd.html"
CreateHTML DestHTML
 
Sub CreateHTML(filename)
dim ts
set ts=fso.CreateTextFile(filename,true)
ts.writeline "<HTML>"
ts.WriteLine "<BODY>"
ts.WriteLine "<b><CENTER><H3>Affiche les informations des HDD</H3></b>"
ts.writeline "<table border=1 cellspacing=1 width=100%>"
ts.writeline "<tr>"
ts.writeline "<td width=20%>"
ts.writeline "<p align=center><b>Name</b></td>"
ts.writeline "<td width=20%>"
ts.writeline "<p align=center><b>Drive</b></td>"
ts.writeline "<td width=20%>"
ts.writeline "<p align=center><b>Size</b></td>"
ts.writeline "<td width=20%>"
ts.writeline "<p align=center><b>Free</b></td>"
ts.writeline "<td width=20%>"
ts.writeline "<p align=center><b>% Free</b></td>"
ts.writeline "</tr>"
ts.writeline "<tr>"
for i = 0 to cnt
ts.writeline "<td width=20%><p align=center><b><font color=#FF0000>" & Aff(i) & "</font></b></td>"
ts.writeline "<td width=20%><p align=center><b><font color=#FF0000>" & Aff0(i) & "</font></b></td>"
ts.writeline "<td width=20%><p align=center><b><font color=#FF0000>" & Aff1(i) & "</font></b></td>"
ts.writeline "<td width=20%><p align=center><b><font color=#FF0000>" & Aff2(i) & "</font></b></td>"
ts.writeline "<td width=20%><p align=center><b><font color=#FF0000>" & Aff3(i) & "</font></b></td>"
ts.writeline "</tr>"
next
 
ts.writeline "</table>"
ts.writeline "<p> </p>"
ts.writeline "<p> </p>"
ts.writeline "<p> </p>"
ts.writeline "<p> </p>"
ts.writeline "<p> </p>"
ts.writeline "<p> </p>"
ts.writeline "<p> </p>"
ts.writeline "<p> </p>"
ts.writeline "<p> </p>"
ts.writeline "<p> </p>"
ts.writeline "<p> </p>"
ts.writeline "<b><font size=2>Fait le 14 juin 2005 par Mohax qui pète un plomb lol</font></b>"
ts.WriteLine "</CENTER></BODY>"
ts.WriteLine "</HTML>"
ts.close
End Sub

Reply

Marsh Posté le 22-06-2005 à 12:27:29    

j'arrive a suivre dans 1 post, mais si tu en mets un second ...
je rentre demain soir et je regarde de plus près.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed