Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBS] Imprimantes partagées

2 réponses
Avatar
François
Bonjour,

J'utilise le bout de code suivant pour récupérer des infos sur les
imprimantes d'un serveur d'impression.
Un des attributs de la Classe PrintQueue me pose problème : PrinShareName.

En effet lorsque je demande d'afficher sa valeur, il m'envoie un message
d'erreur
Code : 800A00D type incompatible

Pourtant une recherche ADSEDIT montre que c'est de l'unicode string
comme le printername ou le servername qui eux s'affichent correctement.

D'autre part, l'attribut contient bien une valeur...

Merci pour vos lumières....


Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.CommandText = "SELECT printerName, serverName,
printsharename,uNCName FROM " _
& " 'LDAP://DC=DOMAIN,DC=TEST' WHERE objectClass='printQueue'"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Timeout") = 30
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.Properties("Cache Results") = False
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Wscript.Echo "Printer Name: " &
objRecordSet.Fields("printerName").Value
Wscript.Echo "Server Name: " & objRecordSet.Fields("serverName").Value
Wscript.Echo "partage : " &
objRecordSet.Fields("printsharename").Value

objRecordSet.MoveNext
Loop

2 réponses

Avatar
Gilles LAURENT
"François" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| J'utilise le bout de code suivant pour récupérer des infos sur les
| imprimantes d'un serveur d'impression.
| Un des attributs de la Classe PrintQueue me pose problème :
| PrinShareName.
|
| En effet lorsque je demande d'afficher sa valeur, il m'envoie un
| message d'erreur
| Code : 800A00D type incompatible
|
| Pourtant une recherche ADSEDIT montre que c'est de l'unicode string
| comme le printername ou le servername qui eux s'affichent
| correctement.
|
| D'autre part, l'attribut contient bien une valeur...
|
| Merci pour vos lumières....
[...]

Parce que c'est un attribut multivalué :

If Not (IsNull(objRecordSet.Fields("printShareName").Value)) Then
arrShare=objRecordSet.Fields("printShareName").Value
printShareName = arrShare(0)
WScript.Echo printShareName
End If

--
Gilles LAURENT
http://glsft.free.fr
Avatar
François
Merci, ça roule!

"François" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| J'utilise le bout de code suivant pour récupérer des infos sur les
| imprimantes d'un serveur d'impression.
| Un des attributs de la Classe PrintQueue me pose problème :
| PrinShareName.
|
| En effet lorsque je demande d'afficher sa valeur, il m'envoie un
| message d'erreur
| Code : 800A00D type incompatible
|
| Pourtant une recherche ADSEDIT montre que c'est de l'unicode string
| comme le printername ou le servername qui eux s'affichent
| correctement.
|
| D'autre part, l'attribut contient bien une valeur...
|
| Merci pour vos lumières....
[...]

Parce que c'est un attribut multivalué :

If Not (IsNull(objRecordSet.Fields("printShareName").Value)) Then
arrShare=objRecordSet.Fields("printShareName").Value
printShareName = arrShare(0)
WScript.Echo printShareName
End If