[VBS] Imprimantes partagées

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT
Le #664427
"François" 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
François
Le #664168
Merci, ça roule!

"François" 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



Publicité
Poster une réponse
Anonyme