|
|
|
|
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 pourcent 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
' 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
Salut,
|
Salut,
|
EN faites voici Mon scrupt Qui me permet de recuperer l espace restant de mes disque ! et jeveux que a chaque lancement de se script ca ma stock les données concernant les disque dans une base de donnée type ACESS.Alors est ce que qu un peu me dire comment envoyer ses données a ma base Merci d avnce a toutes et a tous!!!
|
Bonjour,
'----------------------------------------------------------
' Script de description des Hdd dans une page web
' ----------------------------------------------------------
'
'*************************************************************************
'Constante d'accèss au fichier *.mdb
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adUseClient = 3
Const MoteurDeRecherche = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
'
' Déclaration des variables de la base de données ACCESS
'
Dim oFS, Disque, Fichier, AccesFichier
Dim objConnection
Dim objRecordset
Dim AccesFichier
'*************************************************************************
'********-----------------------------------------------------************
Dim fso
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
DestHtml = "hd.html"
'********-----------------------------------------------------************
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)
CreateHTML (DestHTML )
CreateBDAccess()
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
' ----------------------------------------------------------
Function 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 Function
Function CreateBDAccess()
'Nom du fichier MSAccess
Fichier = InputBox(msgTexte, "Saisie du fichier à créer", "C:\MaBase.MDB")
'Établie un objet ADO pour déplacement dans objet
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
'Créer un objet fichier pour atteindre le fichier mdb
Set oFS = CreateObject("Scripting.FileSystemObject")
'Lecteur courant ?
Disque = Mid(Fichier, 1, 2)
'Capture du lecteur
Set oLecteur = oFS.GetDrive(Disque)
'Lecteur prêt ?
If (oLecteur.IsReady) Then
'Accroche le fichier sur le moteur de recherche
AccesFichier = MoteurDeRecherche & Fichier
'Ouverture du fichier access
objConnection.Open AccesFichier
'Création d'un ensemble "recordset" sur les données souhaité
objRecordset.Open "SELECT * FROM MaTable" , objConnection, adOpenStatic, adLockOptimistic
End If
For i = 0 to cnt
objRecordset.AddNew
objRecordset("Champs1") = Aff(i)
objRecordset("Champs2") = Aff0(i)
objRecordset("Champs3") = Aff1(i)
objRecordset("Champs4") = Aff2(i)
objRecordset("Champs5") = Aff3(i)
objRecordset.Update
Next
End Function
Lupin ~L'essentiel est invisible pour les yeux~ ~On ne voit bien qu'avec le coeur~ |
Re:
|
Salut Mister Lupin et encore merci pour pour ton aide et desolé pour le derrangement occasioné!
|
Je me suis appercu que dans ton script tu a defini 2 fois la variable suivante :
|
Voila MIster Lupin en faisant un copier coller du code ci dessous ya de l avancement mais j ai encore bloqué alors si tu peux debloquer la situation se serai cool merci
|
Salut Mister lameche,
'-------------------------------------------------------------------------
' Script de description des Hdd dans une page web et/ou une base Access
' ------------------------------------------------------------------------
'
'*************************************************************************
'Constante d'accèss au fichier *.mdb
'
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adUseClient = 3
Const MoteurDeRecherche = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
'
' Déclaration des variables de la base de données ACCESS
'
Dim oFS, objConnection, objRecordset
'*************************************************************************
'
Dim objWMIService, colItems, DestHtml
'Créer un objet fichier
Set oFS = WScript.CreateObject("Scripting.FileSystemObject")
'********-----------------------------------------------------************
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)
DestHtml = "hd.html"
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)
CreateHTML (DestHTML )
CreateBDAccess()
Set objWMIService = Nothing
Set colItems = Nothing
'
'**** Fin du script
WScript.Quit
Function Display( strComputer )
Dim objWMIServ, colonnesItem
On Error Resume Next
Set objWMIServ = 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 colonnesItem = objWMIServ.ExecQuery("Select * from Win32_LogicalDisk where DriveType=3",,48)
For Each objItem in colonnesItem
Aff(cnt) = strComputer
Aff0(cnt) = Mid(objItem.Name,1,1)
If ( objItem.Size > 0 ) Then
Aff1(cnt) = CStr( Int( 0.5 + ( objItem.Size / 1073741824 ) ) )
End If
If (objItem.FreeSpace > 0) Then
Aff2(cnt) = CStr( Int( 0.5 + ( objItem.FreeSpace / 1073741824 ) ) )
End If
If ( (objItem.Size > 0) And (objItem.FreeSpace > 0) ) Then
Aff3(cnt) = ( Int( 0.5 + ( 100 * objItem.FreeSpace / objItem.Size) ) ) & vbCrLf
End If
cnt = cnt + 1
Redim Preserve Aff(cnt)
ReDim Preserve Aff0(cnt)
Redim Preserve Aff1(cnt)
Redim Preserve Aff2(cnt)
Redim Preserve Aff3(cnt)
Next
Set objWMIServ = Nothing
Set colonnesItem = Nothing
End Function
' ----------------------------------------------------------
Function CreateHTML(filename)
Dim ts
Set ts = oFS.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>Remanier le 21 juin 2005 lol</font></b>"
ts.WriteLine "</CENTER></BODY>"
ts.WriteLine "</HTML>"
ts.close
Set ts = Nothing
End Function
' ----------------------------------------------------------
Function CreateBDAccess()
Dim Fichier, Disque, AccessFichier
'Nom du fichier MSAccess
Fichier = InputBox(msgTexte, "Saisie du fichier à créer", "C:\MaBase.MDB")
'Établie un objet ADO pour déplacement dans objet
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
'Lecteur courant ?
Disque = Mid(Fichier, 1, 2)
'Capture du lecteur
Set oLecteur = oFS.GetDrive(Disque)
'Si lecteur prêt ?
If (oLecteur.IsReady) Then
'Si le fichier existe ?
If (oFS.FileExists(Fichier)) Then
'Accroche le fichier sur le moteur de recherche
AccesFichier = MoteurDeRecherche & Fichier
'Ouverture du fichier access
objConnection.Open AccesFichier
'Création d'un ensemble "recordset" sur toutes les données souhaitées
objRecordset.Open "SELECT * FROM EspaceDisk" , objConnection, adOpenStatic, adLockOptimistic
End If
End If
For i = 0 To (cnt -1)
objRecordset.AddNew
objRecordset("Ordinateur") = Aff(i)
objRecordset("Lecteur") = Aff0(i)
objRecordset("Grandeur") = Aff1(i)
objRecordset("Disponible") = Aff2(i)
objRecordset("Ratio") = Aff3(i)
objRecordset.Update
Next
objConnection.Close
Set objConnection = Nothing
Set objRecordset = Nothing
Set oFS = Nothing
Set oLecteur = Nothing
End Function
Je crois qu'il n'y as pas de mauvaise manière, il suffit d'obtenir le bon résultat, l'erreur que j'avais occure lorsque l'une des partitions d'un disque quelconque n'est pas formatté. Or c'est pour cela que j'ai rajouté un contrôle sur la lecture. Il y a encore du travail, mais ça tient la route :-) Lupin ~L'essentiel est invisible pour les yeux~ ~On ne voit bien qu'avec le coeur~ |
En faite avec le code ci dessus ca creer Une nouvelle Base de donnée si j ai bien compris biensur desolé je debute lool
|
Salut,
|
Salut sHUMI VOILA ENFIN LE SCRIPT QUI MARCHE NIKEL EN FAITE J AVAIS UN PROBLEME SUR MA BECANE AVEC Mes Sources ODBC!!
|
Bonjour,
|
Bonjour a tous j'espere qu'il y aura quelqu'un car moi je cherche a automatiser via un script des données vers access.
|