IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Récupérer username + noms imprimantes utilisées


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 18
    Points
    18
    Par défaut Récupérer username + noms imprimantes utilisées
    bonjour,

    comme je l'ai dit dans mon poste précédent, je suis débutant en développement et encore plus en VBS.
    Je me suis lancé dans un script qui écrirait dans un fichier txt le nom de l'user avec les noms d'imprimantes qu'il utilise à sa connexion. Ca listerait donc tous les utilisateurs utilisant les imprimantes (tel utilisateur utilise telle ou telle imprimante)

    Pour l'instant j'arrive a récupérer le nom des imprimantes utilisées:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer")
     
    For Each objPrinter in colInstalledPrinters
    	Wscript.Echo "Name: " & objPrinter.Name & vbCrLf & "Default? : " & objPrinter.Default
    Next
    j'arrive aussi a récupérer l'username:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set WshNet = CreateObject("WScript.Network")
    	User = WshNet.Username
    Wscript.Echo User

    et à écrire dans un fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Set FSys = CreateObject("Scripting.FileSystemObject")
     Set MonFic = FSys.CreateTextFile("c:\fichier.txt")
     
     With MonFic 'Pour écrire dans le fichier texte
     .writeLine "toto" 'Mettre write pour ne pas sauter à la ligne
     .writeLine "deuxième ligne"
     .writeLine "troisième ligne, etc..."
     End With
     Msg = "Écriture réussie dans fichier.txt"
     MsgBox(Msg)
    Maintenant j'ai plusieurs pb:
    - il me faut rassembler le tout, mais les boucles et moi...ca fait beaucoup
    - je pense que l'écriture écrasera a chq fois le fichier et son contenu
    - il y a risque de doublons

    quelqu'un a t il une suggestion et pourrait m'aider?

    Voici à peu près le résultat que j'aimerai obtenir:
    - imprimante1: user1, user2, user3
    -imprimante2: user2
    -imprimante3: user2, user3

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Bon j'ai réglé mon pb, je poste ma solution, ca peut aider certains qui sait
    j'ai finalement opté pour l'écriture des résultats dans une bdd sql


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Set objNetwork = CreateObject("Wscript.Network")
    Set objShell = CreateObject("Wscript.Shell")
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters = objWMIService.ExecQuery ("Select * from Win32_Printer")
     
    Server = "\\********"
    strUserName = objNetwork.username
     
    For Each objPrinter in colInstalledPrinters
    	if objPrinter.Default = true then	
    		pDefault=1
    	else
    		pDefault=0
    	End if
    	strPrinterName = objPrinter.Name
    	strCmd = Server & "\mysql.exe --host=*** --database=*** --user=*** --password=*** --execute=""INSERT INTO `imp` VALUES ('" & strUserName & "','"& strPrinterName & "','" & DatePart("yyyy",Date) & "-" & DatePart("m",Date) & "-" & DatePart("d",Date) & " " & DatePart("h",Now) & ":" & DatePart("n",Now) & ":" & DatePart("s",Now) & "','" & pDefault &  "');"""
    	objShell.Run strCmd, 0, True
    Next
    j'ai rajouté aussi par rapport à la version précédente un champs qui permettrais de savoir si l'imprimante est celle par défaut ou non, ainsi que la date de connexion

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer l'imprimante utilisée par IE
    Par zleurtor dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/03/2014, 14h23
  2. Réponses: 2
    Dernier message: 28/01/2009, 01h12
  3. [Joomla!] Récupérer le nom ou username de l'utilisateur connecté
    Par prof_cosinus dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 19/01/2009, 15h32
  4. Récupérer le nom d'un champ pour utilisation dans getElement
    Par effree dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/02/2006, 16h21
  5. récupérer des nom de fichiers en utilisant *.ext
    Par drinkmilk dans le forum ASP
    Réponses: 11
    Dernier message: 15/12/2004, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo