Liste des imprimantes de la ligne de commande au fichier texte

30

Existe-t-il une commande qui peut être utilisée à partir de la ligne de commande pour sortir une liste des imprimantes installées et leur emplacement, si mappé, dans un fichier texte? Ou peut-être un programme que je peux exécuter à partir de la ligne de commande qui ferait cela?

Der Hochstapler
la source

Réponses:

28

Sous Windows XP, utilisez prntmngr:

PRNMNGR -l >> C:\printers.txt

Sous Windows Vista et au-delà, utilisez PowerShell:

get-WmiObject -class Win32_printer | ft name, systemName, shareName >> c:\printers.txt

Remarque: vous pouvez obtenir une erreur si vous essayez d'écrire le fichier dans C: \ sur Vista +, en fonction de vos droits et de la façon dont PowerShell a été généré.

Pour Windows 2000:

Le fichier PrnMngr.vbs de XP (situé dans le dossier / Windows / System32) fonctionne sous Windows 2000. Il suffit de le trouver et de le copier sur la machine 2000 à partir d'une machine XP et de l'exécuter avec:

cscript prnmngr.vbs -l >> c:\printers.txt

J'ai trouvé qu'il ne fonctionnerait pas à partir du bureau de mon utilisateur pour une raison quelconque, mais quand j'ai copié le .VBS à la racine de C: cela s'est bien passé.

Wesley
la source
Fonctionne magnifiquement!
17

J'utilise:

wmic printer list brief

OU

wmic printer get name

Cela montre simplement une courte liste d'imprimantes connectées au système sur lequel vous exécutez la commande. Il montrera également à quel ordinateur une imprimante est connectée s'il existe une imprimante réseau.

Vous pouvez également l'utiliser pour obtenir une liste très détaillée de la configuration de chaque imprimante installée sur un système:

wmic printer list full

Pour le sortir dans un fichier texte, ajoutez ceci à la fin de la commande:

 >>"[directory]\[filename].txt"

Exemple:

wmic printer list brief >> c:\users\admin\documents\printerlist.txt
Matt Stoddard
la source
1
Ce devrait être la réponse acceptée.
James Draper
4

Parfois, vous ne voulez pas utiliser PS dans win7 (j'ai une application qui me permet d'effectuer des tâches administratives en arrière-plan sur des PC distants, mais elle n'utilise pas PowerShell). Les scripts de base visuels XP mentionnés se trouvent dans le dossier suivant pour Win7:

C:\Windows\System32\Printing_Admin_Scripts\en-US
Andrew
la source
1

Remarque: Pour Windows XP, assurez-vous d'abord de changer l'hôte de script par défaut en CScript

C:\CScript //H:CScript

sinon, vous recevrez un message vous indiquant de le faire et votre fichier printers.txt sera vide.

cls
la source
0

c'est donc ma solution:

;******************
;ALLOCATING CONSOLE
;******************
; cmd calls hidden

global cPid
DetectHiddenWindows, on
Run, %comspec% /k ,,Hide UseErrorLevel,cPid
WinWait, ahk_pid %cPid%,, 1
DllCall("AttachConsole","uint",cPid)
hCon:=DllCall("CreateFile","str","CONOUT$","uint",0xC0000000,"uint",7,"uint",0,"uint",3,"uint",0,"uint",0)


;******* GET PRINTER NAMES **********

AllPrintersNameClearArray := strSplit(StrReplace(StrReplace(StrReplace(StrReplace("|" StrReplace(StrReplace(StrReplace(RunWaitOne("wmic printer get name"),"  ","")," `r",""),"`r",""),"|NAME`n",""),"`n","|"),"||","",All),"|","`n"),"`n")

RunWaitOne(command) {

    objShell := ComObjCreate("WScript.Shell")
    objExec := objShell.Exec(command)
    strStdOut := ""
    while, !objExec.StdOut.AtEndOfStream
    strStdOut := objExec.StdOut.ReadAll()
    return %strStdOut%
}

; **** Clean at the end *****

Finish:
DllCall("CloseHandle", "uint", hCon)
DllCall("FreeConsole")
Process, Close, %cPid%
ExitApp
return
Rightcelebrator
la source
0

Utilisez Powershell.

[System.Drawing.Printing.PrinterSettings]::InstalledPrinters

stomie
la source
Bienvenue dans Super User. Pouvez-vous dire autre chose que cela? Bien que je pense que c'est techniquement une réponse, cela laisse beaucoup à l'imagination et en tant que telle, ce n'est pas une réponse de haute qualité.
Je dis Reinstate Monica