J'ai à disposition un script qui fonctionne bien et qui me permet de
recueillir la description de l'imprimante, le nbre de page imprimée depuis sa
mise en service et le nbre de page imprimée depuis la mise sous tension.
Aujourd'hui, je dois rajouter le nombre de bac present sur les imprimantes.
Je possède bien les OID. Il y a un OID par BAc et quelque soit le type de
bac(500 feuilles, 2000 feuilles, MP TRAY ect...).
Le parc comprend des imprimantes avec deux bacs, 3 bacs et 4 Bacs. Mon
soucis est que lorsque je précise les 4 OID dans mon script, Seules les
imprimantes possédant les 4 Bacs apparaissent dans le fichier CSV. Si je veux
les imprimantes deux bacs, je n'ecris que deux OID dans le script. Dans ce
cas, j'ai la liste de toutes les imprimantes, y compris les Imp. 4 Bacs mais
dans le fichier n'apparait que la présence de deux bacs.
Coment puis je faire pour faire apparaitre tous les bacs des imprimantes,
quelque soit le nombre de bac ,dans mon fichiers csv?
Ci dessous le script. Les 4 lignes en sus avec OID sont les bacs. Meci de
vos réponses Lumineuses
-------------------------------------------------------------------------------------------------------------------
Set oFS = CreateObject ("Scripting.FileSystemObject")
Set oConnection = CreateObject("ADODB.Connection")
Set oCommand = CreateObject("ADODB.Command")
Set oSNMPManager = CreateObject("SScripting.SNMPManager")
oConnection.Provider = "ADsDSOObject"
oConnection.Open "Active Directory Provider"
Set oCommand.ActiveConnection = oConnection
oCommand.CommandText = "Select printerName, ADsPath from " & "
'LDAP://DC=truc,DC=fr' where objectClass='printQueue' order by printerName"
oCommand.Properties("Page Size") = 1000
oCommand.Properties("Timeout") = 30
oCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
oCommand.Properties("Cache Results") = False
Set oRecordSet = oCommand.Execute
oRecordSet.MoveFirst
Set LogFile = oFS.OpenTextFile(RootDir & "log\" & Mid(Date,7,4) &
Mid(Date,4,2) & Mid(Date,1,2) & "_" & Mid(Time,1,2) & Mid(Time,4,2) &
Mid(Time,7,2) & ".csv", ForAppending, True)
LogFile.WriteLine("Nom de l'imprimante dans AD;DescriptionImprimante;Nom
d'hôte;Nbre total de pages imprimées;Nombre de pages imprimées depuis la mise
sous tension;Bac;Bac;Bac;Bac;Bac")
CompPrinterName = ""
Do Until oRecordSet.EOF
If Len(oRecordSet.Fields("printerName").Value) = 8 And
UCase((Mid(oRecordSet.Fields("printerName").Value,4,2)) = "IN") And (UCase
(CompPrinterName) <> UCase (oRecordSet.Fields("printerName").Value)) Then
Set oCurrentPrintQueue = GetObject(oRecordSet.Fields("ADsPath").Value)
oSNMPManager.Agent = (Mid(oCurrentPrintQueue.Get("portName"),4))
oSNMPManager.Community = "public"
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.1.1.0" ) 'Description de
l'imprimante
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.1.5.0" ) 'Nom de l'imprimante
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.10.2.1.4.1.1" ) 'Nombre
total de pages imprimées
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.10.2.1.5.1.1" ) 'Nombre
de pages imprimées depuis la mise sous tension
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.1") 'Bac
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.2")' Bac
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.3")' Bac
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.4")' Bac
Result = oSNMPManager.Get( ErrorIndex )
Set oVariablesCollection = oSNMPManager.Variables
LogFile.WriteLine(oRecordSet.Fields("printerName").Value & ";" &
oVariablesCollection.Item(1) & ";" & oVariablesCollection.Item(2) & ";" &
oVariablesCollection.Item(3) & ";" & oVariablesCollection.Item(4)&";" &
oVariablesCollection.Item(5)&";" & oVariablesCollection.Item(6)&";" &
oVariablesCollection.Item(7)&";" & oVariablesCollection.Item(8)&";" &
oVariablesCollection.Item(9))
oSNMPManager.Variables.RemoveAll
End If
Set oCurrentPrintQueue = Nothing
CompPrinterName = oRecordSet.Fields("printerName").Value
oRecordSet.MoveNext
Loop
LogFile.Close
oRecordSet.Close
oConnection.Close
Set LogFile = Nothing
Set oRecordSet = Nothing
Set oConnection = Nothing
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Glenn Gagné
Salut,
Lorsque tu fais un CALL pour une valeur SNMP du BAC 3 ou 4 sur une imprimante n'ayant que 2 bacs, l'instruction doit surement faire une fin innatendue (retourner en erreur). Probablement en utilisant des validations du réglera ton problème.
Ajoute une boucle IF pour chaque bac à l'intérieur de ton IF principal avec une validation, Si c'est ok ou false pour la requête... (NOTE: Je ne sais pas du tout comment réagit ces commandes, je n'ai jamais utilisé de SNMP en script, mais j'y vais par logique !)
Glenn
"berthelagrandepatte" a écrit dans le message de news:
Bonsoir
J'ai à disposition un script qui fonctionne bien et qui me permet de recueillir la description de l'imprimante, le nbre de page imprimée depuis sa
mise en service et le nbre de page imprimée depuis la mise sous tension. Aujourd'hui, je dois rajouter le nombre de bac present sur les imprimantes.
Je possède bien les OID. Il y a un OID par BAc et quelque soit le type de bac(500 feuilles, 2000 feuilles, MP TRAY ect...).
Le parc comprend des imprimantes avec deux bacs, 3 bacs et 4 Bacs. Mon soucis est que lorsque je précise les 4 OID dans mon script, Seules les imprimantes possédant les 4 Bacs apparaissent dans le fichier CSV. Si je veux
les imprimantes deux bacs, je n'ecris que deux OID dans le script. Dans ce cas, j'ai la liste de toutes les imprimantes, y compris les Imp. 4 Bacs mais
dans le fichier n'apparait que la présence de deux bacs.
Coment puis je faire pour faire apparaitre tous les bacs des imprimantes, quelque soit le nombre de bac ,dans mon fichiers csv?
Ci dessous le script. Les 4 lignes en sus avec OID sont les bacs. Meci de vos réponses Lumineuses
Set oFS = CreateObject ("Scripting.FileSystemObject") Set oConnection = CreateObject("ADODB.Connection") Set oCommand = CreateObject("ADODB.Command") Set oSNMPManager = CreateObject("SScripting.SNMPManager")
Set LogFile = oFS.OpenTextFile(RootDir & "log" & Mid(Date,7,4) & Mid(Date,4,2) & Mid(Date,1,2) & "_" & Mid(Time,1,2) & Mid(Time,4,2) & Mid(Time,7,2) & ".csv", ForAppending, True) LogFile.WriteLine("Nom de l'imprimante dans AD;DescriptionImprimante;Nom d'hôte;Nbre total de pages imprimées;Nombre de pages imprimées depuis la mise
sous tension;Bac;Bac;Bac;Bac;Bac") CompPrinterName = ""
Do Until oRecordSet.EOF If Len(oRecordSet.Fields("printerName").Value) = 8 And UCase((Mid(oRecordSet.Fields("printerName").Value,4,2)) = "IN") And (UCase (CompPrinterName) <> UCase (oRecordSet.Fields("printerName").Value)) Then Set oCurrentPrintQueue = GetObject(oRecordSet.Fields("ADsPath").Value) oSNMPManager.Agent = (Mid(oCurrentPrintQueue.Get("portName"),4)) oSNMPManager.Community = "public" Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.1.1.0" ) 'Description de l'imprimante Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.1.5.0" ) 'Nom de l'imprimante
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.10.2.1.4.1.1" ) 'Nombre total de pages imprimées Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.10.2.1.5.1.1" ) 'Nombre
de pages imprimées depuis la mise sous tension Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.1") 'Bac Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.2")' Bac Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.3")' Bac Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.4")' Bac
Result = oSNMPManager.Get( ErrorIndex ) Set oVariablesCollection = oSNMPManager.Variables LogFile.WriteLine(oRecordSet.Fields("printerName").Value & ";" & oVariablesCollection.Item(1) & ";" & oVariablesCollection.Item(2) & ";" & oVariablesCollection.Item(3) & ";" & oVariablesCollection.Item(4)&";" & oVariablesCollection.Item(5)&";" & oVariablesCollection.Item(6)&";" & oVariablesCollection.Item(7)&";" & oVariablesCollection.Item(8)&";" & oVariablesCollection.Item(9)) oSNMPManager.Variables.RemoveAll End If Set oCurrentPrintQueue = Nothing CompPrinterName = oRecordSet.Fields("printerName").Value oRecordSet.MoveNext Loop
LogFile.Close oRecordSet.Close oConnection.Close Set LogFile = Nothing Set oRecordSet = Nothing Set oConnection = Nothing
Lorsque tu fais un CALL pour une valeur SNMP du BAC 3 ou 4 sur une
imprimante n'ayant que 2 bacs, l'instruction doit surement faire une fin
innatendue (retourner en erreur). Probablement en utilisant des validations
du réglera ton problème.
Ajoute une boucle IF pour chaque bac à l'intérieur de ton IF principal avec
une validation, Si c'est ok ou false pour la requête... (NOTE: Je ne sais
pas du tout comment réagit ces commandes, je n'ai jamais utilisé de SNMP en
script, mais j'y vais par logique !)
Glenn
"berthelagrandepatte" <berthelagrandepatte@discussions.microsoft.com> a
écrit dans le message de
news:97AA7A34-14E9-41D5-BC7F-59D82CBD2A0B@microsoft.com...
Bonsoir
J'ai à disposition un script qui fonctionne bien et qui me permet de
recueillir la description de l'imprimante, le nbre de page imprimée depuis
sa
mise en service et le nbre de page imprimée depuis la mise sous tension.
Aujourd'hui, je dois rajouter le nombre de bac present sur les
imprimantes.
Je possède bien les OID. Il y a un OID par BAc et quelque soit le type de
bac(500 feuilles, 2000 feuilles, MP TRAY ect...).
Le parc comprend des imprimantes avec deux bacs, 3 bacs et 4 Bacs. Mon
soucis est que lorsque je précise les 4 OID dans mon script, Seules les
imprimantes possédant les 4 Bacs apparaissent dans le fichier CSV. Si je
veux
les imprimantes deux bacs, je n'ecris que deux OID dans le script. Dans ce
cas, j'ai la liste de toutes les imprimantes, y compris les Imp. 4 Bacs
mais
dans le fichier n'apparait que la présence de deux bacs.
Coment puis je faire pour faire apparaitre tous les bacs des imprimantes,
quelque soit le nombre de bac ,dans mon fichiers csv?
Ci dessous le script. Les 4 lignes en sus avec OID sont les bacs. Meci de
vos réponses Lumineuses
Set oFS = CreateObject ("Scripting.FileSystemObject")
Set oConnection = CreateObject("ADODB.Connection")
Set oCommand = CreateObject("ADODB.Command")
Set oSNMPManager = CreateObject("SScripting.SNMPManager")
Set LogFile = oFS.OpenTextFile(RootDir & "log" & Mid(Date,7,4) &
Mid(Date,4,2) & Mid(Date,1,2) & "_" & Mid(Time,1,2) & Mid(Time,4,2) &
Mid(Time,7,2) & ".csv", ForAppending, True)
LogFile.WriteLine("Nom de l'imprimante dans AD;DescriptionImprimante;Nom
d'hôte;Nbre total de pages imprimées;Nombre de pages imprimées depuis la
mise
sous tension;Bac;Bac;Bac;Bac;Bac")
CompPrinterName = ""
Do Until oRecordSet.EOF
If Len(oRecordSet.Fields("printerName").Value) = 8 And
UCase((Mid(oRecordSet.Fields("printerName").Value,4,2)) = "IN") And (UCase
(CompPrinterName) <> UCase (oRecordSet.Fields("printerName").Value)) Then
Set oCurrentPrintQueue = GetObject(oRecordSet.Fields("ADsPath").Value)
oSNMPManager.Agent = (Mid(oCurrentPrintQueue.Get("portName"),4))
oSNMPManager.Community = "public"
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.1.1.0" ) 'Description de
l'imprimante
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.1.5.0" ) 'Nom de
l'imprimante
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.10.2.1.4.1.1" ) 'Nombre
total de pages imprimées
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.10.2.1.5.1.1" ) 'Nombre
de pages imprimées depuis la mise sous tension
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.1") 'Bac
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.2")' Bac
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.3")' Bac
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.4")' Bac
Result = oSNMPManager.Get( ErrorIndex )
Set oVariablesCollection = oSNMPManager.Variables
LogFile.WriteLine(oRecordSet.Fields("printerName").Value & ";" &
oVariablesCollection.Item(1) & ";" & oVariablesCollection.Item(2) & ";" &
oVariablesCollection.Item(3) & ";" & oVariablesCollection.Item(4)&";" &
oVariablesCollection.Item(5)&";" & oVariablesCollection.Item(6)&";" &
oVariablesCollection.Item(7)&";" & oVariablesCollection.Item(8)&";" &
oVariablesCollection.Item(9))
oSNMPManager.Variables.RemoveAll
End If
Set oCurrentPrintQueue = Nothing
CompPrinterName = oRecordSet.Fields("printerName").Value
oRecordSet.MoveNext
Loop
LogFile.Close
oRecordSet.Close
oConnection.Close
Set LogFile = Nothing
Set oRecordSet = Nothing
Set oConnection = Nothing
Lorsque tu fais un CALL pour une valeur SNMP du BAC 3 ou 4 sur une imprimante n'ayant que 2 bacs, l'instruction doit surement faire une fin innatendue (retourner en erreur). Probablement en utilisant des validations du réglera ton problème.
Ajoute une boucle IF pour chaque bac à l'intérieur de ton IF principal avec une validation, Si c'est ok ou false pour la requête... (NOTE: Je ne sais pas du tout comment réagit ces commandes, je n'ai jamais utilisé de SNMP en script, mais j'y vais par logique !)
Glenn
"berthelagrandepatte" a écrit dans le message de news:
Bonsoir
J'ai à disposition un script qui fonctionne bien et qui me permet de recueillir la description de l'imprimante, le nbre de page imprimée depuis sa
mise en service et le nbre de page imprimée depuis la mise sous tension. Aujourd'hui, je dois rajouter le nombre de bac present sur les imprimantes.
Je possède bien les OID. Il y a un OID par BAc et quelque soit le type de bac(500 feuilles, 2000 feuilles, MP TRAY ect...).
Le parc comprend des imprimantes avec deux bacs, 3 bacs et 4 Bacs. Mon soucis est que lorsque je précise les 4 OID dans mon script, Seules les imprimantes possédant les 4 Bacs apparaissent dans le fichier CSV. Si je veux
les imprimantes deux bacs, je n'ecris que deux OID dans le script. Dans ce cas, j'ai la liste de toutes les imprimantes, y compris les Imp. 4 Bacs mais
dans le fichier n'apparait que la présence de deux bacs.
Coment puis je faire pour faire apparaitre tous les bacs des imprimantes, quelque soit le nombre de bac ,dans mon fichiers csv?
Ci dessous le script. Les 4 lignes en sus avec OID sont les bacs. Meci de vos réponses Lumineuses
Set oFS = CreateObject ("Scripting.FileSystemObject") Set oConnection = CreateObject("ADODB.Connection") Set oCommand = CreateObject("ADODB.Command") Set oSNMPManager = CreateObject("SScripting.SNMPManager")
Set LogFile = oFS.OpenTextFile(RootDir & "log" & Mid(Date,7,4) & Mid(Date,4,2) & Mid(Date,1,2) & "_" & Mid(Time,1,2) & Mid(Time,4,2) & Mid(Time,7,2) & ".csv", ForAppending, True) LogFile.WriteLine("Nom de l'imprimante dans AD;DescriptionImprimante;Nom d'hôte;Nbre total de pages imprimées;Nombre de pages imprimées depuis la mise
sous tension;Bac;Bac;Bac;Bac;Bac") CompPrinterName = ""
Do Until oRecordSet.EOF If Len(oRecordSet.Fields("printerName").Value) = 8 And UCase((Mid(oRecordSet.Fields("printerName").Value,4,2)) = "IN") And (UCase (CompPrinterName) <> UCase (oRecordSet.Fields("printerName").Value)) Then Set oCurrentPrintQueue = GetObject(oRecordSet.Fields("ADsPath").Value) oSNMPManager.Agent = (Mid(oCurrentPrintQueue.Get("portName"),4)) oSNMPManager.Community = "public" Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.1.1.0" ) 'Description de l'imprimante Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.1.5.0" ) 'Nom de l'imprimante
Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.10.2.1.4.1.1" ) 'Nombre total de pages imprimées Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.10.2.1.5.1.1" ) 'Nombre
de pages imprimées depuis la mise sous tension Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.1") 'Bac Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.2")' Bac Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.3")' Bac Call oSNMPManager.Variables.Add( "1.3.6.1.2.1.43.8.2.1.18.1.4")' Bac
Result = oSNMPManager.Get( ErrorIndex ) Set oVariablesCollection = oSNMPManager.Variables LogFile.WriteLine(oRecordSet.Fields("printerName").Value & ";" & oVariablesCollection.Item(1) & ";" & oVariablesCollection.Item(2) & ";" & oVariablesCollection.Item(3) & ";" & oVariablesCollection.Item(4)&";" & oVariablesCollection.Item(5)&";" & oVariablesCollection.Item(6)&";" & oVariablesCollection.Item(7)&";" & oVariablesCollection.Item(8)&";" & oVariablesCollection.Item(9)) oSNMPManager.Variables.RemoveAll End If Set oCurrentPrintQueue = Nothing CompPrinterName = oRecordSet.Fields("printerName").Value oRecordSet.MoveNext Loop
LogFile.Close oRecordSet.Close oConnection.Close Set LogFile = Nothing Set oRecordSet = Nothing Set oConnection = Nothing