lister imprimantes sur un poste distant d'un utilisateur

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
milouse95
Niveau 1
Niveau 1
Messages : 14
Enregistré le : mar. 12 juin 2012 16:26
Status : Hors ligne

lister imprimantes sur un poste distant d'un utilisateur

#1

Message par milouse95 »

Bonjour,

J'essaye de lister les imprimantes d'un utilisateur à distant.
J'ai voulu partir de ce code
#include <Array.au3>
   Local $PrinterList[1][4], $PrinterCount
      Local $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
   if @error Then
      msgbox(64,"Erreur ! (" & @error &")" ,"Veuillez utiliser un compte administrateur  sur le domaine pour visulaiser la liste des imprimantes sur le serveur " & $computer ) ; récupération de l'erreur si non autorisé
      Return
   Else
      Local $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Printer")
      If IsObj($colItems) Then
         For $objItem In $colItems
            ReDim $PrinterList[$PrinterCount + 1][4]
            $sharename = $objItem.ShareName
            $PrinterList[$PrinterCount][0] = $objItem.shareName
            $PrinterList[$PrinterCount][1] = $objItem.DeviceID
            $PrinterCount += 1
         Next
       _ArrayDisplay($PrinterList, "$aFileList")


      EndIf
   EndIf
Cela fonctionne bien pour le poste local mais quand je veux avoir les informations sur un poste distant je n'ai que les imprimantes installé en local et nom ceux qui sont partagées sur le serveur.

j'ai voulu essayé en allant lire sur la base de registre.
J''ai remarqué plusieurs endroits ou je pourrai récupérer les informations.
Ordinateur\HKEY_CURRENT_USER\Printers\Connections
Ordinateur\HKEY_USERS\S-1-5-21-759405821-1666520105-3629554393-1981\Printers\ConvertUserDevModesCount
Ordinateur\HKEY_USERS\S-1-5-21-759405821-1666520105-3629554393-546158\Printers\ConvertUserDevModesCount

Ordinateur\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print
Ordinateur\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Print

le truc c'est que j'ai trouvé comment lister les clés pour un poste local avec RegEnumKey mais je n'ai pas trouvé pour un poste distant.
je sais qu'aver GetStringValue on peut récuperer l'info directement sur une variable mais moi je voudrais lister les clés pour ensuite récupérer les bonnes variables.

Avez-vous des informations à ce sujet.

Merci d'avance,
Damien.
Répondre