Tâches WMI : Imprimantes et impression

Les tâches WMI pour les imprimantes et l’impression gèrent et obtiennent des données sur les imprimantes, telles que la recherche ou la définition de l’imprimante par défaut. Vous trouverez d’autres exemples sur TechNet ScriptCenter à l’adresse https://www.microsoft.com/technet.

Les exemples de script présentés dans cette rubrique obtiennent les données uniquement à partir de l’ordinateur local. Pour plus d’informations sur l’utilisation du script afin d’obtenir des données provenant d’ordinateurs distants, consultez Connexion à WMI sur un ordinateur distant.

La procédure suivante explique comment exécuter un script.

Pour exécuter un script

  1. Copiez le code, puis enregistrez-le dans un fichier avec l’extension .vbs, par exemple nomfichier.vbs. Vérifiez que votre éditeur de texte n’ajoute pas d’extension .txt au fichier.
  2. Ouvrez une fenêtre d’invite de commandes, puis accédez au répertoire où vous avez enregistré le fichier.
  3. Tapez cscript nomfichier.vbs à l’invite de commandes.
  4. Si vous ne pouvez pas accéder à un journal des événements, vérifiez si vous exécutez la commande à partir d’une invite de commandes avec élévation de privilèges. Certains journaux des événements, par exemple le journal des événements de sécurité, peuvent être protégés par la fonctionnalité UAC (contrôle de compte d’utilisateur).

Notes

Par défaut, cscript affiche la sortie d’un script dans la fenêtre d’invite de commandes. Dans la mesure où les scripts WMI peuvent produire de grandes quantités de données en sortie, vous pouvez être amené à rediriger la sortie vers un fichier. Tapez cscript nomfichier.vbs > fichiersortie.txtà l’invite de commandes pour rediriger la sortie du scriptnomfichier.vbs vers fichiersortie.txt.

Le tableau suivant liste des exemples de script qui peuvent être utilisés pour obtenir divers types de données à partir de l’ordinateur local.

Comment puis-je... Classes ou méthodes WMI
... ajouter une nouvelle connexion d’imprimante à un ordinateur distant ? Utilisez la classe Win32_Printer et la méthode AddPrinterConnection.
VB
strComputer = "atl-ws-01"
Set objWMIService = GetObject( "winmgmts:{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2")
Set objPrinter = objWMIService.Get("Win32_Printer")
errReturn = objPrinter.AddPrinterConnection ("\\PrintServer1\ArtDepartmentPrinter")
... définir l’imprimante par défaut ?

Utilisez la classe Win32_Printer et la méthode SetDefaultPrinter.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery ("Select * from Win32_Printer Where Name = 'ScriptedPrinter'")
For Each objPrinter in colInstalledPrinters
    objPrinter.SetDefaultPrinter()
Next
PowerShell
$printerName = "\\ServerName\ShareName"
$printer = get-wmiObject -class win32_printer -Namespace $namespace | Where-Object { $_.Name -eq $printerName }
[void]$printer.setDefaultPrinter()
... annuler des travaux d’impression à l’aide de WMI ?

Utilisez la classe Win32_Printer et la méthode CancelAllJobs.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPrintJobs =  objWMIService.ExecQuery ("Select * from Win32_Printer")
For Each objPrintJob in colPrintJobs 
    objPrintJob.CancelAllJobs
Next
PowerShell
$result = (get-wmiObject -class win32_printer -Namespace "root\cimv2").CancelAllJobs()
... déterminer l’imprimante par défaut d’un ordinateur ?

Utilisez la classe Win32_Printer et vérifiez si la propriété Default a la valeur True.

VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters =  objWMIService.ExecQuery ("Select * from Win32_Printer Where Default = True")
For Each objPrinter in colInstalledPrinters
    Wscript.Echo objPrinter.Name
Next
PowerShell
get-wmiObject -class win32_printer -Namespace "root\cimv2" | where-object { $_.Default -eq 'True' }

Tâches WMI pour les scripts et les applications

Exemples d’applications WMI C++

TechNet ScriptCenter