{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/09/03/migration-des-imprimantes-reseau-avec-vbscript-bien-choisir-son-serveur-d-impression/","llm_html_url":"https://tutos-gameserver.fr/2019/09/03/migration-des-imprimantes-reseau-avec-vbscript-bien-choisir-son-serveur-d-impression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/09/03/migration-des-imprimantes-reseau-avec-vbscript-bien-choisir-son-serveur-d-impression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Migration des imprimantes réseau avec VBScript\n\n &#8211; Bien choisir son serveur d impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-09-03T12:34:36+00:00","modified_at":"2019-09-03T12:34:36+00:00","word_count":1763,"reading_time_seconds":529,"summary":"Dans le cadre d’une migration de Windows XP vers Windows 7, il m’a été demandé de trouver un moyen d’exporter les imprimantes réseau installées sur les ordinateurs XP afin qu’elles puissent être réinstallées sur les ordinateurs Windows 7. Nous ne voulions pas capturer les imprimantes locales (imprimantes installées via TCP / IP ou connectées via [&hellip;]","summary_points":["Dans le cadre d’une migration de Windows XP vers Windows 7, il m’a été demandé de trouver un moyen d’exporter les imprimantes réseau installées sur les ordinateurs XP afin qu’elles puissent être réinstallées sur les ordinateurs Windows 7.","Nous ne voulions pas capturer les imprimantes locales (imprimantes installées via TCP / IP ou connectées via USB) ni les imprimantes virtuelles (telles que l&#39;imprimante virtuelle Adobe PDF ou Microsoft XPS Document Writer).","Je pensais que la migration des imprimantes était moins attrayante, car les ordinateurs sources sont sous Windows XP 32 bits, alors que les ordinateurs de destination sont sous Windows 7 64 bits et que les pilotes sont donc différents.","Il existe différentes manières d’exporter des files d’impression, des paramètres d’imprimante et des ports d’imprimante, mais j’ai décidé que tout ce que je voulais, c’était de déterminer le nom de chaque imprimante (par exemple: \\ SERVER  Printer) sur le XP."],"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":"5e39fb6fde551083c80725ffa1220f89","plain_text":"Dans le cadre d’une migration de Windows XP vers Windows 7, il m’a été demandé de trouver un moyen d’exporter les imprimantes réseau installées sur les ordinateurs XP afin qu’elles puissent être réinstallées sur les ordinateurs Windows 7. Nous ne voulions pas capturer les imprimantes locales (imprimantes installées via TCP / IP ou connectées via USB) ni les imprimantes virtuelles (telles que l&#39;imprimante virtuelle Adobe PDF ou Microsoft XPS Document Writer). Je pensais que la migration des imprimantes était moins attrayante, car les ordinateurs sources sont sous Windows XP 32 bits, alors que les ordinateurs de destination sont sous Windows 7 64 bits et que les pilotes sont donc différents.\nIl existe différentes manières d’exporter des files d’impression, des paramètres d’imprimante et des ports d’imprimante, mais j’ai décidé que tout ce que je voulais, c’était de déterminer le nom de chaque imprimante (par exemple: \\ SERVER  Printer) sur le XP. ordinateur, exportez-le dans un fichier texte sur un partage réseau, puis exécutez PrintUI.exe / ga sur la machine Windows 7 en parcourant les lignes du fichier texte en entrée.\n(Consultez l’assistant Migration d’imprimantes en lançant PrintBrmUI.exe ou la version en ligne de commande. % WINDIR%  System32  Spool  Tools  Printbrm /?, pour des alternatives à printui.exe.)\nDe plus, j’exporte également le nom de l’imprimante par défaut afin qu’il puisse être défini par programme dans le nouvel environnement.\nLe code est un travail en cours, mais j&#39;espère que cela vous aidera à démarrer.\nLes VBScripts\nVoici les scripts que j&#39;ai reconstitués.\nexportPrinters.vbs\nLe script exportPrinters.vbs crée deux fichiers texte dans H:  PRINTERS. Ajustez votre chemin en conséquence.\n\r\n\r\n\r\n\r\nConst ForWriting = 2\r\n\r\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)\r\n\r\nstrName = objNetwork.UserName\r\nstrDomain = objNetwork.UserDomain\r\nstrUser = strDomain &amp; &quot;&quot; &amp; strName\r\n\r\n&#39;strText = strUser &amp; vbCrLf\r\n\r\nstrComputer = &quot;.&quot;\r\n\r\nDéfinissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\r\n\r\n\r\n&#39;Exporter une liste d’imprimantes réseau dans un fichier texte\r\n\r\nDéfinir colPrinters = objWMIService.ExecQuery _\r\n    (&quot;Select * From Win32_Printer Where Local = FALSE&quot;)\r\n\r\nPour chaque objPrinter en colPrinters\r\n    strText = strText &amp; objPrinter.Name &amp; vbCrLf\r\nProchain\r\n\r\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)\r\n\r\nstrFolder = &quot;H:  IMPRIMANTES&quot;\r\n\r\nSi non objFSO.FolderExists (strFolder), alors\r\n    objFSO.CreateFolder (strFolder)\r\nFin si\r\n\r\nDéfinir objFile = objFSO.CreateTextFile _\r\n    (&quot;H:  PRINTERS  printers.txt&quot;, ForWriting, False)\r\n\r\nobjFile.Write strText\r\n\r\nobjFile.Close\r\n\r\n\r\n&#39;Exporter l&#39;imprimante par défaut séparément\r\n\r\nDéfinir colPrinters = objWMIService.ExecQuery _\r\n    (&quot;Select * From Win32_Printer Où Default = TRUE&quot;)\r\n\r\nPour chaque objPrinter en colPrinters\r\n    strText = objPrinter.Name\r\nProchain\r\n\r\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)\r\n\r\nDéfinir objFile = objFSO.CreateTextFile _\r\n    (&quot;H:  PRINTERS  default.txt&quot;, ForWriting, False)\r\n\r\nobjFile.Write strText\r\n\r\nobjFile.Close\r\n\nimportPrinters.vbs\nNotez que, si vos utilisateurs sous Windows 7 ne sont pas administrateurs, vous devrez exécuter le script en tant qu&#39;administrateur (il existe différentes manières) ou vous obtiendrez une invite UAC pour chaque installation d&#39;imprimante et le redémarrage de l&#39;impression. spouleur.\nEncore une fois, surveillez les chemins. Ceci est un script maison pour mon environnement spécifique.\n\r\n\r\n\r\n\r\nOption explicite\r\n\r\n&#39;Ce script doit être exécuté avec les privilèges administor\r\n&#39;S&#39;il n&#39;est pas exécuté avec des privilèges d&#39;administrateur, il lancera une invite UAC pour chaque imprimante lorsqu&#39;il parcourra la liste en boucle.\r\n&#39;Voici un article intéressant sur l&#39;utilisation de VBS en tant qu&#39;utilisateur différent:\r\n&#39;http://blogs.technet.com/b/heyscriptingguy/archive/2006/04/28/how-can-i-use-the-runas-command-torrun-a-script-under-alternate-user -credentials.aspx\r\n\r\n&#39;Par exemple:\r\n&#39;runas / profile / user:[username][password] &quot;cscript.exe &quot; F:  Recherche de pilote d&#39;imprimante  Automation  printers-import.vbs &quot;&quot;\r\n\r\nDim objNetwork, strComputer, strName, strFolder, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, WshShell\r\nCONST ForReading = 1\r\n\r\n&#39;Créer un objet réseau\r\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)\r\n\r\n&#39;Obtenir le nom de la machine locale à partir de l&#39;objet réseau\r\nstrComputer = objNetwork.ComputerName\r\n\r\n&#39;Obtenir le nom d&#39;utilisateur de l&#39;utilisateur à partir de l&#39;objet Réseau\r\nstrName = objNetwork.UserName\r\n\r\n&#39;Créer un objet de système de fichiers\r\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)\r\n\r\n&#39;Enregistrer le nom du fichier texte en tant que variable\r\n&#39;Notez que le script doit être exécuté en tant qu’administrateur et que l’appel du script avec\r\n&#39;Exécuter en tant que provoque l&#39;exécution du script comme s&#39;il se trouvait dans le même répertoire que &quot;% SystemRoot%  System32  WScript.exe&quot;\r\n&#39;D&#39;où la nécessité de transmettre le chemin d&#39;accès complet au fichier printers.txt\r\nstrTextFile = &quot;H:  PRINTERS  printers.txt&quot;\r\n\r\n&#39;Ouvrez le fichier texte - strData contient maintenant tout le fichier\r\nstrData = objFSO.OpenTextFile (strTextFile, ForReading) .ReadAll\r\n\r\n&#39;Diviser le fichier texte en lignes\r\narrLines = Split (strData, vbCrLf)\r\n\r\n&#39;Initialise le wshShell\r\nDéfinir WshShell = WScript.CreateObject (&quot;WSCript.shell&quot;)\r\n\r\n&#39;Traverser les lignes\r\nPour chaque ligne en ligne\r\n\r\n    Si Len (strLine)&gt; 0 alors\r\n&#39;N&#39;exécute le processus que sur des lignes qui ne sont pas vides\r\n\r\n&#39;strRunCmd = &quot;rundll32 printui.dll, PrintUIEntry / ga / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\r\nstrRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;/ ga / q / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\r\n\r\n&#39;Renvoie la commande à exécuter\r\n&#39;WScript.Echo strRunCmd\r\n\r\n&#39;Ceci lance printui.exe\r\n&#39;strRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;&quot;\r\n\r\n&#39;Exécutez la commande, affichez la fenêtre et attendez la fin de la commande avant de continuer.\r\nRésultat faible\r\nresult = WshShell.Run (strRunCmd, 1, True)\r\n\r\n&#39;WScript.Echo résultat\r\n\r\n&#39;Écrivez dans le journal d&#39;application que l&#39;imprimante a été installée\r\nSi résultat = 0 alors\r\nWshShell.LogEvent 0, &quot;User:&quot; &amp; strName &amp; &quot;- Evénement: tentative d&#39;installation de l&#39;imprimante&quot; &amp; strLine &amp; &quot;avec [\" & strRunCmd & \"] (succès inconnu) &quot;\r\nFin si\r\n\r\n&#39;WScript.Echo &quot;Imprimante traitée:&quot; &amp; strLine\r\n    Fin si\r\n\r\nProchain\r\n\r\n&#39;Nettoyer\r\nDéfinir objFSO = Nothing\r\n\r\n&#39;Attends 10 secondes\r\nWScript.Sleep 10000\r\n\r\n&#39;Redémarrez le spouleur d&#39;impression\r\nRestartService &quot;Spouleur d&#39;impression&quot;, True\r\n\r\nSub RestartService (myService, blnQuiet)\r\n&#39;Ce sous-programme redémarre un service\r\n&#39; Arguments:\r\n&#39;myService utilise le nom d&#39;affichage du service\r\n&#39;blnQuiet si False, l&#39;état du service est affiché\r\n&#39;chaque seconde pendant la procédure de redémarrage\r\n&#39;\r\n&#39;Écrit par Rob van der Woude\r\n&#39;http://www.robvanderwoude.com\r\n\r\n    «Ménage standard\r\n    Dim colServices, colServicesTest, objService\r\n    Dim objServiceTest, objWMIService, strQuery, strTest\r\n\r\n    &#39;Créer un objet WMI\r\n    Définissez objWMIService = GetObject (&quot;winmgmts: \\.  Root  CIMV2&quot;)\r\n\r\n    &#39;Interrogez les services pour &quot;notre&quot; service\r\n    strQuery = &quot;SELECT * FROM Win32_Service WHERE DisplayName = &#39;&quot; &amp; myService &amp; &quot;&#39;&quot;\r\n    Définissez colServices = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)\r\n\r\n    &#39;Boucle à travers la &quot;collection&quot; de services rendus\r\n    Pour chaque objService dans colServices\r\n        &#39;Voir si nous devons dire à l&#39;utilisateur que nous allons arrêter le service\r\n        Si non blnQuiet alors\r\n            WScript.Echo &quot;Arrêt&quot; et monService\r\n        Fin si\r\n\r\n        &#39;Arrêtez le service\r\n        objService.StopService\r\n\r\n        &#39;Attendez que le service soit arrêté\r\n        Do Until strTest = &quot;Stopped&quot;\r\n            &#39;Créer un nouvel objet pour notre service; cette solution est nécessaire\r\n            &#39;sinon les informations d&#39;état du service ne sont pas correctement mises à jour\r\n            Définir colServicesTest = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)\r\n\r\n            &#39;Boucle à travers la &quot;collection&quot; de services rendus\r\n            Pour chaque objServiceTest dans colServicesTest\r\n                &#39;Vérifier l&#39;état du service\r\n                strTest = objServiceTest.State\r\n                &#39;Voir si nous devons montrer les progrès\r\n                Si non blnQuiet alors\r\n                    WScript.Echo &quot;State:&quot; &amp; strTest\r\n                Fin si\r\n                &#39;Attendez 1 seconde\r\n                WScript.Sleep 1000\r\n            Prochain\r\n\r\n            &#39;Effacer l&#39;objet temporaire\r\n            Définir colServicesTest = Nothing\r\n        Boucle\r\n\r\n        &#39;Voir si nous devons dire à l&#39;utilisateur que nous allons (re) démarrer le service\r\n        Si non blnQuiet alors\r\n            WScript.Echo &quot;Démarrage&quot; &amp; myService\r\n        Fin si\r\n\r\n        &#39;Démarrer le service\r\n        objService.StartService\r\n\r\n        &#39;Attendez que le service soit à nouveau opérationnel\r\n        Do Until strTest = &quot;Running&quot;\r\n            &#39;Créer un nouvel objet pour notre service; cette solution est nécessaire\r\n            &#39;sinon les informations d&#39;état du service ne sont pas correctement mises à jour\r\n            Définir colServicesTest = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)\r\n\r\n            &#39;Boucle à travers la &quot;collection&quot; de services rendus\r\n            Pour chaque objServiceTest dans colServicesTest\r\n                &#39;Vérifier l&#39;état du service\r\n                strTest = objServiceTest.State\r\n                &#39;Voir si nous devons montrer les progrès\r\n                Si non blnQuiet alors\r\n                    WScript.Echo &quot;State:&quot; &amp; strTest\r\n                Fin si\r\n                &#39;Attendez 1 seconde\r\n                WScript.Sleep 1000\r\n            Prochain\r\n\r\n            &#39;Effacer l&#39;objet temporaire\r\n            Définir colServicesTest = Nothing\r\n        Boucle\r\n    Prochain\r\nEnd Sub\r\n\nsetDefaultPrinter.vbs\nEnfin, nous voulons définir l’imprimante par défaut. L&#39;imprimante devra déjà exister (évidemment). Si vous venez de lancer la commande printui.exe / ga pour installer l’imprimante, celle-ci ne sera disponible qu’au redémarrage du spouleur d’impression. Alors attendez une minute ou deux avant d&#39;exécuter le script.\n\r\n\r\n\r\n\r\nOption explicite\r\n\r\nDim objNetwork, strComputer, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, wshShell\r\nCONST ForReading = 1\r\n\r\n&#39;Créer un objet réseau\r\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)\r\n\r\n&#39;Obtenir le nom de la machine locale à partir de l&#39;objet réseau\r\nstrComputer = objNetwork.ComputerName\r\n\r\n&#39;Enregistrer le nom du fichier texte en tant que variable\r\nstrTextFile = &quot;H:  PRINTERS  default.txt&quot;\r\n\r\n&#39;Créer un objet de système de fichiers\r\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)\r\n\r\n&#39;Ouvrez le fichier texte - strData contient maintenant tout le fichier\r\nstrData = objFSO.OpenTextFile (strTextFile, ForReading) .ReadAll\r\n\r\n&#39;Diviser le fichier texte en lignes\r\narrLines = Split (strData, vbCrLf)\r\n\r\n&#39;Initialise le wshShell\r\nDéfinir wshShell = WScript.CreateObject (&quot;WSCript.shell&quot;)\r\n\r\n&#39;Traverser les lignes\r\nPour chaque ligne en ligne\r\n\r\n    Si Len (strLine)&gt; 0 alors\r\n&#39;N&#39;exécute le processus que sur des lignes qui ne sont pas vides\r\n\r\n&#39;strRunCmd = &quot;rundll32 printui.dll, PrintUIEntry / y / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\r\nstrRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;/ y / c &quot; &amp; strComputer &amp; &quot;/ n&quot; &quot;&quot; &amp; strLine &amp; &quot;&quot; &quot;&quot;\r\n&#39;wscript.echo strRunCmd\r\nwshShell.Run strRunCmd\r\n\r\n&#39;wscript.echo &quot;Imprimante traitée:&quot; &amp; strLine\r\n    Fin si\r\n\r\nProchain\r\n\r\n&#39;Nettoyer\r\nDéfinir objFSO = Nothing\r\n\nAu fur et à mesure de la migration, je reviendrai et peaufinerai les scripts. S&#39;il vous plaît n&#39;hésitez pas à laisser des commentaires et des suggestions.\nMerci à Rob van der Woude pour sa formidable page de contrôle des imprimantes en ligne de commande, ainsi que pour d’autres.\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["Dans le cadre d’une migration de Windows XP vers Windows 7, il m’a été demandé de trouver un moyen d’exporter les imprimantes réseau installées sur les ordinateurs XP afin qu’elles puissent être réinstallées sur les ordinateurs Windows 7. Nous ne voulions pas capturer les imprimantes locales (imprimantes installées via TCP / IP ou connectées via USB) ni les imprimantes virtuelles (telles que l&#39;imprimante virtuelle Adobe PDF ou Microsoft XPS Document Writer). Je pensais que la migration des imprimantes était moins attrayante, car les ordinateurs sources sont sous Windows XP 32 bits, alors que les ordinateurs de destination sont sous Windows 7 64 bits et que les pilotes sont donc différents.\nIl existe différentes manières d’exporter des files d’impression, des paramètres d’imprimante et des ports d’imprimante, mais j’ai décidé que tout ce que je voulais, c’était de déterminer le nom de chaque imprimante (par exemple: \\ SERVER  Printer) sur le XP. ordinateur, exportez-le dans un fichier texte sur un partage réseau, puis exécutez PrintUI.exe / ga sur la machine Windows 7 en parcourant les lignes du fichier texte en entrée.\n(Consultez l’assistant Migration d’imprimantes en lançant PrintBrmUI.exe ou la version en ligne de commande. % WINDIR%  System32  Spool  Tools  Printbrm /?, pour des alternatives à printui.exe.)\nDe plus, j’exporte également le nom de l’imprimante par défaut afin qu’il puisse être défini par programme dans le nouvel environnement.\nLe code est un travail en cours, mais j&#39;espère que cela vous aidera à démarrer.\nLes VBScripts\nVoici les scripts que j&#39;ai reconstitués.\nexportPrinters.vbs\nLe script exportPrinters.vbs crée deux fichiers texte dans H:  PRINTERS. Ajustez votre chemin en conséquence.","Const ForWriting = 2","Set objNetwork = CreateObject (&quot;Wscript.Network&quot;)","strName = objNetwork.UserName\nstrDomain = objNetwork.UserDomain\nstrUser = strDomain &amp; &quot;&quot; &amp; strName","&#39;strText = strUser &amp; vbCrLf","strComputer = &quot;.&quot;","Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)","&#39;Exporter une liste d’imprimantes réseau dans un fichier texte","Définir colPrinters = objWMIService.ExecQuery _\n    (&quot;Select * From Win32_Printer Where Local = FALSE&quot;)","Pour chaque objPrinter en colPrinters\n    strText = strText &amp; objPrinter.Name &amp; vbCrLf\nProchain","Définir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)","strFolder = &quot;H:  IMPRIMANTES&quot;","Si non objFSO.FolderExists (strFolder), alors\n    objFSO.CreateFolder (strFolder)\nFin si","Définir objFile = objFSO.CreateTextFile _\n    (&quot;H:  PRINTERS  printers.txt&quot;, ForWriting, False)","objFile.Write strText","objFile.Close","&#39;Exporter l&#39;imprimante par défaut séparément","Définir colPrinters = objWMIService.ExecQuery _\n    (&quot;Select * From Win32_Printer Où Default = TRUE&quot;)","Pour chaque objPrinter en colPrinters\n    strText = objPrinter.Name\nProchain","Définir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)","Définir objFile = objFSO.CreateTextFile _\n    (&quot;H:  PRINTERS  default.txt&quot;, ForWriting, False)","objFile.Write strText","objFile.Close","importPrinters.vbs\nNotez que, si vos utilisateurs sous Windows 7 ne sont pas administrateurs, vous devrez exécuter le script en tant qu&#39;administrateur (il existe différentes manières) ou vous obtiendrez une invite UAC pour chaque installation d&#39;imprimante et le redémarrage de l&#39;impression. spouleur.\nEncore une fois, surveillez les chemins. Ceci est un script maison pour mon environnement spécifique.","Option explicite","&#39;Ce script doit être exécuté avec les privilèges administor\n&#39;S&#39;il n&#39;est pas exécuté avec des privilèges d&#39;administrateur, il lancera une invite UAC pour chaque imprimante lorsqu&#39;il parcourra la liste en boucle.\n&#39;Voici un article intéressant sur l&#39;utilisation de VBS en tant qu&#39;utilisateur différent:\n&#39;http://blogs.technet.com/b/heyscriptingguy/archive/2006/04/28/how-can-i-use-the-runas-command-torrun-a-script-under-alternate-user -credentials.aspx","&#39;Par exemple:\n&#39;runas / profile / user:[username][password] &quot;cscript.exe &quot; F:  Recherche de pilote d&#39;imprimante  Automation  printers-import.vbs &quot;&quot;","Dim objNetwork, strComputer, strName, strFolder, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, WshShell\nCONST ForReading = 1","&#39;Créer un objet réseau\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)","&#39;Obtenir le nom de la machine locale à partir de l&#39;objet réseau\nstrComputer = objNetwork.ComputerName","&#39;Obtenir le nom d&#39;utilisateur de l&#39;utilisateur à partir de l&#39;objet Réseau\nstrName = objNetwork.UserName","&#39;Créer un objet de système de fichiers\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)","&#39;Enregistrer le nom du fichier texte en tant que variable\n&#39;Notez que le script doit être exécuté en tant qu’administrateur et que l’appel du script avec\n&#39;Exécuter en tant que provoque l&#39;exécution du script comme s&#39;il se trouvait dans le même répertoire que &quot;% SystemRoot%  System32  WScript.exe&quot;\n&#39;D&#39;où la nécessité de transmettre le chemin d&#39;accès complet au fichier printers.txt\nstrTextFile = &quot;H:  PRINTERS  printers.txt&quot;","&#39;Ouvrez le fichier texte - strData contient maintenant tout le fichier\nstrData = objFSO.OpenTextFile (strTextFile, ForReading) .ReadAll","&#39;Diviser le fichier texte en lignes\narrLines = Split (strData, vbCrLf)","&#39;Initialise le wshShell\nDéfinir WshShell = WScript.CreateObject (&quot;WSCript.shell&quot;)","&#39;Traverser les lignes\nPour chaque ligne en ligne","    Si Len (strLine)&gt; 0 alors\n&#39;N&#39;exécute le processus que sur des lignes qui ne sont pas vides","&#39;strRunCmd = &quot;rundll32 printui.dll, PrintUIEntry / ga / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\nstrRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;/ ga / q / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;","&#39;Renvoie la commande à exécuter\n&#39;WScript.Echo strRunCmd","&#39;Ceci lance printui.exe\n&#39;strRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;&quot;","&#39;Exécutez la commande, affichez la fenêtre et attendez la fin de la commande avant de continuer.\nRésultat faible\nresult = WshShell.Run (strRunCmd, 1, True)","&#39;WScript.Echo résultat","&#39;Écrivez dans le journal d&#39;application que l&#39;imprimante a été installée\nSi résultat = 0 alors\nWshShell.LogEvent 0, &quot;User:&quot; &amp; strName &amp; &quot;- Evénement: tentative d&#39;installation de l&#39;imprimante&quot; &amp; strLine &amp; &quot;avec [\" & strRunCmd & \"] (succès inconnu) &quot;\nFin si","&#39;WScript.Echo &quot;Imprimante traitée:&quot; &amp; strLine\n    Fin si","Prochain","&#39;Nettoyer\nDéfinir objFSO = Nothing","&#39;Attends 10 secondes\nWScript.Sleep 10000","&#39;Redémarrez le spouleur d&#39;impression\nRestartService &quot;Spouleur d&#39;impression&quot;, True","Sub RestartService (myService, blnQuiet)\n&#39;Ce sous-programme redémarre un service\n&#39; Arguments:\n&#39;myService utilise le nom d&#39;affichage du service\n&#39;blnQuiet si False, l&#39;état du service est affiché\n&#39;chaque seconde pendant la procédure de redémarrage\n&#39;\n&#39;Écrit par Rob van der Woude\n&#39;http://www.robvanderwoude.com","    «Ménage standard\n    Dim colServices, colServicesTest, objService\n    Dim objServiceTest, objWMIService, strQuery, strTest","    &#39;Créer un objet WMI\n    Définissez objWMIService = GetObject (&quot;winmgmts: \\.  Root  CIMV2&quot;)","    &#39;Interrogez les services pour &quot;notre&quot; service\n    strQuery = &quot;SELECT * FROM Win32_Service WHERE DisplayName = &#39;&quot; &amp; myService &amp; &quot;&#39;&quot;\n    Définissez colServices = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)","    &#39;Boucle à travers la &quot;collection&quot; de services rendus\n    Pour chaque objService dans colServices\n        &#39;Voir si nous devons dire à l&#39;utilisateur que nous allons arrêter le service\n        Si non blnQuiet alors\n            WScript.Echo &quot;Arrêt&quot; et monService\n        Fin si","        &#39;Arrêtez le service\n        objService.StopService","        &#39;Attendez que le service soit arrêté\n        Do Until strTest = &quot;Stopped&quot;\n            &#39;Créer un nouvel objet pour notre service; cette solution est nécessaire\n            &#39;sinon les informations d&#39;état du service ne sont pas correctement mises à jour\n            Définir colServicesTest = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)","            &#39;Boucle à travers la &quot;collection&quot; de services rendus\n            Pour chaque objServiceTest dans colServicesTest\n                &#39;Vérifier l&#39;état du service\n                strTest = objServiceTest.State\n                &#39;Voir si nous devons montrer les progrès\n                Si non blnQuiet alors\n                    WScript.Echo &quot;State:&quot; &amp; strTest\n                Fin si\n                &#39;Attendez 1 seconde\n                WScript.Sleep 1000\n            Prochain","            &#39;Effacer l&#39;objet temporaire\n            Définir colServicesTest = Nothing\n        Boucle","        &#39;Voir si nous devons dire à l&#39;utilisateur que nous allons (re) démarrer le service\n        Si non blnQuiet alors\n            WScript.Echo &quot;Démarrage&quot; &amp; myService\n        Fin si","        &#39;Démarrer le service\n        objService.StartService","        &#39;Attendez que le service soit à nouveau opérationnel\n        Do Until strTest = &quot;Running&quot;\n            &#39;Créer un nouvel objet pour notre service; cette solution est nécessaire\n            &#39;sinon les informations d&#39;état du service ne sont pas correctement mises à jour\n            Définir colServicesTest = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)","            &#39;Boucle à travers la &quot;collection&quot; de services rendus\n            Pour chaque objServiceTest dans colServicesTest\n                &#39;Vérifier l&#39;état du service\n                strTest = objServiceTest.State\n                &#39;Voir si nous devons montrer les progrès\n                Si non blnQuiet alors\n                    WScript.Echo &quot;State:&quot; &amp; strTest\n                Fin si\n                &#39;Attendez 1 seconde\n                WScript.Sleep 1000\n            Prochain","            &#39;Effacer l&#39;objet temporaire\n            Définir colServicesTest = Nothing\n        Boucle\n    Prochain\nEnd Sub","setDefaultPrinter.vbs\nEnfin, nous voulons définir l’imprimante par défaut. L&#39;imprimante devra déjà exister (évidemment). Si vous venez de lancer la commande printui.exe / ga pour installer l’imprimante, celle-ci ne sera disponible qu’au redémarrage du spouleur d’impression. Alors attendez une minute ou deux avant d&#39;exécuter le script.","Option explicite","Dim objNetwork, strComputer, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, wshShell\nCONST ForReading = 1","&#39;Créer un objet réseau\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)","&#39;Obtenir le nom de la machine locale à partir de l&#39;objet réseau\nstrComputer = objNetwork.ComputerName","&#39;Enregistrer le nom du fichier texte en tant que variable\nstrTextFile = &quot;H:  PRINTERS  default.txt&quot;","&#39;Créer un objet de système de fichiers\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)","&#39;Ouvrez le fichier texte - strData contient maintenant tout le fichier\nstrData = objFSO.OpenTextFile (strTextFile, ForReading) .ReadAll","&#39;Diviser le fichier texte en lignes\narrLines = Split (strData, vbCrLf)","&#39;Initialise le wshShell\nDéfinir wshShell = WScript.CreateObject (&quot;WSCript.shell&quot;)","&#39;Traverser les lignes\nPour chaque ligne en ligne","    Si Len (strLine)&gt; 0 alors\n&#39;N&#39;exécute le processus que sur des lignes qui ne sont pas vides","&#39;strRunCmd = &quot;rundll32 printui.dll, PrintUIEntry / y / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\nstrRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;/ y / c &quot; &amp; strComputer &amp; &quot;/ n&quot; &quot;&quot; &amp; strLine &amp; &quot;&quot; &quot;&quot;\n&#39;wscript.echo strRunCmd\nwshShell.Run strRunCmd","&#39;wscript.echo &quot;Imprimante traitée:&quot; &amp; strLine\n    Fin si","Prochain","&#39;Nettoyer\nDéfinir objFSO = Nothing","Au fur et à mesure de la migration, je reviendrai et peaufinerai les scripts. S&#39;il vous plaît n&#39;hésitez pas à laisser des commentaires et des suggestions.\nMerci à Rob van der Woude pour sa formidable page de contrôle des imprimantes en ligne de commande, ainsi que pour d’autres.","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"Dans le cadre d’une migration de Windows XP vers Windows 7, il m’a été demandé de trouver un moyen d’exporter les imprimantes réseau installées sur les ordinateurs XP afin qu’elles puissent être réinstallées sur les ordinateurs Windows 7. Nous ne voulions pas capturer les imprimantes locales (imprimantes installées via TCP / IP ou connectées via USB) ni les imprimantes virtuelles (telles que l&#39;imprimante virtuelle Adobe PDF ou Microsoft XPS Document Writer). Je pensais que la migration des imprimantes était moins attrayante, car les ordinateurs sources sont sous Windows XP 32 bits, alors que les ordinateurs de destination sont sous Windows 7 64 bits et que les pilotes sont donc différents.\nIl existe différentes manières d’exporter des files d’impression, des paramètres d’imprimante et des ports d’imprimante, mais j’ai décidé que tout ce que je voulais, c’était de déterminer le nom de chaque imprimante (par exemple: \\ SERVER  Printer) sur le XP. ordinateur, exportez-le dans un fichier texte sur un partage réseau, puis exécutez PrintUI.exe / ga sur la machine Windows 7 en parcourant les lignes du fichier texte en entrée.\n(Consultez l’assistant Migration d’imprimantes en lançant PrintBrmUI.exe ou la version en ligne de commande. % WINDIR%  System32  Spool  Tools  Printbrm /?, pour des alternatives à printui.exe.)\nDe plus, j’exporte également le nom de l’imprimante par défaut afin qu’il puisse être défini par programme dans le nouvel environnement.\nLe code est un travail en cours, mais j&#39;espère que cela vous aidera à démarrer.\nLes VBScripts\nVoici les scripts que j&#39;ai reconstitués.\nexportPrinters.vbs\nLe script exportPrinters.vbs crée deux fichiers texte dans H:  PRINTERS. Ajustez votre chemin en conséquence.","html":"<p>Dans le cadre d’une migration de Windows XP vers Windows 7, il m’a été demandé de trouver un moyen d’exporter les imprimantes réseau installées sur les ordinateurs XP afin qu’elles puissent être réinstallées sur les ordinateurs Windows 7. Nous ne voulions pas capturer les imprimantes locales (imprimantes installées via TCP / IP ou connectées via USB) ni les imprimantes virtuelles (telles que l&#039;imprimante virtuelle Adobe PDF ou Microsoft XPS Document Writer). Je pensais que la migration des imprimantes était moins attrayante, car les ordinateurs sources sont sous Windows XP 32 bits, alors que les ordinateurs de destination sont sous Windows 7 64 bits et que les pilotes sont donc différents.\nIl existe différentes manières d’exporter des files d’impression, des paramètres d’imprimante et des ports d’imprimante, mais j’ai décidé que tout ce que je voulais, c’était de déterminer le nom de chaque imprimante (par exemple: \\ SERVER  Printer) sur le XP. ordinateur, exportez-le dans un fichier texte sur un partage réseau, puis exécutez PrintUI.exe / ga sur la machine Windows 7 en parcourant les lignes du fichier texte en entrée.\n(Consultez l’assistant Migration d’imprimantes en lançant PrintBrmUI.exe ou la version en ligne de commande. % WINDIR%  System32  Spool  Tools  Printbrm /?, pour des alternatives à printui.exe.)\nDe plus, j’exporte également le nom de l’imprimante par défaut afin qu’il puisse être défini par programme dans le nouvel environnement.\nLe code est un travail en cours, mais j&#039;espère que cela vous aidera à démarrer.\nLes VBScripts\nVoici les scripts que j&#039;ai reconstitués.\nexportPrinters.vbs\nLe script exportPrinters.vbs crée deux fichiers texte dans H:  PRINTERS. Ajustez votre chemin en conséquence.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Const ForWriting = 2","html":"<p>Const ForWriting = 2</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"Set objNetwork = CreateObject (&quot;Wscript.Network&quot;)","html":"<p>Set objNetwork = CreateObject (&quot;Wscript.Network&quot;)</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"strName = objNetwork.UserName\nstrDomain = objNetwork.UserDomain\nstrUser = strDomain &amp; &quot;&quot; &amp; strName","html":"<p>strName = objNetwork.UserName\nstrDomain = objNetwork.UserDomain\nstrUser = strDomain &amp; &quot;&quot; &amp; strName</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"&#39;strText = strUser &amp; vbCrLf","html":"<p>&#039;strText = strUser &amp; vbCrLf</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"strComputer = &quot;.&quot;","html":"<p>strComputer = &quot;.&quot;</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)","html":"<p>Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"&#39;Exporter une liste d’imprimantes réseau dans un fichier texte","html":"<p>&#039;Exporter une liste d’imprimantes réseau dans un fichier texte</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"Définir colPrinters = objWMIService.ExecQuery _\n    (&quot;Select * From Win32_Printer Where Local = FALSE&quot;)","html":"<p>Définir colPrinters = objWMIService.ExecQuery _\n    (&quot;Select * From Win32_Printer Where Local = FALSE&quot;)</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"Pour chaque objPrinter en colPrinters\n    strText = strText &amp; objPrinter.Name &amp; vbCrLf\nProchain","html":"<p>Pour chaque objPrinter en colPrinters\n    strText = strText &amp; objPrinter.Name &amp; vbCrLf\nProchain</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"Définir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)","html":"<p>Définir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"strFolder = &quot;H:  IMPRIMANTES&quot;","html":"<p>strFolder = &quot;H:  IMPRIMANTES&quot;</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"Si non objFSO.FolderExists (strFolder), alors\n    objFSO.CreateFolder (strFolder)\nFin si","html":"<p>Si non objFSO.FolderExists (strFolder), alors\n    objFSO.CreateFolder (strFolder)\nFin si</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"Définir objFile = objFSO.CreateTextFile _\n    (&quot;H:  PRINTERS  printers.txt&quot;, ForWriting, False)","html":"<p>Définir objFile = objFSO.CreateTextFile _\n    (&quot;H:  PRINTERS  printers.txt&quot;, ForWriting, False)</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"objFile.Write strText","html":"<p>objFile.Write strText</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"objFile.Close","html":"<p>objFile.Close</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"&#39;Exporter l&#39;imprimante par défaut séparément","html":"<p>&#039;Exporter l&#039;imprimante par défaut séparément</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"Définir colPrinters = objWMIService.ExecQuery _\n    (&quot;Select * From Win32_Printer Où Default = TRUE&quot;)","html":"<p>Définir colPrinters = objWMIService.ExecQuery _\n    (&quot;Select * From Win32_Printer Où Default = TRUE&quot;)</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"Pour chaque objPrinter en colPrinters\n    strText = objPrinter.Name\nProchain","html":"<p>Pour chaque objPrinter en colPrinters\n    strText = objPrinter.Name\nProchain</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"Définir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)","html":"<p>Définir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"Définir objFile = objFSO.CreateTextFile _\n    (&quot;H:  PRINTERS  default.txt&quot;, ForWriting, False)","html":"<p>Définir objFile = objFSO.CreateTextFile _\n    (&quot;H:  PRINTERS  default.txt&quot;, ForWriting, False)</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"objFile.Write strText","html":"<p>objFile.Write strText</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"objFile.Close","html":"<p>objFile.Close</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"importPrinters.vbs\nNotez que, si vos utilisateurs sous Windows 7 ne sont pas administrateurs, vous devrez exécuter le script en tant qu&#39;administrateur (il existe différentes manières) ou vous obtiendrez une invite UAC pour chaque installation d&#39;imprimante et le redémarrage de l&#39;impression. spouleur.\nEncore une fois, surveillez les chemins. Ceci est un script maison pour mon environnement spécifique.","html":"<p>importPrinters.vbs\nNotez que, si vos utilisateurs sous Windows 7 ne sont pas administrateurs, vous devrez exécuter le script en tant qu&#039;administrateur (il existe différentes manières) ou vous obtiendrez une invite UAC pour chaque installation d&#039;imprimante et le redémarrage de l&#039;impression. spouleur.\nEncore une fois, surveillez les chemins. Ceci est un script maison pour mon environnement spécifique.</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"Option explicite","html":"<p>Option explicite</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"&#39;Ce script doit être exécuté avec les privilèges administor\n&#39;S&#39;il n&#39;est pas exécuté avec des privilèges d&#39;administrateur, il lancera une invite UAC pour chaque imprimante lorsqu&#39;il parcourra la liste en boucle.\n&#39;Voici un article intéressant sur l&#39;utilisation de VBS en tant qu&#39;utilisateur différent:\n&#39;http://blogs.technet.com/b/heyscriptingguy/archive/2006/04/28/how-can-i-use-the-runas-command-torrun-a-script-under-alternate-user -credentials.aspx","html":"<p>&#039;Ce script doit être exécuté avec les privilèges administor\n&#039;S&#039;il n&#039;est pas exécuté avec des privilèges d&#039;administrateur, il lancera une invite UAC pour chaque imprimante lorsqu&#039;il parcourra la liste en boucle.\n&#039;Voici un article intéressant sur l&#039;utilisation de VBS en tant qu&#039;utilisateur différent:\n&#039;http://blogs.technet.com/b/heyscriptingguy/archive/2006/04/28/how-can-i-use-the-runas-command-torrun-a-script-under-alternate-user -credentials.aspx</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"&#39;Par exemple:\n&#39;runas / profile / user:[username][password] &quot;cscript.exe &quot; F:  Recherche de pilote d&#39;imprimante  Automation  printers-import.vbs &quot;&quot;","html":"<p>&#039;Par exemple:\n&#039;runas / profile / user:[username][password] &quot;cscript.exe &quot; F:  Recherche de pilote d&#039;imprimante  Automation  printers-import.vbs &quot;&quot;</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"Dim objNetwork, strComputer, strName, strFolder, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, WshShell\nCONST ForReading = 1","html":"<p>Dim objNetwork, strComputer, strName, strFolder, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, WshShell\nCONST ForReading = 1</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"&#39;Créer un objet réseau\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)","html":"<p>&#039;Créer un objet réseau\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"&#39;Obtenir le nom de la machine locale à partir de l&#39;objet réseau\nstrComputer = objNetwork.ComputerName","html":"<p>&#039;Obtenir le nom de la machine locale à partir de l&#039;objet réseau\nstrComputer = objNetwork.ComputerName</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"&#39;Obtenir le nom d&#39;utilisateur de l&#39;utilisateur à partir de l&#39;objet Réseau\nstrName = objNetwork.UserName","html":"<p>&#039;Obtenir le nom d&#039;utilisateur de l&#039;utilisateur à partir de l&#039;objet Réseau\nstrName = objNetwork.UserName</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"&#39;Créer un objet de système de fichiers\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)","html":"<p>&#039;Créer un objet de système de fichiers\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"&#39;Enregistrer le nom du fichier texte en tant que variable\n&#39;Notez que le script doit être exécuté en tant qu’administrateur et que l’appel du script avec\n&#39;Exécuter en tant que provoque l&#39;exécution du script comme s&#39;il se trouvait dans le même répertoire que &quot;% SystemRoot%  System32  WScript.exe&quot;\n&#39;D&#39;où la nécessité de transmettre le chemin d&#39;accès complet au fichier printers.txt\nstrTextFile = &quot;H:  PRINTERS  printers.txt&quot;","html":"<p>&#039;Enregistrer le nom du fichier texte en tant que variable\n&#039;Notez que le script doit être exécuté en tant qu’administrateur et que l’appel du script avec\n&#039;Exécuter en tant que provoque l&#039;exécution du script comme s&#039;il se trouvait dans le même répertoire que &quot;% SystemRoot%  System32  WScript.exe&quot;\n&#039;D&#039;où la nécessité de transmettre le chemin d&#039;accès complet au fichier printers.txt\nstrTextFile = &quot;H:  PRINTERS  printers.txt&quot;</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"&#39;Ouvrez le fichier texte - strData contient maintenant tout le fichier\nstrData = objFSO.OpenTextFile (strTextFile, ForReading) .ReadAll","html":"<p>&#039;Ouvrez le fichier texte - strData contient maintenant tout le fichier\nstrData = objFSO.OpenTextFile (strTextFile, ForReading) .ReadAll</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"&#39;Diviser le fichier texte en lignes\narrLines = Split (strData, vbCrLf)","html":"<p>&#039;Diviser le fichier texte en lignes\narrLines = Split (strData, vbCrLf)</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"&#39;Initialise le wshShell\nDéfinir WshShell = WScript.CreateObject (&quot;WSCript.shell&quot;)","html":"<p>&#039;Initialise le wshShell\nDéfinir WshShell = WScript.CreateObject (&quot;WSCript.shell&quot;)</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"&#39;Traverser les lignes\nPour chaque ligne en ligne","html":"<p>&#039;Traverser les lignes\nPour chaque ligne en ligne</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"    Si Len (strLine)&gt; 0 alors\n&#39;N&#39;exécute le processus que sur des lignes qui ne sont pas vides","html":"<p>    Si Len (strLine)&gt; 0 alors\n&#039;N&#039;exécute le processus que sur des lignes qui ne sont pas vides</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"&#39;strRunCmd = &quot;rundll32 printui.dll, PrintUIEntry / ga / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\nstrRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;/ ga / q / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;","html":"<p>&#039;strRunCmd = &quot;rundll32 printui.dll, PrintUIEntry / ga / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\nstrRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;/ ga / q / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;</p>"},{"id":"text-40","type":"text","heading":"","plain_text":"&#39;Renvoie la commande à exécuter\n&#39;WScript.Echo strRunCmd","html":"<p>&#039;Renvoie la commande à exécuter\n&#039;WScript.Echo strRunCmd</p>"},{"id":"text-41","type":"text","heading":"","plain_text":"&#39;Ceci lance printui.exe\n&#39;strRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;&quot;","html":"<p>&#039;Ceci lance printui.exe\n&#039;strRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;&quot;</p>"},{"id":"text-42","type":"text","heading":"","plain_text":"&#39;Exécutez la commande, affichez la fenêtre et attendez la fin de la commande avant de continuer.\nRésultat faible\nresult = WshShell.Run (strRunCmd, 1, True)","html":"<p>&#039;Exécutez la commande, affichez la fenêtre et attendez la fin de la commande avant de continuer.\nRésultat faible\nresult = WshShell.Run (strRunCmd, 1, True)</p>"},{"id":"text-43","type":"text","heading":"","plain_text":"&#39;WScript.Echo résultat","html":"<p>&#039;WScript.Echo résultat</p>"},{"id":"text-44","type":"text","heading":"","plain_text":"&#39;Écrivez dans le journal d&#39;application que l&#39;imprimante a été installée\nSi résultat = 0 alors\nWshShell.LogEvent 0, &quot;User:&quot; &amp; strName &amp; &quot;- Evénement: tentative d&#39;installation de l&#39;imprimante&quot; &amp; strLine &amp; &quot;avec [\" & strRunCmd & \"] (succès inconnu) &quot;\nFin si","html":"<p>&#039;Écrivez dans le journal d&#039;application que l&#039;imprimante a été installée\nSi résultat = 0 alors\nWshShell.LogEvent 0, &quot;User:&quot; &amp; strName &amp; &quot;- Evénement: tentative d&#039;installation de l&#039;imprimante&quot; &amp; strLine &amp; &quot;avec [&quot; &amp; strRunCmd &amp; &quot;] (succès inconnu) &quot;\nFin si</p>"},{"id":"text-45","type":"text","heading":"","plain_text":"&#39;WScript.Echo &quot;Imprimante traitée:&quot; &amp; strLine\n    Fin si","html":"<p>&#039;WScript.Echo &quot;Imprimante traitée:&quot; &amp; strLine\n    Fin si</p>"},{"id":"text-46","type":"text","heading":"","plain_text":"Prochain","html":"<p>Prochain</p>"},{"id":"text-47","type":"text","heading":"","plain_text":"&#39;Nettoyer\nDéfinir objFSO = Nothing","html":"<p>&#039;Nettoyer\nDéfinir objFSO = Nothing</p>"},{"id":"text-48","type":"text","heading":"","plain_text":"&#39;Attends 10 secondes\nWScript.Sleep 10000","html":"<p>&#039;Attends 10 secondes\nWScript.Sleep 10000</p>"},{"id":"text-49","type":"text","heading":"","plain_text":"&#39;Redémarrez le spouleur d&#39;impression\nRestartService &quot;Spouleur d&#39;impression&quot;, True","html":"<p>&#039;Redémarrez le spouleur d&#039;impression\nRestartService &quot;Spouleur d&#039;impression&quot;, True</p>"},{"id":"text-50","type":"text","heading":"","plain_text":"Sub RestartService (myService, blnQuiet)\n&#39;Ce sous-programme redémarre un service\n&#39; Arguments:\n&#39;myService utilise le nom d&#39;affichage du service\n&#39;blnQuiet si False, l&#39;état du service est affiché\n&#39;chaque seconde pendant la procédure de redémarrage\n&#39;\n&#39;Écrit par Rob van der Woude\n&#39;http://www.robvanderwoude.com","html":"<p>Sub RestartService (myService, blnQuiet)\n&#039;Ce sous-programme redémarre un service\n&#039; Arguments:\n&#039;myService utilise le nom d&#039;affichage du service\n&#039;blnQuiet si False, l&#039;état du service est affiché\n&#039;chaque seconde pendant la procédure de redémarrage\n&#039;\n&#039;Écrit par Rob van der Woude\n&#039;http://www.robvanderwoude.com</p>"},{"id":"text-51","type":"text","heading":"","plain_text":"    «Ménage standard\n    Dim colServices, colServicesTest, objService\n    Dim objServiceTest, objWMIService, strQuery, strTest","html":"<p>    «Ménage standard\n    Dim colServices, colServicesTest, objService\n    Dim objServiceTest, objWMIService, strQuery, strTest</p>"},{"id":"text-52","type":"text","heading":"","plain_text":"    &#39;Créer un objet WMI\n    Définissez objWMIService = GetObject (&quot;winmgmts: \\.  Root  CIMV2&quot;)","html":"<p>    &#039;Créer un objet WMI\n    Définissez objWMIService = GetObject (&quot;winmgmts: \\.  Root  CIMV2&quot;)</p>"},{"id":"text-53","type":"text","heading":"","plain_text":"    &#39;Interrogez les services pour &quot;notre&quot; service\n    strQuery = &quot;SELECT * FROM Win32_Service WHERE DisplayName = &#39;&quot; &amp; myService &amp; &quot;&#39;&quot;\n    Définissez colServices = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)","html":"<p>    &#039;Interrogez les services pour &quot;notre&quot; service\n    strQuery = &quot;SELECT * FROM Win32_Service WHERE DisplayName = &#039;&quot; &amp; myService &amp; &quot;&#039;&quot;\n    Définissez colServices = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)</p>"},{"id":"text-54","type":"text","heading":"","plain_text":"    &#39;Boucle à travers la &quot;collection&quot; de services rendus\n    Pour chaque objService dans colServices\n        &#39;Voir si nous devons dire à l&#39;utilisateur que nous allons arrêter le service\n        Si non blnQuiet alors\n            WScript.Echo &quot;Arrêt&quot; et monService\n        Fin si","html":"<p>    &#039;Boucle à travers la &quot;collection&quot; de services rendus\n    Pour chaque objService dans colServices\n        &#039;Voir si nous devons dire à l&#039;utilisateur que nous allons arrêter le service\n        Si non blnQuiet alors\n            WScript.Echo &quot;Arrêt&quot; et monService\n        Fin si</p>"},{"id":"text-55","type":"text","heading":"","plain_text":"        &#39;Arrêtez le service\n        objService.StopService","html":"<p>        &#039;Arrêtez le service\n        objService.StopService</p>"},{"id":"text-56","type":"text","heading":"","plain_text":"        &#39;Attendez que le service soit arrêté\n        Do Until strTest = &quot;Stopped&quot;\n            &#39;Créer un nouvel objet pour notre service; cette solution est nécessaire\n            &#39;sinon les informations d&#39;état du service ne sont pas correctement mises à jour\n            Définir colServicesTest = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)","html":"<p>        &#039;Attendez que le service soit arrêté\n        Do Until strTest = &quot;Stopped&quot;\n            &#039;Créer un nouvel objet pour notre service; cette solution est nécessaire\n            &#039;sinon les informations d&#039;état du service ne sont pas correctement mises à jour\n            Définir colServicesTest = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)</p>"},{"id":"text-57","type":"text","heading":"","plain_text":"            &#39;Boucle à travers la &quot;collection&quot; de services rendus\n            Pour chaque objServiceTest dans colServicesTest\n                &#39;Vérifier l&#39;état du service\n                strTest = objServiceTest.State\n                &#39;Voir si nous devons montrer les progrès\n                Si non blnQuiet alors\n                    WScript.Echo &quot;State:&quot; &amp; strTest\n                Fin si\n                &#39;Attendez 1 seconde\n                WScript.Sleep 1000\n            Prochain","html":"<p>            &#039;Boucle à travers la &quot;collection&quot; de services rendus\n            Pour chaque objServiceTest dans colServicesTest\n                &#039;Vérifier l&#039;état du service\n                strTest = objServiceTest.State\n                &#039;Voir si nous devons montrer les progrès\n                Si non blnQuiet alors\n                    WScript.Echo &quot;State:&quot; &amp; strTest\n                Fin si\n                &#039;Attendez 1 seconde\n                WScript.Sleep 1000\n            Prochain</p>"},{"id":"text-58","type":"text","heading":"","plain_text":"            &#39;Effacer l&#39;objet temporaire\n            Définir colServicesTest = Nothing\n        Boucle","html":"<p>            &#039;Effacer l&#039;objet temporaire\n            Définir colServicesTest = Nothing\n        Boucle</p>"},{"id":"text-59","type":"text","heading":"","plain_text":"        &#39;Voir si nous devons dire à l&#39;utilisateur que nous allons (re) démarrer le service\n        Si non blnQuiet alors\n            WScript.Echo &quot;Démarrage&quot; &amp; myService\n        Fin si","html":"<p>        &#039;Voir si nous devons dire à l&#039;utilisateur que nous allons (re) démarrer le service\n        Si non blnQuiet alors\n            WScript.Echo &quot;Démarrage&quot; &amp; myService\n        Fin si</p>"},{"id":"text-60","type":"text","heading":"","plain_text":"        &#39;Démarrer le service\n        objService.StartService","html":"<p>        &#039;Démarrer le service\n        objService.StartService</p>"},{"id":"text-61","type":"text","heading":"","plain_text":"        &#39;Attendez que le service soit à nouveau opérationnel\n        Do Until strTest = &quot;Running&quot;\n            &#39;Créer un nouvel objet pour notre service; cette solution est nécessaire\n            &#39;sinon les informations d&#39;état du service ne sont pas correctement mises à jour\n            Définir colServicesTest = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)","html":"<p>        &#039;Attendez que le service soit à nouveau opérationnel\n        Do Until strTest = &quot;Running&quot;\n            &#039;Créer un nouvel objet pour notre service; cette solution est nécessaire\n            &#039;sinon les informations d&#039;état du service ne sont pas correctement mises à jour\n            Définir colServicesTest = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)</p>"},{"id":"text-62","type":"text","heading":"","plain_text":"            &#39;Boucle à travers la &quot;collection&quot; de services rendus\n            Pour chaque objServiceTest dans colServicesTest\n                &#39;Vérifier l&#39;état du service\n                strTest = objServiceTest.State\n                &#39;Voir si nous devons montrer les progrès\n                Si non blnQuiet alors\n                    WScript.Echo &quot;State:&quot; &amp; strTest\n                Fin si\n                &#39;Attendez 1 seconde\n                WScript.Sleep 1000\n            Prochain","html":"<p>            &#039;Boucle à travers la &quot;collection&quot; de services rendus\n            Pour chaque objServiceTest dans colServicesTest\n                &#039;Vérifier l&#039;état du service\n                strTest = objServiceTest.State\n                &#039;Voir si nous devons montrer les progrès\n                Si non blnQuiet alors\n                    WScript.Echo &quot;State:&quot; &amp; strTest\n                Fin si\n                &#039;Attendez 1 seconde\n                WScript.Sleep 1000\n            Prochain</p>"},{"id":"text-63","type":"text","heading":"","plain_text":"            &#39;Effacer l&#39;objet temporaire\n            Définir colServicesTest = Nothing\n        Boucle\n    Prochain\nEnd Sub","html":"<p>            &#039;Effacer l&#039;objet temporaire\n            Définir colServicesTest = Nothing\n        Boucle\n    Prochain\nEnd Sub</p>"},{"id":"text-64","type":"text","heading":"","plain_text":"setDefaultPrinter.vbs\nEnfin, nous voulons définir l’imprimante par défaut. L&#39;imprimante devra déjà exister (évidemment). Si vous venez de lancer la commande printui.exe / ga pour installer l’imprimante, celle-ci ne sera disponible qu’au redémarrage du spouleur d’impression. Alors attendez une minute ou deux avant d&#39;exécuter le script.","html":"<p>setDefaultPrinter.vbs\nEnfin, nous voulons définir l’imprimante par défaut. L&#039;imprimante devra déjà exister (évidemment). Si vous venez de lancer la commande printui.exe / ga pour installer l’imprimante, celle-ci ne sera disponible qu’au redémarrage du spouleur d’impression. Alors attendez une minute ou deux avant d&#039;exécuter le script.</p>"},{"id":"text-65","type":"text","heading":"","plain_text":"Option explicite","html":"<p>Option explicite</p>"},{"id":"text-66","type":"text","heading":"","plain_text":"Dim objNetwork, strComputer, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, wshShell\nCONST ForReading = 1","html":"<p>Dim objNetwork, strComputer, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, wshShell\nCONST ForReading = 1</p>"},{"id":"text-67","type":"text","heading":"","plain_text":"&#39;Créer un objet réseau\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)","html":"<p>&#039;Créer un objet réseau\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)</p>"},{"id":"text-68","type":"text","heading":"","plain_text":"&#39;Obtenir le nom de la machine locale à partir de l&#39;objet réseau\nstrComputer = objNetwork.ComputerName","html":"<p>&#039;Obtenir le nom de la machine locale à partir de l&#039;objet réseau\nstrComputer = objNetwork.ComputerName</p>"},{"id":"text-69","type":"text","heading":"","plain_text":"&#39;Enregistrer le nom du fichier texte en tant que variable\nstrTextFile = &quot;H:  PRINTERS  default.txt&quot;","html":"<p>&#039;Enregistrer le nom du fichier texte en tant que variable\nstrTextFile = &quot;H:  PRINTERS  default.txt&quot;</p>"},{"id":"text-70","type":"text","heading":"","plain_text":"&#39;Créer un objet de système de fichiers\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)","html":"<p>&#039;Créer un objet de système de fichiers\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)</p>"},{"id":"text-71","type":"text","heading":"","plain_text":"&#39;Ouvrez le fichier texte - strData contient maintenant tout le fichier\nstrData = objFSO.OpenTextFile (strTextFile, ForReading) .ReadAll","html":"<p>&#039;Ouvrez le fichier texte - strData contient maintenant tout le fichier\nstrData = objFSO.OpenTextFile (strTextFile, ForReading) .ReadAll</p>"},{"id":"text-72","type":"text","heading":"","plain_text":"&#39;Diviser le fichier texte en lignes\narrLines = Split (strData, vbCrLf)","html":"<p>&#039;Diviser le fichier texte en lignes\narrLines = Split (strData, vbCrLf)</p>"},{"id":"text-73","type":"text","heading":"","plain_text":"&#39;Initialise le wshShell\nDéfinir wshShell = WScript.CreateObject (&quot;WSCript.shell&quot;)","html":"<p>&#039;Initialise le wshShell\nDéfinir wshShell = WScript.CreateObject (&quot;WSCript.shell&quot;)</p>"},{"id":"text-74","type":"text","heading":"","plain_text":"&#39;Traverser les lignes\nPour chaque ligne en ligne","html":"<p>&#039;Traverser les lignes\nPour chaque ligne en ligne</p>"},{"id":"text-75","type":"text","heading":"","plain_text":"    Si Len (strLine)&gt; 0 alors\n&#39;N&#39;exécute le processus que sur des lignes qui ne sont pas vides","html":"<p>    Si Len (strLine)&gt; 0 alors\n&#039;N&#039;exécute le processus que sur des lignes qui ne sont pas vides</p>"},{"id":"text-76","type":"text","heading":"","plain_text":"&#39;strRunCmd = &quot;rundll32 printui.dll, PrintUIEntry / y / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\nstrRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;/ y / c &quot; &amp; strComputer &amp; &quot;/ n&quot; &quot;&quot; &amp; strLine &amp; &quot;&quot; &quot;&quot;\n&#39;wscript.echo strRunCmd\nwshShell.Run strRunCmd","html":"<p>&#039;strRunCmd = &quot;rundll32 printui.dll, PrintUIEntry / y / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\nstrRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;/ y / c &quot; &amp; strComputer &amp; &quot;/ n&quot; &quot;&quot; &amp; strLine &amp; &quot;&quot; &quot;&quot;\n&#039;wscript.echo strRunCmd\nwshShell.Run strRunCmd</p>"},{"id":"text-77","type":"text","heading":"","plain_text":"&#39;wscript.echo &quot;Imprimante traitée:&quot; &amp; strLine\n    Fin si","html":"<p>&#039;wscript.echo &quot;Imprimante traitée:&quot; &amp; strLine\n    Fin si</p>"},{"id":"text-78","type":"text","heading":"","plain_text":"Prochain","html":"<p>Prochain</p>"},{"id":"text-79","type":"text","heading":"","plain_text":"&#39;Nettoyer\nDéfinir objFSO = Nothing","html":"<p>&#039;Nettoyer\nDéfinir objFSO = Nothing</p>"},{"id":"text-80","type":"text","heading":"","plain_text":"Au fur et à mesure de la migration, je reviendrai et peaufinerai les scripts. S&#39;il vous plaît n&#39;hésitez pas à laisser des commentaires et des suggestions.\nMerci à Rob van der Woude pour sa formidable page de contrôle des imprimantes en ligne de commande, ainsi que pour d’autres.","html":"<p>Au fur et à mesure de la migration, je reviendrai et peaufinerai les scripts. S&#039;il vous plaît n&#039;hésitez pas à laisser des commentaires et des suggestions.\nMerci à Rob van der Woude pour sa formidable page de contrôle des imprimantes en ligne de commande, ainsi que pour d’autres.</p>"},{"id":"text-81","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":"Dans le cadre d’une migration de Windows XP vers Windows 7, il m’a été demandé de trouver un moyen d’exporter les imprimantes réseau installées sur les ordinateurs XP afin qu’elles puissent être réinstallées sur les ordinateurs Windows 7. Nous ne voulions pas capturer les imprimantes locales (imprimantes installées via TCP / IP ou connectées via USB) ni les imprimantes virtuelles (telles que l&#39;imprimante virtuelle Adobe PDF ou Microsoft XPS Document Writer). Je pensais que la migration des imprimantes était moins attrayante, car les ordinateurs sources sont sous Windows XP 32 bits, alors que les ordinateurs de destination sont sous Windows 7 64 bits et que les pilotes sont donc différents.\nIl existe différentes manières d’exporter des files d’impression, des paramètres d’imprimante et des ports d’imprimante, mais j’ai décidé que tout ce que je voulais, c’était de déterminer le nom de chaque imprimante (par exemple: \\ SERVER  Printer) sur le XP. ordinateur, exportez-le dans un fichier texte sur un partage réseau, puis exécutez PrintUI.exe / ga sur la machine Windows 7 en parcourant les lignes du fichier texte en entrée.\n(Consultez l’assistant Migration d’imprimantes en lançant PrintBrmUI.exe ou la version en ligne de commande. % WINDIR%  System32  Spool  Tools  Printbrm /?, pour des alternatives à printui.exe.)\nDe plus, j’exporte également le nom de l’imprimante par défaut afin qu’il puisse être défini par programme dans le nouvel environnement.\nLe code est un travail en cours, mais j&#39;espère que cela vous aidera à démarrer.\nLes VBScripts\nVoici les scripts que j&#39;ai reconstitués.\nexportPrinters.vbs\nLe script exportPrinters.vbs crée deux fichiers texte dans H:  PRINTERS. Ajustez votre chemin en conséquence."},{"id":"text-2","heading":"Text","content":"Const ForWriting = 2"},{"id":"text-3","heading":"Text","content":"Set objNetwork = CreateObject (&quot;Wscript.Network&quot;)"},{"id":"text-4","heading":"Text","content":"strName = objNetwork.UserName\nstrDomain = objNetwork.UserDomain\nstrUser = strDomain &amp; &quot;&quot; &amp; strName"},{"id":"text-5","heading":"Text","content":"&#39;strText = strUser &amp; vbCrLf"},{"id":"text-6","heading":"Text","content":"strComputer = &quot;.&quot;"},{"id":"text-7","heading":"Text","content":"Définissez objWMIService = GetObject (&quot;winmgmts: \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)"},{"id":"text-8","heading":"Text","content":"&#39;Exporter une liste d’imprimantes réseau dans un fichier texte"},{"id":"text-9","heading":"Text","content":"Définir colPrinters = objWMIService.ExecQuery _\n    (&quot;Select * From Win32_Printer Where Local = FALSE&quot;)"},{"id":"text-10","heading":"Text","content":"Pour chaque objPrinter en colPrinters\n    strText = strText &amp; objPrinter.Name &amp; vbCrLf\nProchain"},{"id":"text-11","heading":"Text","content":"Définir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)"},{"id":"text-12","heading":"Text","content":"strFolder = &quot;H:  IMPRIMANTES&quot;"},{"id":"text-13","heading":"Text","content":"Si non objFSO.FolderExists (strFolder), alors\n    objFSO.CreateFolder (strFolder)\nFin si"},{"id":"text-14","heading":"Text","content":"Définir objFile = objFSO.CreateTextFile _\n    (&quot;H:  PRINTERS  printers.txt&quot;, ForWriting, False)"},{"id":"text-15","heading":"Text","content":"objFile.Write strText"},{"id":"text-16","heading":"Text","content":"objFile.Close"},{"id":"text-17","heading":"Text","content":"&#39;Exporter l&#39;imprimante par défaut séparément"},{"id":"text-18","heading":"Text","content":"Définir colPrinters = objWMIService.ExecQuery _\n    (&quot;Select * From Win32_Printer Où Default = TRUE&quot;)"},{"id":"text-19","heading":"Text","content":"Pour chaque objPrinter en colPrinters\n    strText = objPrinter.Name\nProchain"},{"id":"text-20","heading":"Text","content":"Définir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)"},{"id":"text-21","heading":"Text","content":"Définir objFile = objFSO.CreateTextFile _\n    (&quot;H:  PRINTERS  default.txt&quot;, ForWriting, False)"},{"id":"text-22","heading":"Text","content":"objFile.Write strText"},{"id":"text-23","heading":"Text","content":"objFile.Close"},{"id":"text-24","heading":"Text","content":"importPrinters.vbs\nNotez que, si vos utilisateurs sous Windows 7 ne sont pas administrateurs, vous devrez exécuter le script en tant qu&#39;administrateur (il existe différentes manières) ou vous obtiendrez une invite UAC pour chaque installation d&#39;imprimante et le redémarrage de l&#39;impression. spouleur.\nEncore une fois, surveillez les chemins. Ceci est un script maison pour mon environnement spécifique."},{"id":"text-25","heading":"Text","content":"Option explicite"},{"id":"text-26","heading":"Text","content":"&#39;Ce script doit être exécuté avec les privilèges administor\n&#39;S&#39;il n&#39;est pas exécuté avec des privilèges d&#39;administrateur, il lancera une invite UAC pour chaque imprimante lorsqu&#39;il parcourra la liste en boucle.\n&#39;Voici un article intéressant sur l&#39;utilisation de VBS en tant qu&#39;utilisateur différent:\n&#39;http://blogs.technet.com/b/heyscriptingguy/archive/2006/04/28/how-can-i-use-the-runas-command-torrun-a-script-under-alternate-user -credentials.aspx"},{"id":"text-27","heading":"Text","content":"&#39;Par exemple:\n&#39;runas / profile / user:[username][password] &quot;cscript.exe &quot; F:  Recherche de pilote d&#39;imprimante  Automation  printers-import.vbs &quot;&quot;"},{"id":"text-28","heading":"Text","content":"Dim objNetwork, strComputer, strName, strFolder, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, WshShell\nCONST ForReading = 1"},{"id":"text-29","heading":"Text","content":"&#39;Créer un objet réseau\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)"},{"id":"text-30","heading":"Text","content":"&#39;Obtenir le nom de la machine locale à partir de l&#39;objet réseau\nstrComputer = objNetwork.ComputerName"},{"id":"text-31","heading":"Text","content":"&#39;Obtenir le nom d&#39;utilisateur de l&#39;utilisateur à partir de l&#39;objet Réseau\nstrName = objNetwork.UserName"},{"id":"text-32","heading":"Text","content":"&#39;Créer un objet de système de fichiers\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)"},{"id":"text-33","heading":"Text","content":"&#39;Enregistrer le nom du fichier texte en tant que variable\n&#39;Notez que le script doit être exécuté en tant qu’administrateur et que l’appel du script avec\n&#39;Exécuter en tant que provoque l&#39;exécution du script comme s&#39;il se trouvait dans le même répertoire que &quot;% SystemRoot%  System32  WScript.exe&quot;\n&#39;D&#39;où la nécessité de transmettre le chemin d&#39;accès complet au fichier printers.txt\nstrTextFile = &quot;H:  PRINTERS  printers.txt&quot;"},{"id":"text-34","heading":"Text","content":"&#39;Ouvrez le fichier texte - strData contient maintenant tout le fichier\nstrData = objFSO.OpenTextFile (strTextFile, ForReading) .ReadAll"},{"id":"text-35","heading":"Text","content":"&#39;Diviser le fichier texte en lignes\narrLines = Split (strData, vbCrLf)"},{"id":"text-36","heading":"Text","content":"&#39;Initialise le wshShell\nDéfinir WshShell = WScript.CreateObject (&quot;WSCript.shell&quot;)"},{"id":"text-37","heading":"Text","content":"&#39;Traverser les lignes\nPour chaque ligne en ligne"},{"id":"text-38","heading":"Text","content":"    Si Len (strLine)&gt; 0 alors\n&#39;N&#39;exécute le processus que sur des lignes qui ne sont pas vides"},{"id":"text-39","heading":"Text","content":"&#39;strRunCmd = &quot;rundll32 printui.dll, PrintUIEntry / ga / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\nstrRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;/ ga / q / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;"},{"id":"text-40","heading":"Text","content":"&#39;Renvoie la commande à exécuter\n&#39;WScript.Echo strRunCmd"},{"id":"text-41","heading":"Text","content":"&#39;Ceci lance printui.exe\n&#39;strRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;&quot;"},{"id":"text-42","heading":"Text","content":"&#39;Exécutez la commande, affichez la fenêtre et attendez la fin de la commande avant de continuer.\nRésultat faible\nresult = WshShell.Run (strRunCmd, 1, True)"},{"id":"text-43","heading":"Text","content":"&#39;WScript.Echo résultat"},{"id":"text-44","heading":"Text","content":"&#39;Écrivez dans le journal d&#39;application que l&#39;imprimante a été installée\nSi résultat = 0 alors\nWshShell.LogEvent 0, &quot;User:&quot; &amp; strName &amp; &quot;- Evénement: tentative d&#39;installation de l&#39;imprimante&quot; &amp; strLine &amp; &quot;avec [\" & strRunCmd & \"] (succès inconnu) &quot;\nFin si"},{"id":"text-45","heading":"Text","content":"&#39;WScript.Echo &quot;Imprimante traitée:&quot; &amp; strLine\n    Fin si"},{"id":"text-46","heading":"Text","content":"Prochain"},{"id":"text-47","heading":"Text","content":"&#39;Nettoyer\nDéfinir objFSO = Nothing"},{"id":"text-48","heading":"Text","content":"&#39;Attends 10 secondes\nWScript.Sleep 10000"},{"id":"text-49","heading":"Text","content":"&#39;Redémarrez le spouleur d&#39;impression\nRestartService &quot;Spouleur d&#39;impression&quot;, True"},{"id":"text-50","heading":"Text","content":"Sub RestartService (myService, blnQuiet)\n&#39;Ce sous-programme redémarre un service\n&#39; Arguments:\n&#39;myService utilise le nom d&#39;affichage du service\n&#39;blnQuiet si False, l&#39;état du service est affiché\n&#39;chaque seconde pendant la procédure de redémarrage\n&#39;\n&#39;Écrit par Rob van der Woude\n&#39;http://www.robvanderwoude.com"},{"id":"text-51","heading":"Text","content":"    «Ménage standard\n    Dim colServices, colServicesTest, objService\n    Dim objServiceTest, objWMIService, strQuery, strTest"},{"id":"text-52","heading":"Text","content":"    &#39;Créer un objet WMI\n    Définissez objWMIService = GetObject (&quot;winmgmts: \\.  Root  CIMV2&quot;)"},{"id":"text-53","heading":"Text","content":"    &#39;Interrogez les services pour &quot;notre&quot; service\n    strQuery = &quot;SELECT * FROM Win32_Service WHERE DisplayName = &#39;&quot; &amp; myService &amp; &quot;&#39;&quot;\n    Définissez colServices = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)"},{"id":"text-54","heading":"Text","content":"    &#39;Boucle à travers la &quot;collection&quot; de services rendus\n    Pour chaque objService dans colServices\n        &#39;Voir si nous devons dire à l&#39;utilisateur que nous allons arrêter le service\n        Si non blnQuiet alors\n            WScript.Echo &quot;Arrêt&quot; et monService\n        Fin si"},{"id":"text-55","heading":"Text","content":"        &#39;Arrêtez le service\n        objService.StopService"},{"id":"text-56","heading":"Text","content":"        &#39;Attendez que le service soit arrêté\n        Do Until strTest = &quot;Stopped&quot;\n            &#39;Créer un nouvel objet pour notre service; cette solution est nécessaire\n            &#39;sinon les informations d&#39;état du service ne sont pas correctement mises à jour\n            Définir colServicesTest = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)"},{"id":"text-57","heading":"Text","content":"            &#39;Boucle à travers la &quot;collection&quot; de services rendus\n            Pour chaque objServiceTest dans colServicesTest\n                &#39;Vérifier l&#39;état du service\n                strTest = objServiceTest.State\n                &#39;Voir si nous devons montrer les progrès\n                Si non blnQuiet alors\n                    WScript.Echo &quot;State:&quot; &amp; strTest\n                Fin si\n                &#39;Attendez 1 seconde\n                WScript.Sleep 1000\n            Prochain"},{"id":"text-58","heading":"Text","content":"            &#39;Effacer l&#39;objet temporaire\n            Définir colServicesTest = Nothing\n        Boucle"},{"id":"text-59","heading":"Text","content":"        &#39;Voir si nous devons dire à l&#39;utilisateur que nous allons (re) démarrer le service\n        Si non blnQuiet alors\n            WScript.Echo &quot;Démarrage&quot; &amp; myService\n        Fin si"},{"id":"text-60","heading":"Text","content":"        &#39;Démarrer le service\n        objService.StartService"},{"id":"text-61","heading":"Text","content":"        &#39;Attendez que le service soit à nouveau opérationnel\n        Do Until strTest = &quot;Running&quot;\n            &#39;Créer un nouvel objet pour notre service; cette solution est nécessaire\n            &#39;sinon les informations d&#39;état du service ne sont pas correctement mises à jour\n            Définir colServicesTest = objWMIService.ExecQuery (strQuery, &quot;WQL&quot;, 48)"},{"id":"text-62","heading":"Text","content":"            &#39;Boucle à travers la &quot;collection&quot; de services rendus\n            Pour chaque objServiceTest dans colServicesTest\n                &#39;Vérifier l&#39;état du service\n                strTest = objServiceTest.State\n                &#39;Voir si nous devons montrer les progrès\n                Si non blnQuiet alors\n                    WScript.Echo &quot;State:&quot; &amp; strTest\n                Fin si\n                &#39;Attendez 1 seconde\n                WScript.Sleep 1000\n            Prochain"},{"id":"text-63","heading":"Text","content":"            &#39;Effacer l&#39;objet temporaire\n            Définir colServicesTest = Nothing\n        Boucle\n    Prochain\nEnd Sub"},{"id":"text-64","heading":"Text","content":"setDefaultPrinter.vbs\nEnfin, nous voulons définir l’imprimante par défaut. L&#39;imprimante devra déjà exister (évidemment). Si vous venez de lancer la commande printui.exe / ga pour installer l’imprimante, celle-ci ne sera disponible qu’au redémarrage du spouleur d’impression. Alors attendez une minute ou deux avant d&#39;exécuter le script."},{"id":"text-65","heading":"Text","content":"Option explicite"},{"id":"text-66","heading":"Text","content":"Dim objNetwork, strComputer, objFSO, strTextFile, strData, strLine, arrLines, strRunCmd, wshShell\nCONST ForReading = 1"},{"id":"text-67","heading":"Text","content":"&#39;Créer un objet réseau\nSet objNetwork = CreateObject (&quot;Wscript.Network&quot;)"},{"id":"text-68","heading":"Text","content":"&#39;Obtenir le nom de la machine locale à partir de l&#39;objet réseau\nstrComputer = objNetwork.ComputerName"},{"id":"text-69","heading":"Text","content":"&#39;Enregistrer le nom du fichier texte en tant que variable\nstrTextFile = &quot;H:  PRINTERS  default.txt&quot;"},{"id":"text-70","heading":"Text","content":"&#39;Créer un objet de système de fichiers\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)"},{"id":"text-71","heading":"Text","content":"&#39;Ouvrez le fichier texte - strData contient maintenant tout le fichier\nstrData = objFSO.OpenTextFile (strTextFile, ForReading) .ReadAll"},{"id":"text-72","heading":"Text","content":"&#39;Diviser le fichier texte en lignes\narrLines = Split (strData, vbCrLf)"},{"id":"text-73","heading":"Text","content":"&#39;Initialise le wshShell\nDéfinir wshShell = WScript.CreateObject (&quot;WSCript.shell&quot;)"},{"id":"text-74","heading":"Text","content":"&#39;Traverser les lignes\nPour chaque ligne en ligne"},{"id":"text-75","heading":"Text","content":"    Si Len (strLine)&gt; 0 alors\n&#39;N&#39;exécute le processus que sur des lignes qui ne sont pas vides"},{"id":"text-76","heading":"Text","content":"&#39;strRunCmd = &quot;rundll32 printui.dll, PrintUIEntry / y / c \\&quot; &amp; strComputer &amp; &quot;/ n&quot; &amp; strLine &amp; &quot;&quot;\nstrRunCmd = &quot;&quot; &quot;printui.exe&quot; &quot;/ y / c &quot; &amp; strComputer &amp; &quot;/ n&quot; &quot;&quot; &amp; strLine &amp; &quot;&quot; &quot;&quot;\n&#39;wscript.echo strRunCmd\nwshShell.Run strRunCmd"},{"id":"text-77","heading":"Text","content":"&#39;wscript.echo &quot;Imprimante traitée:&quot; &amp; strLine\n    Fin si"},{"id":"text-78","heading":"Text","content":"Prochain"},{"id":"text-79","heading":"Text","content":"&#39;Nettoyer\nDéfinir objFSO = Nothing"},{"id":"text-80","heading":"Text","content":"Au fur et à mesure de la migration, je reviendrai et peaufinerai les scripts. S&#39;il vous plaît n&#39;hésitez pas à laisser des commentaires et des suggestions.\nMerci à Rob van der Woude pour sa formidable page de contrôle des imprimantes en ligne de commande, ainsi que pour d’autres."},{"id":"text-81","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":""},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/09/03/migration-des-imprimantes-reseau-avec-vbscript-bien-choisir-son-serveur-d-impression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/09/03/migration-des-imprimantes-reseau-avec-vbscript-bien-choisir-son-serveur-d-impression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/09/03/migration-des-imprimantes-reseau-avec-vbscript-bien-choisir-son-serveur-d-impression/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}