{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2020/02/28/comment-savoir-quels-utilisateurs-sont-connectes-a-une-file-dattente-dimpression-serveur-dimpression/","llm_html_url":"https://tutos-gameserver.fr/2020/02/28/comment-savoir-quels-utilisateurs-sont-connectes-a-une-file-dattente-dimpression-serveur-dimpression/llm","llm_json_url":"https://tutos-gameserver.fr/2020/02/28/comment-savoir-quels-utilisateurs-sont-connectes-a-une-file-dattente-dimpression-serveur-dimpression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Comment savoir quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression?\n\n &#8211; Serveur d&rsquo;impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2020-02-28T06:23:36+00:00","modified_at":"2020-02-28T06:23:36+00:00","word_count":1179,"reading_time_seconds":354,"summary":"Hé, le scripteur! Comment savoir quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression? &#8211; RE Hé, RE. Vous savez, si vos imprimantes ressemblent à celles avec lesquelles les Scripting Guys ont l&#39;habitude de travailler, il est facile de dire quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression: tout ce que vous avez à [&hellip;]","summary_points":["Hé, le scripteur!","Comment savoir quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression?","&#8211; RE\n      \nHé, RE.","Vous savez, si vos imprimantes ressemblent à celles avec lesquelles les Scripting Guys ont l&#39;habitude de travailler, il est facile de dire quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression: tout ce que vous avez à faire est d&#39;entrer dans la salle d&#39;impression et de voir qui s&#39;y trouve frénétiquement regarder dans tous les coins et recoins pour le document que l&#39;imprimante insiste il a imprimé."],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"b881e0f4e86cc3d3fde140ec7ea1654d","plain_text":"Hé, le scripteur! Comment savoir quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression?\n&#8211; RE\n      \nHé, RE. Vous savez, si vos imprimantes ressemblent à celles avec lesquelles les Scripting Guys ont l&#39;habitude de travailler, il est facile de dire quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression: tout ce que vous avez à faire est d&#39;entrer dans la salle d&#39;impression et de voir qui s&#39;y trouve frénétiquement regarder dans tous les coins et recoins pour le document que l&#39;imprimante insiste il a imprimé. Chez Microsoft, le bureau sans papier est très proche d&#39;une réalité. Non pas parce que nous avons consciemment décidé d&#39;économiser du papier, mais parce que vous avez généralement plus de chances de remporter le jackpot à Las Vegas que d&#39;obtenir un document à imprimer.\nSi vous avez des imprimantes un peu plus fiables que cela, cependant, vous trouverez peut-être plus facile d&#39;utiliser un script pour déterminer quels utilisateurs impriment actuellement sur une imprimante particulière. Il y a un peu d&#39;astuce à faire, et vous devez utiliser une approche légèrement différente pour effectuer cette tâche sur n&#39;importe quelle version de Windows antérieure à Windows XP. Mais nous expliquerons tout cela dans un instant. Pour l&#39;instant, examinons un script qui fonctionne sous Windows XP et Windows Server 2003:\nstrComputer = &quot;.&quot;Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où le nom comme«% FinancePrinter% »»)\nPour chaque objPrintJob dans colPrintJobsWscript.Echo objPrintJob.OwnerProchain\nComme vous pouvez le voir, le script n’a pas grand-chose. Il commence par se connecter au service WMI sur l&#39;ordinateur local (bien que le script puisse tout aussi bien s&#39;exécuter sur une machine distante). Voici où cela devient un peu délicat.\nEn fait, la classe WMI Win32_PrintJob peut renvoyer le nom de connexion de tous les utilisateurs qui impriment actuellement tout les imprimantes connectées à un ordinateur. Curieusement, cependant, Win32_PrintJob n&#39;a pas de classe qui identifie lequel file d&#39;attente d&#39;impression à laquelle un utilisateur est connecté. Au mieux, vous pouvez identifier l&#39;imprimante à l&#39;aide du Nom propriété. Les valeurs de cette propriété sont composées de deux éléments: le nom de l&#39;imprimante et un ID de tâche d&#39;impression. Par exemple, les travaux d&#39;impression actuellement dans la file d&#39;attente de l&#39;imprimante FinancePrinter peuvent ressembler à ceci:\nFinancePrinter, 1FinancePrinter, 2FinancePrinter, 3\nEst-ce un problème? Oui, ça l&#39;est; après tout, cela nous empêche d&#39;utiliser une requête comme celle-ci pour renvoyer tous les travaux d&#39;impression dans la file d&#39;attente d&#39;impression FinancePrinter:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où nom =« FinancePrinter »»)\nPourquoi ne pouvons-nous pas utiliser cette requête? Eh bien, parce qu&#39;il n&#39;y aura pas être tout travail d&#39;impression avec Name FinancePrinter; au lieu de cela, tous les travaux d&#39;impression seront nommés des choses comme FinancePrinter, 1. Comme… délicieux….\nMais ça va; comme d&#39;habitude, nous pouvons contourner les particularités de WMI. Sur Windows XP et Windows Server 2003, nous pouvons utiliser l&#39;opérateur LIKE et une requête générique, qui ressemble à ceci:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où le nom comme«% FinancePrinter% »»)\nNotez la construction de notre clause Where: Où nom comme «% FinancePrinter%». Les signes de pourcentage sont nos caractères génériques: ils signifient n&#39;importe quel caractère ou ensemble de caractères, de la même manière que l&#39;astérisque lorsqu&#39;il est utilisé avec la commande dir. La commande dir *. * signifie: &quot;Montrez-moi tous les fichiers et dossiers dont les noms commencent par n&#39;importe quel caractère ou ensemble de caractères, comportent un point, puis se terminent par n&#39;importe quel caractère ou ensemble de caractères.&quot; Notre requête WQL peut être lue de la même manière: «Ramenez tous les travaux d&#39;impression où la propriété Name commence par n&#39;importe quel caractère ou ensemble de caractères, a le terme FinancePrinter en elle, puis se termine par n&#39;importe quel caractère ou ensemble de caractères &quot;. (Et, oui, «n&#39;importe quel caractère ou ensemble de caractères» signifie également aucun caractère du tout.) En d&#39;autres termes, ramenez tout travail d&#39;impression dont le nom inclut la chaîne FinancePrinter.\nÀ ce stade, tout ce que nous avons à faire est de configurer une boucle For Each et de parcourir la collection de travaux d&#39;impression, en faisant écho à la valeur de la Propriétaire propriété pour chacun. La propriété Owner est le nom de connexion de l&#39;utilisateur connecté; par exemple, kmyer ou packerman. C’est le mieux que vous puissiez faire avec Win32_PrintJob; si vous avez besoin, par exemple, du nom et du prénom de l&#39;utilisateur, vous devrez faire autre chose. (Une suggestion: prenez le nom de connexion [also known as the sAMAccountName] et l&#39;utiliser dans une recherche Active Directory qui peut renvoyer le prénom et le nom de l&#39;utilisateur. Pour plus d&#39;informations, consultez le Contes du script colonne Mec, où est mon imprimante?)\nMaintenant, tout va bien sous Windows XP et Windows Server 2003; malheureusement, ce script ne fera pas grand-chose pour quiconque exécute une version antérieure de Windows. En effet, l&#39;opérateur LIKE n&#39;est pas disponible sur les versions antérieures de Windows. Cela ne signifie pas que vous n&#39;avez pas de chance, cela signifie simplement que nous devons faire les choses à l&#39;ancienne. Par exemple, au lieu d&#39;écrire une requête qui renvoie uniquement les travaux d&#39;impression en cours d&#39;impression vers FinancePrinter, nous devons écrire une requête qui renvoie tout les travaux d&#39;impression, quelle que soit l&#39;imprimante:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(&quot;Sélectionnez * à partir de Win32_PrintJob&quot;)\nUne fois que nous avons la collection complète des travaux d&#39;impression, nous pouvons ensuite utiliser le InStr pour déterminer si la propriété Name inclut ou non la chaîne FinancePrinter:\nSi Instr (objPrintJob.Name, «FinancePrinter») Alors\nC&#39;est un peu plus lourd, mais ça marchera. Voici un script complet qui renvoie la liste des utilisateurs actuellement connectés à une file d&#39;attente d&#39;impression Windows 2000:\nstrComputer = &quot;.&quot;Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(&quot;Sélectionnez * à partir de Win32_PrintJob&quot;)\nPour chaque objPrintJob dans colPrintJobsSi Instr (objPrintJob.Name, «FinancePrinter») AlorsWscript.Echo objPrintJob.OwnerFin siProchain\nMalheureusement, nous n&#39;avons pas de script qui puisse vous dire où vont réellement les documents imprimés lorsque l&#39;imprimante dit ils ont été imprimés mais les pages imprimées sont introuvables. Mais nous y travaillons.\n\n\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["Hé, le scripteur! Comment savoir quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression?\n&#8211; RE\n      \nHé, RE. Vous savez, si vos imprimantes ressemblent à celles avec lesquelles les Scripting Guys ont l&#39;habitude de travailler, il est facile de dire quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression: tout ce que vous avez à faire est d&#39;entrer dans la salle d&#39;impression et de voir qui s&#39;y trouve frénétiquement regarder dans tous les coins et recoins pour le document que l&#39;imprimante insiste il a imprimé. Chez Microsoft, le bureau sans papier est très proche d&#39;une réalité. Non pas parce que nous avons consciemment décidé d&#39;économiser du papier, mais parce que vous avez généralement plus de chances de remporter le jackpot à Las Vegas que d&#39;obtenir un document à imprimer.\nSi vous avez des imprimantes un peu plus fiables que cela, cependant, vous trouverez peut-être plus facile d&#39;utiliser un script pour déterminer quels utilisateurs impriment actuellement sur une imprimante particulière. Il y a un peu d&#39;astuce à faire, et vous devez utiliser une approche légèrement différente pour effectuer cette tâche sur n&#39;importe quelle version de Windows antérieure à Windows XP. Mais nous expliquerons tout cela dans un instant. Pour l&#39;instant, examinons un script qui fonctionne sous Windows XP et Windows Server 2003:\nstrComputer = &quot;.&quot;Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où le nom comme«% FinancePrinter% »»)\nPour chaque objPrintJob dans colPrintJobsWscript.Echo objPrintJob.OwnerProchain\nComme vous pouvez le voir, le script n’a pas grand-chose. Il commence par se connecter au service WMI sur l&#39;ordinateur local (bien que le script puisse tout aussi bien s&#39;exécuter sur une machine distante). Voici où cela devient un peu délicat.\nEn fait, la classe WMI Win32_PrintJob peut renvoyer le nom de connexion de tous les utilisateurs qui impriment actuellement tout les imprimantes connectées à un ordinateur. Curieusement, cependant, Win32_PrintJob n&#39;a pas de classe qui identifie lequel file d&#39;attente d&#39;impression à laquelle un utilisateur est connecté. Au mieux, vous pouvez identifier l&#39;imprimante à l&#39;aide du Nom propriété. Les valeurs de cette propriété sont composées de deux éléments: le nom de l&#39;imprimante et un ID de tâche d&#39;impression. Par exemple, les travaux d&#39;impression actuellement dans la file d&#39;attente de l&#39;imprimante FinancePrinter peuvent ressembler à ceci:\nFinancePrinter, 1FinancePrinter, 2FinancePrinter, 3\nEst-ce un problème? Oui, ça l&#39;est; après tout, cela nous empêche d&#39;utiliser une requête comme celle-ci pour renvoyer tous les travaux d&#39;impression dans la file d&#39;attente d&#39;impression FinancePrinter:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où nom =« FinancePrinter »»)\nPourquoi ne pouvons-nous pas utiliser cette requête? Eh bien, parce qu&#39;il n&#39;y aura pas être tout travail d&#39;impression avec Name FinancePrinter; au lieu de cela, tous les travaux d&#39;impression seront nommés des choses comme FinancePrinter, 1. Comme… délicieux….\nMais ça va; comme d&#39;habitude, nous pouvons contourner les particularités de WMI. Sur Windows XP et Windows Server 2003, nous pouvons utiliser l&#39;opérateur LIKE et une requête générique, qui ressemble à ceci:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où le nom comme«% FinancePrinter% »»)\nNotez la construction de notre clause Where: Où nom comme «% FinancePrinter%». Les signes de pourcentage sont nos caractères génériques: ils signifient n&#39;importe quel caractère ou ensemble de caractères, de la même manière que l&#39;astérisque lorsqu&#39;il est utilisé avec la commande dir. La commande dir *. * signifie: &quot;Montrez-moi tous les fichiers et dossiers dont les noms commencent par n&#39;importe quel caractère ou ensemble de caractères, comportent un point, puis se terminent par n&#39;importe quel caractère ou ensemble de caractères.&quot; Notre requête WQL peut être lue de la même manière: «Ramenez tous les travaux d&#39;impression où la propriété Name commence par n&#39;importe quel caractère ou ensemble de caractères, a le terme FinancePrinter en elle, puis se termine par n&#39;importe quel caractère ou ensemble de caractères &quot;. (Et, oui, «n&#39;importe quel caractère ou ensemble de caractères» signifie également aucun caractère du tout.) En d&#39;autres termes, ramenez tout travail d&#39;impression dont le nom inclut la chaîne FinancePrinter.\nÀ ce stade, tout ce que nous avons à faire est de configurer une boucle For Each et de parcourir la collection de travaux d&#39;impression, en faisant écho à la valeur de la Propriétaire propriété pour chacun. La propriété Owner est le nom de connexion de l&#39;utilisateur connecté; par exemple, kmyer ou packerman. C’est le mieux que vous puissiez faire avec Win32_PrintJob; si vous avez besoin, par exemple, du nom et du prénom de l&#39;utilisateur, vous devrez faire autre chose. (Une suggestion: prenez le nom de connexion [also known as the sAMAccountName] et l&#39;utiliser dans une recherche Active Directory qui peut renvoyer le prénom et le nom de l&#39;utilisateur. Pour plus d&#39;informations, consultez le Contes du script colonne Mec, où est mon imprimante?)\nMaintenant, tout va bien sous Windows XP et Windows Server 2003; malheureusement, ce script ne fera pas grand-chose pour quiconque exécute une version antérieure de Windows. En effet, l&#39;opérateur LIKE n&#39;est pas disponible sur les versions antérieures de Windows. Cela ne signifie pas que vous n&#39;avez pas de chance, cela signifie simplement que nous devons faire les choses à l&#39;ancienne. Par exemple, au lieu d&#39;écrire une requête qui renvoie uniquement les travaux d&#39;impression en cours d&#39;impression vers FinancePrinter, nous devons écrire une requête qui renvoie tout les travaux d&#39;impression, quelle que soit l&#39;imprimante:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(&quot;Sélectionnez * à partir de Win32_PrintJob&quot;)\nUne fois que nous avons la collection complète des travaux d&#39;impression, nous pouvons ensuite utiliser le InStr pour déterminer si la propriété Name inclut ou non la chaîne FinancePrinter:\nSi Instr (objPrintJob.Name, «FinancePrinter») Alors\nC&#39;est un peu plus lourd, mais ça marchera. Voici un script complet qui renvoie la liste des utilisateurs actuellement connectés à une file d&#39;attente d&#39;impression Windows 2000:\nstrComputer = &quot;.&quot;Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(&quot;Sélectionnez * à partir de Win32_PrintJob&quot;)\nPour chaque objPrintJob dans colPrintJobsSi Instr (objPrintJob.Name, «FinancePrinter») AlorsWscript.Echo objPrintJob.OwnerFin siProchain\nMalheureusement, nous n&#39;avons pas de script qui puisse vous dire où vont réellement les documents imprimés lorsque l&#39;imprimante dit ils ont été imprimés mais les pages imprimées sont introuvables. Mais nous y travaillons.","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"Hé, le scripteur! Comment savoir quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression?\n&#8211; RE\n      \nHé, RE. Vous savez, si vos imprimantes ressemblent à celles avec lesquelles les Scripting Guys ont l&#39;habitude de travailler, il est facile de dire quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression: tout ce que vous avez à faire est d&#39;entrer dans la salle d&#39;impression et de voir qui s&#39;y trouve frénétiquement regarder dans tous les coins et recoins pour le document que l&#39;imprimante insiste il a imprimé. Chez Microsoft, le bureau sans papier est très proche d&#39;une réalité. Non pas parce que nous avons consciemment décidé d&#39;économiser du papier, mais parce que vous avez généralement plus de chances de remporter le jackpot à Las Vegas que d&#39;obtenir un document à imprimer.\nSi vous avez des imprimantes un peu plus fiables que cela, cependant, vous trouverez peut-être plus facile d&#39;utiliser un script pour déterminer quels utilisateurs impriment actuellement sur une imprimante particulière. Il y a un peu d&#39;astuce à faire, et vous devez utiliser une approche légèrement différente pour effectuer cette tâche sur n&#39;importe quelle version de Windows antérieure à Windows XP. Mais nous expliquerons tout cela dans un instant. Pour l&#39;instant, examinons un script qui fonctionne sous Windows XP et Windows Server 2003:\nstrComputer = &quot;.&quot;Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où le nom comme«% FinancePrinter% »»)\nPour chaque objPrintJob dans colPrintJobsWscript.Echo objPrintJob.OwnerProchain\nComme vous pouvez le voir, le script n’a pas grand-chose. Il commence par se connecter au service WMI sur l&#39;ordinateur local (bien que le script puisse tout aussi bien s&#39;exécuter sur une machine distante). Voici où cela devient un peu délicat.\nEn fait, la classe WMI Win32_PrintJob peut renvoyer le nom de connexion de tous les utilisateurs qui impriment actuellement tout les imprimantes connectées à un ordinateur. Curieusement, cependant, Win32_PrintJob n&#39;a pas de classe qui identifie lequel file d&#39;attente d&#39;impression à laquelle un utilisateur est connecté. Au mieux, vous pouvez identifier l&#39;imprimante à l&#39;aide du Nom propriété. Les valeurs de cette propriété sont composées de deux éléments: le nom de l&#39;imprimante et un ID de tâche d&#39;impression. Par exemple, les travaux d&#39;impression actuellement dans la file d&#39;attente de l&#39;imprimante FinancePrinter peuvent ressembler à ceci:\nFinancePrinter, 1FinancePrinter, 2FinancePrinter, 3\nEst-ce un problème? Oui, ça l&#39;est; après tout, cela nous empêche d&#39;utiliser une requête comme celle-ci pour renvoyer tous les travaux d&#39;impression dans la file d&#39;attente d&#39;impression FinancePrinter:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où nom =« FinancePrinter »»)\nPourquoi ne pouvons-nous pas utiliser cette requête? Eh bien, parce qu&#39;il n&#39;y aura pas être tout travail d&#39;impression avec Name FinancePrinter; au lieu de cela, tous les travaux d&#39;impression seront nommés des choses comme FinancePrinter, 1. Comme… délicieux….\nMais ça va; comme d&#39;habitude, nous pouvons contourner les particularités de WMI. Sur Windows XP et Windows Server 2003, nous pouvons utiliser l&#39;opérateur LIKE et une requête générique, qui ressemble à ceci:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où le nom comme«% FinancePrinter% »»)\nNotez la construction de notre clause Where: Où nom comme «% FinancePrinter%». Les signes de pourcentage sont nos caractères génériques: ils signifient n&#39;importe quel caractère ou ensemble de caractères, de la même manière que l&#39;astérisque lorsqu&#39;il est utilisé avec la commande dir. La commande dir *. * signifie: &quot;Montrez-moi tous les fichiers et dossiers dont les noms commencent par n&#39;importe quel caractère ou ensemble de caractères, comportent un point, puis se terminent par n&#39;importe quel caractère ou ensemble de caractères.&quot; Notre requête WQL peut être lue de la même manière: «Ramenez tous les travaux d&#39;impression où la propriété Name commence par n&#39;importe quel caractère ou ensemble de caractères, a le terme FinancePrinter en elle, puis se termine par n&#39;importe quel caractère ou ensemble de caractères &quot;. (Et, oui, «n&#39;importe quel caractère ou ensemble de caractères» signifie également aucun caractère du tout.) En d&#39;autres termes, ramenez tout travail d&#39;impression dont le nom inclut la chaîne FinancePrinter.\nÀ ce stade, tout ce que nous avons à faire est de configurer une boucle For Each et de parcourir la collection de travaux d&#39;impression, en faisant écho à la valeur de la Propriétaire propriété pour chacun. La propriété Owner est le nom de connexion de l&#39;utilisateur connecté; par exemple, kmyer ou packerman. C’est le mieux que vous puissiez faire avec Win32_PrintJob; si vous avez besoin, par exemple, du nom et du prénom de l&#39;utilisateur, vous devrez faire autre chose. (Une suggestion: prenez le nom de connexion [also known as the sAMAccountName] et l&#39;utiliser dans une recherche Active Directory qui peut renvoyer le prénom et le nom de l&#39;utilisateur. Pour plus d&#39;informations, consultez le Contes du script colonne Mec, où est mon imprimante?)\nMaintenant, tout va bien sous Windows XP et Windows Server 2003; malheureusement, ce script ne fera pas grand-chose pour quiconque exécute une version antérieure de Windows. En effet, l&#39;opérateur LIKE n&#39;est pas disponible sur les versions antérieures de Windows. Cela ne signifie pas que vous n&#39;avez pas de chance, cela signifie simplement que nous devons faire les choses à l&#39;ancienne. Par exemple, au lieu d&#39;écrire une requête qui renvoie uniquement les travaux d&#39;impression en cours d&#39;impression vers FinancePrinter, nous devons écrire une requête qui renvoie tout les travaux d&#39;impression, quelle que soit l&#39;imprimante:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(&quot;Sélectionnez * à partir de Win32_PrintJob&quot;)\nUne fois que nous avons la collection complète des travaux d&#39;impression, nous pouvons ensuite utiliser le InStr pour déterminer si la propriété Name inclut ou non la chaîne FinancePrinter:\nSi Instr (objPrintJob.Name, «FinancePrinter») Alors\nC&#39;est un peu plus lourd, mais ça marchera. Voici un script complet qui renvoie la liste des utilisateurs actuellement connectés à une file d&#39;attente d&#39;impression Windows 2000:\nstrComputer = &quot;.&quot;Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(&quot;Sélectionnez * à partir de Win32_PrintJob&quot;)\nPour chaque objPrintJob dans colPrintJobsSi Instr (objPrintJob.Name, «FinancePrinter») AlorsWscript.Echo objPrintJob.OwnerFin siProchain\nMalheureusement, nous n&#39;avons pas de script qui puisse vous dire où vont réellement les documents imprimés lorsque l&#39;imprimante dit ils ont été imprimés mais les pages imprimées sont introuvables. Mais nous y travaillons.","html":"<p>Hé, le scripteur! Comment savoir quels utilisateurs sont connectés à une file d&#039;attente d&#039;impression?\n&#8211; RE\n      \nHé, RE. Vous savez, si vos imprimantes ressemblent à celles avec lesquelles les Scripting Guys ont l&#039;habitude de travailler, il est facile de dire quels utilisateurs sont connectés à une file d&#039;attente d&#039;impression: tout ce que vous avez à faire est d&#039;entrer dans la salle d&#039;impression et de voir qui s&#039;y trouve frénétiquement regarder dans tous les coins et recoins pour le document que l&#039;imprimante insiste il a imprimé. Chez Microsoft, le bureau sans papier est très proche d&#039;une réalité. Non pas parce que nous avons consciemment décidé d&#039;économiser du papier, mais parce que vous avez généralement plus de chances de remporter le jackpot à Las Vegas que d&#039;obtenir un document à imprimer.\nSi vous avez des imprimantes un peu plus fiables que cela, cependant, vous trouverez peut-être plus facile d&#039;utiliser un script pour déterminer quels utilisateurs impriment actuellement sur une imprimante particulière. Il y a un peu d&#039;astuce à faire, et vous devez utiliser une approche légèrement différente pour effectuer cette tâche sur n&#039;importe quelle version de Windows antérieure à Windows XP. Mais nous expliquerons tout cela dans un instant. Pour l&#039;instant, examinons un script qui fonctionne sous Windows XP et Windows Server 2003:\nstrComputer = &quot;.&quot;Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où le nom comme«% FinancePrinter% »»)\nPour chaque objPrintJob dans colPrintJobsWscript.Echo objPrintJob.OwnerProchain\nComme vous pouvez le voir, le script n’a pas grand-chose. Il commence par se connecter au service WMI sur l&#039;ordinateur local (bien que le script puisse tout aussi bien s&#039;exécuter sur une machine distante). Voici où cela devient un peu délicat.\nEn fait, la classe WMI Win32_PrintJob peut renvoyer le nom de connexion de tous les utilisateurs qui impriment actuellement tout les imprimantes connectées à un ordinateur. Curieusement, cependant, Win32_PrintJob n&#039;a pas de classe qui identifie lequel file d&#039;attente d&#039;impression à laquelle un utilisateur est connecté. Au mieux, vous pouvez identifier l&#039;imprimante à l&#039;aide du Nom propriété. Les valeurs de cette propriété sont composées de deux éléments: le nom de l&#039;imprimante et un ID de tâche d&#039;impression. Par exemple, les travaux d&#039;impression actuellement dans la file d&#039;attente de l&#039;imprimante FinancePrinter peuvent ressembler à ceci:\nFinancePrinter, 1FinancePrinter, 2FinancePrinter, 3\nEst-ce un problème? Oui, ça l&#039;est; après tout, cela nous empêche d&#039;utiliser une requête comme celle-ci pour renvoyer tous les travaux d&#039;impression dans la file d&#039;attente d&#039;impression FinancePrinter:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où nom =« FinancePrinter »»)\nPourquoi ne pouvons-nous pas utiliser cette requête? Eh bien, parce qu&#039;il n&#039;y aura pas être tout travail d&#039;impression avec Name FinancePrinter; au lieu de cela, tous les travaux d&#039;impression seront nommés des choses comme FinancePrinter, 1. Comme… délicieux….\nMais ça va; comme d&#039;habitude, nous pouvons contourner les particularités de WMI. Sur Windows XP et Windows Server 2003, nous pouvons utiliser l&#039;opérateur LIKE et une requête générique, qui ressemble à ceci:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où le nom comme«% FinancePrinter% »»)\nNotez la construction de notre clause Where: Où nom comme «% FinancePrinter%». Les signes de pourcentage sont nos caractères génériques: ils signifient n&#039;importe quel caractère ou ensemble de caractères, de la même manière que l&#039;astérisque lorsqu&#039;il est utilisé avec la commande dir. La commande dir *. * signifie: &quot;Montrez-moi tous les fichiers et dossiers dont les noms commencent par n&#039;importe quel caractère ou ensemble de caractères, comportent un point, puis se terminent par n&#039;importe quel caractère ou ensemble de caractères.&quot; Notre requête WQL peut être lue de la même manière: «Ramenez tous les travaux d&#039;impression où la propriété Name commence par n&#039;importe quel caractère ou ensemble de caractères, a le terme FinancePrinter en elle, puis se termine par n&#039;importe quel caractère ou ensemble de caractères &quot;. (Et, oui, «n&#039;importe quel caractère ou ensemble de caractères» signifie également aucun caractère du tout.) En d&#039;autres termes, ramenez tout travail d&#039;impression dont le nom inclut la chaîne FinancePrinter.\nÀ ce stade, tout ce que nous avons à faire est de configurer une boucle For Each et de parcourir la collection de travaux d&#039;impression, en faisant écho à la valeur de la Propriétaire propriété pour chacun. La propriété Owner est le nom de connexion de l&#039;utilisateur connecté; par exemple, kmyer ou packerman. C’est le mieux que vous puissiez faire avec Win32_PrintJob; si vous avez besoin, par exemple, du nom et du prénom de l&#039;utilisateur, vous devrez faire autre chose. (Une suggestion: prenez le nom de connexion [also known as the sAMAccountName] et l&#039;utiliser dans une recherche Active Directory qui peut renvoyer le prénom et le nom de l&#039;utilisateur. Pour plus d&#039;informations, consultez le Contes du script colonne Mec, où est mon imprimante?)\nMaintenant, tout va bien sous Windows XP et Windows Server 2003; malheureusement, ce script ne fera pas grand-chose pour quiconque exécute une version antérieure de Windows. En effet, l&#039;opérateur LIKE n&#039;est pas disponible sur les versions antérieures de Windows. Cela ne signifie pas que vous n&#039;avez pas de chance, cela signifie simplement que nous devons faire les choses à l&#039;ancienne. Par exemple, au lieu d&#039;écrire une requête qui renvoie uniquement les travaux d&#039;impression en cours d&#039;impression vers FinancePrinter, nous devons écrire une requête qui renvoie tout les travaux d&#039;impression, quelle que soit l&#039;imprimante:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(&quot;Sélectionnez * à partir de Win32_PrintJob&quot;)\nUne fois que nous avons la collection complète des travaux d&#039;impression, nous pouvons ensuite utiliser le InStr pour déterminer si la propriété Name inclut ou non la chaîne FinancePrinter:\nSi Instr (objPrintJob.Name, «FinancePrinter») Alors\nC&#039;est un peu plus lourd, mais ça marchera. Voici un script complet qui renvoie la liste des utilisateurs actuellement connectés à une file d&#039;attente d&#039;impression Windows 2000:\nstrComputer = &quot;.&quot;Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(&quot;Sélectionnez * à partir de Win32_PrintJob&quot;)\nPour chaque objPrintJob dans colPrintJobsSi Instr (objPrintJob.Name, «FinancePrinter») AlorsWscript.Echo objPrintJob.OwnerFin siProchain\nMalheureusement, nous n&#039;avons pas de script qui puisse vous dire où vont réellement les documents imprimés lorsque l&#039;imprimante dit ils ont été imprimés mais les pages imprimées sont introuvables. Mais nous y travaillons.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"Hé, le scripteur! Comment savoir quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression?\n&#8211; RE\n      \nHé, RE. Vous savez, si vos imprimantes ressemblent à celles avec lesquelles les Scripting Guys ont l&#39;habitude de travailler, il est facile de dire quels utilisateurs sont connectés à une file d&#39;attente d&#39;impression: tout ce que vous avez à faire est d&#39;entrer dans la salle d&#39;impression et de voir qui s&#39;y trouve frénétiquement regarder dans tous les coins et recoins pour le document que l&#39;imprimante insiste il a imprimé. Chez Microsoft, le bureau sans papier est très proche d&#39;une réalité. Non pas parce que nous avons consciemment décidé d&#39;économiser du papier, mais parce que vous avez généralement plus de chances de remporter le jackpot à Las Vegas que d&#39;obtenir un document à imprimer.\nSi vous avez des imprimantes un peu plus fiables que cela, cependant, vous trouverez peut-être plus facile d&#39;utiliser un script pour déterminer quels utilisateurs impriment actuellement sur une imprimante particulière. Il y a un peu d&#39;astuce à faire, et vous devez utiliser une approche légèrement différente pour effectuer cette tâche sur n&#39;importe quelle version de Windows antérieure à Windows XP. Mais nous expliquerons tout cela dans un instant. Pour l&#39;instant, examinons un script qui fonctionne sous Windows XP et Windows Server 2003:\nstrComputer = &quot;.&quot;Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où le nom comme«% FinancePrinter% »»)\nPour chaque objPrintJob dans colPrintJobsWscript.Echo objPrintJob.OwnerProchain\nComme vous pouvez le voir, le script n’a pas grand-chose. Il commence par se connecter au service WMI sur l&#39;ordinateur local (bien que le script puisse tout aussi bien s&#39;exécuter sur une machine distante). Voici où cela devient un peu délicat.\nEn fait, la classe WMI Win32_PrintJob peut renvoyer le nom de connexion de tous les utilisateurs qui impriment actuellement tout les imprimantes connectées à un ordinateur. Curieusement, cependant, Win32_PrintJob n&#39;a pas de classe qui identifie lequel file d&#39;attente d&#39;impression à laquelle un utilisateur est connecté. Au mieux, vous pouvez identifier l&#39;imprimante à l&#39;aide du Nom propriété. Les valeurs de cette propriété sont composées de deux éléments: le nom de l&#39;imprimante et un ID de tâche d&#39;impression. Par exemple, les travaux d&#39;impression actuellement dans la file d&#39;attente de l&#39;imprimante FinancePrinter peuvent ressembler à ceci:\nFinancePrinter, 1FinancePrinter, 2FinancePrinter, 3\nEst-ce un problème? Oui, ça l&#39;est; après tout, cela nous empêche d&#39;utiliser une requête comme celle-ci pour renvoyer tous les travaux d&#39;impression dans la file d&#39;attente d&#39;impression FinancePrinter:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où nom =« FinancePrinter »»)\nPourquoi ne pouvons-nous pas utiliser cette requête? Eh bien, parce qu&#39;il n&#39;y aura pas être tout travail d&#39;impression avec Name FinancePrinter; au lieu de cela, tous les travaux d&#39;impression seront nommés des choses comme FinancePrinter, 1. Comme… délicieux….\nMais ça va; comme d&#39;habitude, nous pouvons contourner les particularités de WMI. Sur Windows XP et Windows Server 2003, nous pouvons utiliser l&#39;opérateur LIKE et une requête générique, qui ressemble à ceci:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(«Sélectionnez * à partir de Win32_PrintJob où le nom comme«% FinancePrinter% »»)\nNotez la construction de notre clause Where: Où nom comme «% FinancePrinter%». Les signes de pourcentage sont nos caractères génériques: ils signifient n&#39;importe quel caractère ou ensemble de caractères, de la même manière que l&#39;astérisque lorsqu&#39;il est utilisé avec la commande dir. La commande dir *. * signifie: &quot;Montrez-moi tous les fichiers et dossiers dont les noms commencent par n&#39;importe quel caractère ou ensemble de caractères, comportent un point, puis se terminent par n&#39;importe quel caractère ou ensemble de caractères.&quot; Notre requête WQL peut être lue de la même manière: «Ramenez tous les travaux d&#39;impression où la propriété Name commence par n&#39;importe quel caractère ou ensemble de caractères, a le terme FinancePrinter en elle, puis se termine par n&#39;importe quel caractère ou ensemble de caractères &quot;. (Et, oui, «n&#39;importe quel caractère ou ensemble de caractères» signifie également aucun caractère du tout.) En d&#39;autres termes, ramenez tout travail d&#39;impression dont le nom inclut la chaîne FinancePrinter.\nÀ ce stade, tout ce que nous avons à faire est de configurer une boucle For Each et de parcourir la collection de travaux d&#39;impression, en faisant écho à la valeur de la Propriétaire propriété pour chacun. La propriété Owner est le nom de connexion de l&#39;utilisateur connecté; par exemple, kmyer ou packerman. C’est le mieux que vous puissiez faire avec Win32_PrintJob; si vous avez besoin, par exemple, du nom et du prénom de l&#39;utilisateur, vous devrez faire autre chose. (Une suggestion: prenez le nom de connexion [also known as the sAMAccountName] et l&#39;utiliser dans une recherche Active Directory qui peut renvoyer le prénom et le nom de l&#39;utilisateur. Pour plus d&#39;informations, consultez le Contes du script colonne Mec, où est mon imprimante?)\nMaintenant, tout va bien sous Windows XP et Windows Server 2003; malheureusement, ce script ne fera pas grand-chose pour quiconque exécute une version antérieure de Windows. En effet, l&#39;opérateur LIKE n&#39;est pas disponible sur les versions antérieures de Windows. Cela ne signifie pas que vous n&#39;avez pas de chance, cela signifie simplement que nous devons faire les choses à l&#39;ancienne. Par exemple, au lieu d&#39;écrire une requête qui renvoie uniquement les travaux d&#39;impression en cours d&#39;impression vers FinancePrinter, nous devons écrire une requête qui renvoie tout les travaux d&#39;impression, quelle que soit l&#39;imprimante:\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(&quot;Sélectionnez * à partir de Win32_PrintJob&quot;)\nUne fois que nous avons la collection complète des travaux d&#39;impression, nous pouvons ensuite utiliser le InStr pour déterminer si la propriété Name inclut ou non la chaîne FinancePrinter:\nSi Instr (objPrintJob.Name, «FinancePrinter») Alors\nC&#39;est un peu plus lourd, mais ça marchera. Voici un script complet qui renvoie la liste des utilisateurs actuellement connectés à une file d&#39;attente d&#39;impression Windows 2000:\nstrComputer = &quot;.&quot;Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colPrintJobs = objWMIService.ExecQuery _(&quot;Sélectionnez * à partir de Win32_PrintJob&quot;)\nPour chaque objPrintJob dans colPrintJobsSi Instr (objPrintJob.Name, «FinancePrinter») AlorsWscript.Echo objPrintJob.OwnerFin siProchain\nMalheureusement, nous n&#39;avons pas de script qui puisse vous dire où vont réellement les documents imprimés lorsque l&#39;imprimante dit ils ont été imprimés mais les pages imprimées sont introuvables. Mais nous y travaillons."},{"id":"text-2","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2020/02/PowerShell_5.0_icon-150x150.png"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2020/02/28/comment-savoir-quels-utilisateurs-sont-connectes-a-une-file-dattente-dimpression-serveur-dimpression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2020/02/28/comment-savoir-quels-utilisateurs-sont-connectes-a-une-file-dattente-dimpression-serveur-dimpression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2020/02/28/comment-savoir-quels-utilisateurs-sont-connectes-a-une-file-dattente-dimpression-serveur-dimpression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}