{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/11/08/migration-des-serveurs-dimpression-et-des-mappages-dimpression-utilisateur-serveur-dimpression/","llm_html_url":"https://tutos-gameserver.fr/2019/11/08/migration-des-serveurs-dimpression-et-des-mappages-dimpression-utilisateur-serveur-dimpression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/11/08/migration-des-serveurs-dimpression-et-des-mappages-dimpression-utilisateur-serveur-dimpression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Migration des serveurs d&#39;impression et des mappages d&#39;impression utilisateur\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":"2019-11-08T15:56:31+00:00","modified_at":"2019-11-08T15:56:31+00:00","word_count":2165,"reading_time_seconds":650,"summary":"Comment j&#39;ai migré plus d&#39;un millier d&#39;utilisateurs vers nos nouveaux serveurs d&#39;impression… Sommaire Ce didacticiel complet, étape par étape, explique comment migrer vers un nouveau serveur d&#39;impression sans interruption de service. Cette procédure de migration fournit une intégration transparente du nouveau système tout en éliminant progressivement l&#39;ancien serveur. Cette migration est réalisée à l&#39;aide de [&hellip;]","summary_points":["Comment j&#39;ai migré plus d&#39;un millier d&#39;utilisateurs vers nos nouveaux serveurs d&#39;impression…\nSommaire\nCe didacticiel complet, étape par étape, explique comment migrer vers un nouveau serveur d&#39;impression sans interruption de service.","Cette procédure de migration fournit une intégration transparente du nouveau système tout en éliminant progressivement l&#39;ancien serveur.","Cette migration est réalisée à l&#39;aide de la console de gestion d&#39;impression, des outils de migration d&#39;imprimante et des scripts.","S&#39;applique à: Serveurs d&#39;impression Microsoft Windows (2003/2008 / 2008r2 / 2012, bien que de nouvelles méthodes powershell soient disponibles dans Server 2012)\nMigration d&#39;imprimante\nCe guide suppose que vous avez créé un nouveau serveur d&#39;impression et que toutes les nouvelles imprimantes sont créées et partagées à partir du nouveau serveur."],"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":"9d370008ca63dfcf24dfca9d89730096","plain_text":"Comment j&#39;ai migré plus d&#39;un millier d&#39;utilisateurs vers nos nouveaux serveurs d&#39;impression…\nSommaire\nCe didacticiel complet, étape par étape, explique comment migrer vers un nouveau serveur d&#39;impression sans interruption de service. Cette procédure de migration fournit une intégration transparente du nouveau système tout en éliminant progressivement l&#39;ancien serveur. Cette migration est réalisée à l&#39;aide de la console de gestion d&#39;impression, des outils de migration d&#39;imprimante et des scripts.\nS&#39;applique à: Serveurs d&#39;impression Microsoft Windows (2003/2008 / 2008r2 / 2012, bien que de nouvelles méthodes powershell soient disponibles dans Server 2012)\nMigration d&#39;imprimante\nCe guide suppose que vous avez créé un nouveau serveur d&#39;impression et que toutes les nouvelles imprimantes sont créées et partagées à partir du nouveau serveur. Le guide suivant explique la suppression progressive de l&#39;ancien serveur d&#39;impression.\nExporter des imprimantes\nPour cette migration, nous allons utiliser la console MMC de gestion d&#39;impression figurant dans vos outils d&#39;administration.\n* Vous pouvez également utiliser l&#39;outil de ligne de commande printbrm.exe pour exporter / importer des imprimantes si vous rencontrez des problèmes avec la MMC de gestion de l&#39;impression. Si vous rencontrez des problèmes avec les deux, vous devrez scripter l&#39;exportation / importation des ports et des partages d&#39;imprimante. Malheureusement, tous les pilotes devront être installés manuellement sans utiliser les outils de migration, à moins que vous ne puissiez trouver un script sophistiqué capable de gérer cette tâche.\n1. Ouvrez la MMC Gestion de l’impression:\n\n2. Cliquez avec le bouton droit sur Serveurs d&#39;impression et ajoutez vos serveurs d&#39;impression:\n\n3. Cliquez avec le bouton droit sur l’ancien serveur d’impression et choisissez Exporter les imprimantes dans un fichier:\n\nImporter des imprimantes\n1. Cliquez avec le bouton droit sur le nouveau serveur d’imprimante et choisissez «Importer des imprimantes depuis un fichier…».\n\nVérifier les configurations correspondantes\nAvant de configurer les scripts pour remapper les imprimantes utilisateur, vous devez vérifier que tous les partages d&#39;impression, pilotes (x86 / x64) et ports existent et sont configurés correctement sur le nouveau serveur.\nCela peut être fait assez facilement en exportant des listes à l&#39;aide de la MMC Gestion de l&#39;impression.\nSous chaque serveur d&#39;impression, cliquez simplement sur Pilotes, Formulaires, Ports ou Imprimantes, puis cliquez sur Exporter la liste, puis comparez la liste de l&#39;ancien serveur à la liste du nouveau serveur.\n\nAjoutez / corrigez manuellement les pilotes, formulaires, ports ou imprimantes manquants.\n* Si les utilisateurs ne disposent pas des autorisations nécessaires pour installer les pilotes d&#39;impression, les pilotes de l&#39;ancien serveur et ceux du nouveau serveur doivent être identiques (numéro de version, etc.).\nRe-mapper les imprimantes utilisateur\nNous utiliserons ici les scripts d’ouverture de session pour remapper les imprimantes des utilisateurs tout en préservant leur imprimante par défaut sans qu’ils ne le sachent jamais. Si vous n’avez pas exporté les listes des deux serveurs d’imprimante de la dernière section, faites-le maintenant. Nous allons utiliser ces listes pour former un nouveau fichier texte pour notre script.\nPréparer des listes\nVous devrez créer un fichier texte (.txt) pour le script à référencer. Ce fichier texte doit être placé sur un partage réseau auquel tous les utilisateurs ont accès, ainsi que le script expliqué dans la section suivante. J&#39;ai nommé mon fichier texte «qchanges.txt». Le fichier texte doit être formaté avec l&#39;ancienne URL de partage d&#39;impression à gauche et la nouvelle URL de partage d&#39;impression à droite, et séparé par un point-virgule avec chaque élément de la nouvelle ligne, comme ceci:\n\r\n\r\n\r\n\r\n\\ oldserver  printer1; \\ newserver  printer1\r\n\\ oldserver  printer2; \\ newserver  printer2\r\n\\ oldserver  hp-thirdfloor; \\ serveur de nouvelles  hp-thirdfloor\r\n\\ oldserver  ancien-nom-imprimante; \\ serveur de nouvelles  nouveau-nom-imprimante\r\n\nVous devriez voir le modèle ici. Le script s’exécutera lorsque l’utilisateur se connectera et recherchera l’ensemble du fichier texte pour voir si l’une des imprimantes actuellement mappées de l’utilisateur correspond à l’un des noms de partage restants du point-virgule. Si le script trouve une correspondance, il déconnectera cette imprimante et mappera le partage d&#39;impression à droite du point-virgule. Le script préservera également l’imprimante par défaut de l’utilisateur dans le cas où plusieurs imprimantes sont mappées.\nPréparer des scripts\nJ&#39;ai utilisé une combinaison de scripts pour compléter notre migration. Si vous êtes un gourou des scripts, n&#39;hésitez pas à les modifier et à les combiner, mais je n&#39;ai pas eu envie de prendre le temps de le faire. De plus, je ne connais pas très bien vbScipt… J&#39;ai appris PowerShell comme premier langage de script.\n* Assurez-vous de faire attention à la façon dont ces scripts se référencent. Vérifiez les variables de script.* Vérifier les autorisations pour accéder à l&#39;emplacement du script pour tous les utilisateurs* Vérifiez les autorisations des utilisateurs pour mapper les imprimantes ou installer de nouveaux pilotes s&#39;ils diffèrent de l&#39;ancien serveur.* Ce script est un peu lent, donc laissez-lui le temps de courir avant de conclure qu’il n’a rien fait.\nCe vbScript fait le travail et j&#39;ai nommé le mien “qchanges.vbs”. Ce script accepte plusieurs arguments, mais dans mon cas, je n&#39;ai utilisé que deux arguments, l&#39;un pour l&#39;emplacement du fichier texte et l&#39;autre pour masquer les actions de l&#39;utilisateur (nologo). C&#39;est la commande que j&#39;ai utilisée: “qchanges.vbs qchanges.txt // nologo”\nScript VB:\n\r\n\r\n\r\n\r\nEn cas d&#39;erreur, reprise suivante\r\nConst VERBOSE = &quot;N&quot; &#39;Progression de l&#39;affichage (Y ou N)\r\nConst Title = &quot;Print Connection Migrator&quot;\r\nConst ForReading = 1\r\n\r\nDim strDefaultPrinter\r\nTableau des noms d&#39;imprimantes de Dim InstalledPrinters\r\nDim Textfile &#39;Fichier avec les noms Q d&#39;impression\r\nDim OldPrintQueues () &#39;Tableau dynamique pour stocker les anciens noms de file d&#39;attente d&#39;impression, à partir du fichier texte\r\nDim NewPrintQueues () &#39;Tableau dynamique pour stocker les nouveaux noms de file d&#39;attente d&#39;impression, à partir du fichier texte\r\nDim fso &#39;objet système de fichiers\r\nDim objTextFile &#39;Objet de fichier texte\r\nDim strNextLine &#39;Ligne du fichier texte\r\nDim i\r\nDim WshNetwork\r\n\r\nDéfinir WshNetwork = CreateObject (&quot;WScript.Network&quot;)\r\n\r\n&#39;1. - Récupère les arguments de la ligne de commande ###\r\nSET Parameters = Wscript.arguments\r\n\r\n&#39;Si aucun argument de ligne de commande fourni, quittez\r\nSi Parameters.Count = 0 alors\r\nWScript.Quit (1)\r\nAutre\r\nTextfile = Parameters.item (0)\r\nFin si\r\n\r\nSi Textfile = &quot;&quot; ou Not Right (TextFile, 4) = &quot;.txt&quot; ou Not FileExist (Textfile), alors\r\nError = MsgBox (&quot;Aucun fichier d&#39;entrée valide fourni. Arrêt du script maintenant.&quot;, Vbokonly, Title)\r\nWScript.Quit (1)\r\nFin si\r\n\r\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Lecture du fichier d&#39;entrée&quot;\r\n&#39;2. Lisez le fichier texte et importez-le dans un tableau ###\r\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)\r\nDéfinir objTextFile = objFSO.OpenTextFile (TextFile, ForReading)\r\ni = -1\r\n\r\nBien que non objTextFile.AtEndOfStream\r\ni = i + 1\r\nRedim Preserve OldPrintQueues (i)\r\nReDim Conserver NewPrintQueues (i)\r\nstrLine = objTextFile.Readline\r\n&#39;N&#39;importez pas les lignes de commentaire\r\nSi laissé (strLine, 2) = &quot;\\&quot; alors\r\nOldPrintQueues (i) = Left (strLine, InStr (strline, &quot;;&quot;) - 1)\r\nSi VERBOSE = &quot;Y&quot; alors Wscript.Echo &quot;ancien Q est:&quot; &amp; OldPrintQueues (i)\r\nNewPrintQueues (i) = Mid (strline, InStr (strline, &quot;;&quot;) + 1, Len (strline))\r\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;nouveau Q est:&quot; &amp; NewPrintQueues (i)\r\nFin si\r\nWend\r\n\r\nobjTextFile.Close\r\n\r\n&#39;3. Enregistrez le nom de l&#39;imprimante par défaut ###\r\n\r\nstrDefaultPrinter = DefaultPrinter\r\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Le défaut est:&quot; &amp; strDefaultPrinter\r\n\r\n&#39;4. Requête WMI pour les connexions d&#39;imprimante actuelles ###\r\n\r\nstrComputer = &quot;.&quot;\r\nDéfinissez objWMIService = GetObject (&quot;winmgmts:&quot; _\r\n&amp; &quot;impersonationLevel = emprunt d&#39;identité! \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\r\nDéfinissez colInstalledPrinters = objWMIService.ExecQuery _\r\n(&quot;Select * from Win32_Printer&quot;)\r\n\r\n&#39;5. Boucle principale dans la collection d’imprimantes ###\r\n\r\nPour chaque objPrinter dans colInstalledPrinters\r\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Connexion actuelle:&quot; &amp; objPrinter.Name\r\nSi laissé (objPrinter.Name, 2) = &quot;\\&quot; Then &#39;ne fonctionne que sur les imprimantes réseau\r\n&#39;Recherchez l&#39;imprimante correspondante et créez-la\r\ni = 0 &#39;définit l&#39;indice au début du tableau (prépare la boucle)\r\nFaire jusqu&#39;à i&gt; UBound (OldPrintQueues)\r\nSi UCase (objPrinter.Name) = UCase (OldPrintQueues (i)), alors\r\n&#39;Créer la connexion à la nouvelle imprimante\r\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Nouvelle connexion:&quot; &amp; NewPrintQueues (i)\r\nWshNetwork.AddWindowsPrinterConnection NewPrintQueues (i)\r\nSi UCase (strDefaultPrinter) = UCase (objPrinter.Name) Alors &#39;Ceci est l&#39;imprimante par défaut\r\n&#39;Définir l&#39;imprimante par défaut\r\nWshNetwork.SetDefaultPrinter NewPrintQueues (i)\r\nFin si\r\n&#39;Supprimer la connexion de l&#39;imprimante\r\nWshNetwork.RemovePrinterConnection objPrinter.Name\r\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Suppression:&quot; &amp; objPrinter.Name\r\nFin si\r\ni = i + 1\r\nBoucle\r\nFin si &#39;Fin de vérification pour les imprimantes réseau\r\nNext &#39;Fin de la boucle sur les imprimantes de cet utilisateur\r\n\r\nDéfinir WshNetwork = Nothing\r\n\r\n&#39;-----------------\r\n&#39; Les fonctions\r\n&#39;-----------------\r\n\r\n&#39;Renvoyer l&#39;imprimante par défaut\r\nFonction DefaultPrinter\r\nDim strComputer\r\nRésultat faible\r\n\r\nstrComputer = &quot;.&quot;\r\nRésultat = &quot;&quot;\r\n\r\nDéfinissez objWMIService = GetObject (&quot;winmgmts:&quot; _\r\n&amp; &quot;impersonationLevel = emprunt d&#39;identité! \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\r\nDéfinissez colInstalledPrinters = objWMIService.ExecQuery _\r\n(&quot;Select * from Win32_Printer&quot;)\r\nPour chaque objPrinter dans colInstalledPrinters\r\nSi objPrinter.Default = True alors\r\nRésultat = nom_imprimante_journal\r\nFin si\r\nProchain\r\nDefaultPrinter = Résultat\r\nFonction de fin\r\n\r\n&#39;-----------------\r\n\r\n&#39;Est-ce que le fichier existe (Booléen)\r\nFonction FileExist (FileFullPath)\r\nDim Fso\r\nSet Fso = CreateObject (&quot;Scripting.FileSystemObject&quot;)\r\nSi (Fso.FileExists (FileFullPath)) alors\r\nFileExist = True\r\nAutre\r\nFileExist = False\r\nFin si\r\nFonction de fin\r\n\r\n&#39;Basé sur un scénario de: Sébastien Pittet (pittet.org)\r\n&#39;discuté à http://cwashington.netreach.net/\r\n\r\n&#39;Creative Commons Attribution-ShareAlike 2.5\r\n&#39;http://creativecommons.org/licenses/by-sa/2.5/\r\n\r\n&#39;Simon Sheppard septembre 2005\r\n&#39;http://ss64.com/vb/syntax-qchange.html\r\n\nScripts de test\n1. Testez d&#39;abord ce script sur votre ordinateur local.\n2. Testez ce script sur un petit groupe en créant et en exploitant un groupe Active Directory via un script de connexion ou un objet de stratégie de groupe.\n* Assurez-vous que les imprimantes ont été remappées correctement et que l&#39;imprimante par défaut a été préservée.\nImplémenter des scripts\nJ&#39;ai choisi de créer un groupe Active Directory appelé «User-Printer-Migration» et le script d&#39;ouverture de session ne l&#39;exécutait que sur les utilisateurs de ce groupe. J&#39;ai ensuite ajouté les différents groupes d&#39;organisation à différents moments pour déployer la migration par étapes en cas de problème.\nNous avons eu quelques problèmes, mais j’estimerais que le succès total était d’environ 98%. Un utilisateur s&#39;est retrouvé avec toutes les imprimantes de la liste et sur quelques ordinateurs, il n&#39;a rien fait.\nJe considère ces quelques occurrences comme négligeables dans l’image globale en raison du temps gagné.\nComplet et nettoyage\nUne fois que vous avez étendu cela à l&#39;ensemble de votre réseau, il est temps de nettoyer Active Directory et de vous débarrasser définitivement de votre ancien serveur d&#39;impression.\nSurveiller l&#39;utilisation de l&#39;ancien serveur\nRetournez voir l&#39;ancien serveur d&#39;impression. Vous pouvez utiliser le journal des événements sur l&#39;ancien serveur pour voir quand il a reçu les derniers travaux d&#39;impression et sur quelle imprimante. J&#39;ai utilisé PowerShell pour y parvenir.\nVous pouvez activer «Enregistrer les informations du spouleur» dans les «Propriétés du serveur» du spouleur d’impression. Vous obtiendrez une entrée du journal des événements système, source «Imprimer», tapez «Information», ID d’événement 10, à la fin du travail d’impression. Cet événement contiendra des détails sur l&#39;utilisateur, l&#39;imprimante, la taille du travail et le nombre de pages imprimées.\nVoici un script PowerShell que j&#39;ai utilisé pour cela:\n\r\n\r\n\r\n\r\n$ server = read-host &quot;De quel serveur d&#39;impression souhaitez-vous collecter les événements d&#39;impression?&quot;\r\n$ CSVsave = read-host &quot;Où souhaitez-vous enregistrer la sortie CSV? (Ex d:  prntsrv.csv)&quot;\r\n\r\n$ StartDate = get-date 20/03/14\r\n$ EndDate = get-date 04/01/14\r\n\r\nGet-EventLog -LogName Système -Ordinateur $ serveur -Source print -Après $ StartDate -Before $ EndDate | où $ _. EventID -eq 10 | sélectionnez Source, EventID, MachineName, UserName, Message | export-csv $ CSVsave\r\n\nRe-mappez tous les utilisateurs qui utilisent encore l’ancien serveur et lorsque les tâches ne sont plus envoyées à l’ancien serveur d’impression, il est temps de le mettre hors service.\nMise hors service de l&#39;ancien serveur d&#39;impression\nJe recommande d’arrêter temporairement l’ancien serveur d’impression / serveurs pour voir s’il ya des problèmes. S&#39;il n&#39;y a pas de plaintes, il est temps de:\n&#8211; Arrêtez l&#39;ancien serveur&#8211; Supprimer toutes les entrées AD faisant référence à l&#39;ancien serveur&#8211; Supprimez l&#39;ancien serveur de tout autre système tel que SCCM ou SolarWinds\n\nFélicitations!!\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["Comment j&#39;ai migré plus d&#39;un millier d&#39;utilisateurs vers nos nouveaux serveurs d&#39;impression…\nSommaire\nCe didacticiel complet, étape par étape, explique comment migrer vers un nouveau serveur d&#39;impression sans interruption de service. Cette procédure de migration fournit une intégration transparente du nouveau système tout en éliminant progressivement l&#39;ancien serveur. Cette migration est réalisée à l&#39;aide de la console de gestion d&#39;impression, des outils de migration d&#39;imprimante et des scripts.\nS&#39;applique à: Serveurs d&#39;impression Microsoft Windows (2003/2008 / 2008r2 / 2012, bien que de nouvelles méthodes powershell soient disponibles dans Server 2012)\nMigration d&#39;imprimante\nCe guide suppose que vous avez créé un nouveau serveur d&#39;impression et que toutes les nouvelles imprimantes sont créées et partagées à partir du nouveau serveur. Le guide suivant explique la suppression progressive de l&#39;ancien serveur d&#39;impression.\nExporter des imprimantes\nPour cette migration, nous allons utiliser la console MMC de gestion d&#39;impression figurant dans vos outils d&#39;administration.\n* Vous pouvez également utiliser l&#39;outil de ligne de commande printbrm.exe pour exporter / importer des imprimantes si vous rencontrez des problèmes avec la MMC de gestion de l&#39;impression. Si vous rencontrez des problèmes avec les deux, vous devrez scripter l&#39;exportation / importation des ports et des partages d&#39;imprimante. Malheureusement, tous les pilotes devront être installés manuellement sans utiliser les outils de migration, à moins que vous ne puissiez trouver un script sophistiqué capable de gérer cette tâche.\n1. Ouvrez la MMC Gestion de l’impression:","2. Cliquez avec le bouton droit sur Serveurs d&#39;impression et ajoutez vos serveurs d&#39;impression:","3. Cliquez avec le bouton droit sur l’ancien serveur d’impression et choisissez Exporter les imprimantes dans un fichier:","Importer des imprimantes\n1. Cliquez avec le bouton droit sur le nouveau serveur d’imprimante et choisissez «Importer des imprimantes depuis un fichier…».","Vérifier les configurations correspondantes\nAvant de configurer les scripts pour remapper les imprimantes utilisateur, vous devez vérifier que tous les partages d&#39;impression, pilotes (x86 / x64) et ports existent et sont configurés correctement sur le nouveau serveur.\nCela peut être fait assez facilement en exportant des listes à l&#39;aide de la MMC Gestion de l&#39;impression.\nSous chaque serveur d&#39;impression, cliquez simplement sur Pilotes, Formulaires, Ports ou Imprimantes, puis cliquez sur Exporter la liste, puis comparez la liste de l&#39;ancien serveur à la liste du nouveau serveur.","Ajoutez / corrigez manuellement les pilotes, formulaires, ports ou imprimantes manquants.\n* Si les utilisateurs ne disposent pas des autorisations nécessaires pour installer les pilotes d&#39;impression, les pilotes de l&#39;ancien serveur et ceux du nouveau serveur doivent être identiques (numéro de version, etc.).\nRe-mapper les imprimantes utilisateur\nNous utiliserons ici les scripts d’ouverture de session pour remapper les imprimantes des utilisateurs tout en préservant leur imprimante par défaut sans qu’ils ne le sachent jamais. Si vous n’avez pas exporté les listes des deux serveurs d’imprimante de la dernière section, faites-le maintenant. Nous allons utiliser ces listes pour former un nouveau fichier texte pour notre script.\nPréparer des listes\nVous devrez créer un fichier texte (.txt) pour le script à référencer. Ce fichier texte doit être placé sur un partage réseau auquel tous les utilisateurs ont accès, ainsi que le script expliqué dans la section suivante. J&#39;ai nommé mon fichier texte «qchanges.txt». Le fichier texte doit être formaté avec l&#39;ancienne URL de partage d&#39;impression à gauche et la nouvelle URL de partage d&#39;impression à droite, et séparé par un point-virgule avec chaque élément de la nouvelle ligne, comme ceci:","\\ oldserver  printer1; \\ newserver  printer1\n\\ oldserver  printer2; \\ newserver  printer2\n\\ oldserver  hp-thirdfloor; \\ serveur de nouvelles  hp-thirdfloor\n\\ oldserver  ancien-nom-imprimante; \\ serveur de nouvelles  nouveau-nom-imprimante","Vous devriez voir le modèle ici. Le script s’exécutera lorsque l’utilisateur se connectera et recherchera l’ensemble du fichier texte pour voir si l’une des imprimantes actuellement mappées de l’utilisateur correspond à l’un des noms de partage restants du point-virgule. Si le script trouve une correspondance, il déconnectera cette imprimante et mappera le partage d&#39;impression à droite du point-virgule. Le script préservera également l’imprimante par défaut de l’utilisateur dans le cas où plusieurs imprimantes sont mappées.\nPréparer des scripts\nJ&#39;ai utilisé une combinaison de scripts pour compléter notre migration. Si vous êtes un gourou des scripts, n&#39;hésitez pas à les modifier et à les combiner, mais je n&#39;ai pas eu envie de prendre le temps de le faire. De plus, je ne connais pas très bien vbScipt… J&#39;ai appris PowerShell comme premier langage de script.\n* Assurez-vous de faire attention à la façon dont ces scripts se référencent. Vérifiez les variables de script.* Vérifier les autorisations pour accéder à l&#39;emplacement du script pour tous les utilisateurs* Vérifiez les autorisations des utilisateurs pour mapper les imprimantes ou installer de nouveaux pilotes s&#39;ils diffèrent de l&#39;ancien serveur.* Ce script est un peu lent, donc laissez-lui le temps de courir avant de conclure qu’il n’a rien fait.\nCe vbScript fait le travail et j&#39;ai nommé le mien “qchanges.vbs”. Ce script accepte plusieurs arguments, mais dans mon cas, je n&#39;ai utilisé que deux arguments, l&#39;un pour l&#39;emplacement du fichier texte et l&#39;autre pour masquer les actions de l&#39;utilisateur (nologo). C&#39;est la commande que j&#39;ai utilisée: “qchanges.vbs qchanges.txt // nologo”\nScript VB:","En cas d&#39;erreur, reprise suivante\nConst VERBOSE = &quot;N&quot; &#39;Progression de l&#39;affichage (Y ou N)\nConst Title = &quot;Print Connection Migrator&quot;\nConst ForReading = 1","Dim strDefaultPrinter\nTableau des noms d&#39;imprimantes de Dim InstalledPrinters\nDim Textfile &#39;Fichier avec les noms Q d&#39;impression\nDim OldPrintQueues () &#39;Tableau dynamique pour stocker les anciens noms de file d&#39;attente d&#39;impression, à partir du fichier texte\nDim NewPrintQueues () &#39;Tableau dynamique pour stocker les nouveaux noms de file d&#39;attente d&#39;impression, à partir du fichier texte\nDim fso &#39;objet système de fichiers\nDim objTextFile &#39;Objet de fichier texte\nDim strNextLine &#39;Ligne du fichier texte\nDim i\nDim WshNetwork","Définir WshNetwork = CreateObject (&quot;WScript.Network&quot;)","&#39;1. - Récupère les arguments de la ligne de commande ###\nSET Parameters = Wscript.arguments","&#39;Si aucun argument de ligne de commande fourni, quittez\nSi Parameters.Count = 0 alors\nWScript.Quit (1)\nAutre\nTextfile = Parameters.item (0)\nFin si","Si Textfile = &quot;&quot; ou Not Right (TextFile, 4) = &quot;.txt&quot; ou Not FileExist (Textfile), alors\nError = MsgBox (&quot;Aucun fichier d&#39;entrée valide fourni. Arrêt du script maintenant.&quot;, Vbokonly, Title)\nWScript.Quit (1)\nFin si","Si VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Lecture du fichier d&#39;entrée&quot;\n&#39;2. Lisez le fichier texte et importez-le dans un tableau ###\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)\nDéfinir objTextFile = objFSO.OpenTextFile (TextFile, ForReading)\ni = -1","Bien que non objTextFile.AtEndOfStream\ni = i + 1\nRedim Preserve OldPrintQueues (i)\nReDim Conserver NewPrintQueues (i)\nstrLine = objTextFile.Readline\n&#39;N&#39;importez pas les lignes de commentaire\nSi laissé (strLine, 2) = &quot;\\&quot; alors\nOldPrintQueues (i) = Left (strLine, InStr (strline, &quot;;&quot;) - 1)\nSi VERBOSE = &quot;Y&quot; alors Wscript.Echo &quot;ancien Q est:&quot; &amp; OldPrintQueues (i)\nNewPrintQueues (i) = Mid (strline, InStr (strline, &quot;;&quot;) + 1, Len (strline))\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;nouveau Q est:&quot; &amp; NewPrintQueues (i)\nFin si\nWend","objTextFile.Close","&#39;3. Enregistrez le nom de l&#39;imprimante par défaut ###","strDefaultPrinter = DefaultPrinter\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Le défaut est:&quot; &amp; strDefaultPrinter","&#39;4. Requête WMI pour les connexions d&#39;imprimante actuelles ###","strComputer = &quot;.&quot;\nDéfinissez objWMIService = GetObject (&quot;winmgmts:&quot; _\n&amp; &quot;impersonationLevel = emprunt d&#39;identité! \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colInstalledPrinters = objWMIService.ExecQuery _\n(&quot;Select * from Win32_Printer&quot;)","&#39;5. Boucle principale dans la collection d’imprimantes ###","Pour chaque objPrinter dans colInstalledPrinters\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Connexion actuelle:&quot; &amp; objPrinter.Name\nSi laissé (objPrinter.Name, 2) = &quot;\\&quot; Then &#39;ne fonctionne que sur les imprimantes réseau\n&#39;Recherchez l&#39;imprimante correspondante et créez-la\ni = 0 &#39;définit l&#39;indice au début du tableau (prépare la boucle)\nFaire jusqu&#39;à i&gt; UBound (OldPrintQueues)\nSi UCase (objPrinter.Name) = UCase (OldPrintQueues (i)), alors\n&#39;Créer la connexion à la nouvelle imprimante\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Nouvelle connexion:&quot; &amp; NewPrintQueues (i)\nWshNetwork.AddWindowsPrinterConnection NewPrintQueues (i)\nSi UCase (strDefaultPrinter) = UCase (objPrinter.Name) Alors &#39;Ceci est l&#39;imprimante par défaut\n&#39;Définir l&#39;imprimante par défaut\nWshNetwork.SetDefaultPrinter NewPrintQueues (i)\nFin si\n&#39;Supprimer la connexion de l&#39;imprimante\nWshNetwork.RemovePrinterConnection objPrinter.Name\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Suppression:&quot; &amp; objPrinter.Name\nFin si\ni = i + 1\nBoucle\nFin si &#39;Fin de vérification pour les imprimantes réseau\nNext &#39;Fin de la boucle sur les imprimantes de cet utilisateur","Définir WshNetwork = Nothing","&#39;-----------------\n&#39; Les fonctions\n&#39;-----------------","&#39;Renvoyer l&#39;imprimante par défaut\nFonction DefaultPrinter\nDim strComputer\nRésultat faible","strComputer = &quot;.&quot;\nRésultat = &quot;&quot;","Définissez objWMIService = GetObject (&quot;winmgmts:&quot; _\n&amp; &quot;impersonationLevel = emprunt d&#39;identité! \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colInstalledPrinters = objWMIService.ExecQuery _\n(&quot;Select * from Win32_Printer&quot;)\nPour chaque objPrinter dans colInstalledPrinters\nSi objPrinter.Default = True alors\nRésultat = nom_imprimante_journal\nFin si\nProchain\nDefaultPrinter = Résultat\nFonction de fin","&#39;-----------------","&#39;Est-ce que le fichier existe (Booléen)\nFonction FileExist (FileFullPath)\nDim Fso\nSet Fso = CreateObject (&quot;Scripting.FileSystemObject&quot;)\nSi (Fso.FileExists (FileFullPath)) alors\nFileExist = True\nAutre\nFileExist = False\nFin si\nFonction de fin","&#39;Basé sur un scénario de: Sébastien Pittet (pittet.org)\n&#39;discuté à http://cwashington.netreach.net/","&#39;Creative Commons Attribution-ShareAlike 2.5\n&#39;http://creativecommons.org/licenses/by-sa/2.5/","&#39;Simon Sheppard septembre 2005\n&#39;http://ss64.com/vb/syntax-qchange.html","Scripts de test\n1. Testez d&#39;abord ce script sur votre ordinateur local.\n2. Testez ce script sur un petit groupe en créant et en exploitant un groupe Active Directory via un script de connexion ou un objet de stratégie de groupe.\n* Assurez-vous que les imprimantes ont été remappées correctement et que l&#39;imprimante par défaut a été préservée.\nImplémenter des scripts\nJ&#39;ai choisi de créer un groupe Active Directory appelé «User-Printer-Migration» et le script d&#39;ouverture de session ne l&#39;exécutait que sur les utilisateurs de ce groupe. J&#39;ai ensuite ajouté les différents groupes d&#39;organisation à différents moments pour déployer la migration par étapes en cas de problème.\nNous avons eu quelques problèmes, mais j’estimerais que le succès total était d’environ 98%. Un utilisateur s&#39;est retrouvé avec toutes les imprimantes de la liste et sur quelques ordinateurs, il n&#39;a rien fait.\nJe considère ces quelques occurrences comme négligeables dans l’image globale en raison du temps gagné.\nComplet et nettoyage\nUne fois que vous avez étendu cela à l&#39;ensemble de votre réseau, il est temps de nettoyer Active Directory et de vous débarrasser définitivement de votre ancien serveur d&#39;impression.\nSurveiller l&#39;utilisation de l&#39;ancien serveur\nRetournez voir l&#39;ancien serveur d&#39;impression. Vous pouvez utiliser le journal des événements sur l&#39;ancien serveur pour voir quand il a reçu les derniers travaux d&#39;impression et sur quelle imprimante. J&#39;ai utilisé PowerShell pour y parvenir.\nVous pouvez activer «Enregistrer les informations du spouleur» dans les «Propriétés du serveur» du spouleur d’impression. Vous obtiendrez une entrée du journal des événements système, source «Imprimer», tapez «Information», ID d’événement 10, à la fin du travail d’impression. Cet événement contiendra des détails sur l&#39;utilisateur, l&#39;imprimante, la taille du travail et le nombre de pages imprimées.\nVoici un script PowerShell que j&#39;ai utilisé pour cela:","$ server = read-host &quot;De quel serveur d&#39;impression souhaitez-vous collecter les événements d&#39;impression?&quot;\n$ CSVsave = read-host &quot;Où souhaitez-vous enregistrer la sortie CSV? (Ex d:  prntsrv.csv)&quot;","$ StartDate = get-date 20/03/14\n$ EndDate = get-date 04/01/14","Get-EventLog -LogName Système -Ordinateur $ serveur -Source print -Après $ StartDate -Before $ EndDate | où $ _. EventID -eq 10 | sélectionnez Source, EventID, MachineName, UserName, Message | export-csv $ CSVsave","Re-mappez tous les utilisateurs qui utilisent encore l’ancien serveur et lorsque les tâches ne sont plus envoyées à l’ancien serveur d’impression, il est temps de le mettre hors service.\nMise hors service de l&#39;ancien serveur d&#39;impression\nJe recommande d’arrêter temporairement l’ancien serveur d’impression / serveurs pour voir s’il ya des problèmes. S&#39;il n&#39;y a pas de plaintes, il est temps de:\n&#8211; Arrêtez l&#39;ancien serveur&#8211; Supprimer toutes les entrées AD faisant référence à l&#39;ancien serveur&#8211; Supprimez l&#39;ancien serveur de tout autre système tel que SCCM ou SolarWinds","Félicitations!!","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"Comment j&#39;ai migré plus d&#39;un millier d&#39;utilisateurs vers nos nouveaux serveurs d&#39;impression…\nSommaire\nCe didacticiel complet, étape par étape, explique comment migrer vers un nouveau serveur d&#39;impression sans interruption de service. Cette procédure de migration fournit une intégration transparente du nouveau système tout en éliminant progressivement l&#39;ancien serveur. Cette migration est réalisée à l&#39;aide de la console de gestion d&#39;impression, des outils de migration d&#39;imprimante et des scripts.\nS&#39;applique à: Serveurs d&#39;impression Microsoft Windows (2003/2008 / 2008r2 / 2012, bien que de nouvelles méthodes powershell soient disponibles dans Server 2012)\nMigration d&#39;imprimante\nCe guide suppose que vous avez créé un nouveau serveur d&#39;impression et que toutes les nouvelles imprimantes sont créées et partagées à partir du nouveau serveur. Le guide suivant explique la suppression progressive de l&#39;ancien serveur d&#39;impression.\nExporter des imprimantes\nPour cette migration, nous allons utiliser la console MMC de gestion d&#39;impression figurant dans vos outils d&#39;administration.\n* Vous pouvez également utiliser l&#39;outil de ligne de commande printbrm.exe pour exporter / importer des imprimantes si vous rencontrez des problèmes avec la MMC de gestion de l&#39;impression. Si vous rencontrez des problèmes avec les deux, vous devrez scripter l&#39;exportation / importation des ports et des partages d&#39;imprimante. Malheureusement, tous les pilotes devront être installés manuellement sans utiliser les outils de migration, à moins que vous ne puissiez trouver un script sophistiqué capable de gérer cette tâche.\n1. Ouvrez la MMC Gestion de l’impression:","html":"<p>Comment j&#039;ai migré plus d&#039;un millier d&#039;utilisateurs vers nos nouveaux serveurs d&#039;impression…\nSommaire\nCe didacticiel complet, étape par étape, explique comment migrer vers un nouveau serveur d&#039;impression sans interruption de service. Cette procédure de migration fournit une intégration transparente du nouveau système tout en éliminant progressivement l&#039;ancien serveur. Cette migration est réalisée à l&#039;aide de la console de gestion d&#039;impression, des outils de migration d&#039;imprimante et des scripts.\nS&#039;applique à: Serveurs d&#039;impression Microsoft Windows (2003/2008 / 2008r2 / 2012, bien que de nouvelles méthodes powershell soient disponibles dans Server 2012)\nMigration d&#039;imprimante\nCe guide suppose que vous avez créé un nouveau serveur d&#039;impression et que toutes les nouvelles imprimantes sont créées et partagées à partir du nouveau serveur. Le guide suivant explique la suppression progressive de l&#039;ancien serveur d&#039;impression.\nExporter des imprimantes\nPour cette migration, nous allons utiliser la console MMC de gestion d&#039;impression figurant dans vos outils d&#039;administration.\n* Vous pouvez également utiliser l&#039;outil de ligne de commande printbrm.exe pour exporter / importer des imprimantes si vous rencontrez des problèmes avec la MMC de gestion de l&#039;impression. Si vous rencontrez des problèmes avec les deux, vous devrez scripter l&#039;exportation / importation des ports et des partages d&#039;imprimante. Malheureusement, tous les pilotes devront être installés manuellement sans utiliser les outils de migration, à moins que vous ne puissiez trouver un script sophistiqué capable de gérer cette tâche.\n1. Ouvrez la MMC Gestion de l’impression:</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"2. Cliquez avec le bouton droit sur Serveurs d&#39;impression et ajoutez vos serveurs d&#39;impression:","html":"<p>2. Cliquez avec le bouton droit sur Serveurs d&#039;impression et ajoutez vos serveurs d&#039;impression:</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"3. Cliquez avec le bouton droit sur l’ancien serveur d’impression et choisissez Exporter les imprimantes dans un fichier:","html":"<p>3. Cliquez avec le bouton droit sur l’ancien serveur d’impression et choisissez Exporter les imprimantes dans un fichier:</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"Importer des imprimantes\n1. Cliquez avec le bouton droit sur le nouveau serveur d’imprimante et choisissez «Importer des imprimantes depuis un fichier…».","html":"<p>Importer des imprimantes\n1. Cliquez avec le bouton droit sur le nouveau serveur d’imprimante et choisissez «Importer des imprimantes depuis un fichier…».</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"Vérifier les configurations correspondantes\nAvant de configurer les scripts pour remapper les imprimantes utilisateur, vous devez vérifier que tous les partages d&#39;impression, pilotes (x86 / x64) et ports existent et sont configurés correctement sur le nouveau serveur.\nCela peut être fait assez facilement en exportant des listes à l&#39;aide de la MMC Gestion de l&#39;impression.\nSous chaque serveur d&#39;impression, cliquez simplement sur Pilotes, Formulaires, Ports ou Imprimantes, puis cliquez sur Exporter la liste, puis comparez la liste de l&#39;ancien serveur à la liste du nouveau serveur.","html":"<p>Vérifier les configurations correspondantes\nAvant de configurer les scripts pour remapper les imprimantes utilisateur, vous devez vérifier que tous les partages d&#039;impression, pilotes (x86 / x64) et ports existent et sont configurés correctement sur le nouveau serveur.\nCela peut être fait assez facilement en exportant des listes à l&#039;aide de la MMC Gestion de l&#039;impression.\nSous chaque serveur d&#039;impression, cliquez simplement sur Pilotes, Formulaires, Ports ou Imprimantes, puis cliquez sur Exporter la liste, puis comparez la liste de l&#039;ancien serveur à la liste du nouveau serveur.</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"Ajoutez / corrigez manuellement les pilotes, formulaires, ports ou imprimantes manquants.\n* Si les utilisateurs ne disposent pas des autorisations nécessaires pour installer les pilotes d&#39;impression, les pilotes de l&#39;ancien serveur et ceux du nouveau serveur doivent être identiques (numéro de version, etc.).\nRe-mapper les imprimantes utilisateur\nNous utiliserons ici les scripts d’ouverture de session pour remapper les imprimantes des utilisateurs tout en préservant leur imprimante par défaut sans qu’ils ne le sachent jamais. Si vous n’avez pas exporté les listes des deux serveurs d’imprimante de la dernière section, faites-le maintenant. Nous allons utiliser ces listes pour former un nouveau fichier texte pour notre script.\nPréparer des listes\nVous devrez créer un fichier texte (.txt) pour le script à référencer. Ce fichier texte doit être placé sur un partage réseau auquel tous les utilisateurs ont accès, ainsi que le script expliqué dans la section suivante. J&#39;ai nommé mon fichier texte «qchanges.txt». Le fichier texte doit être formaté avec l&#39;ancienne URL de partage d&#39;impression à gauche et la nouvelle URL de partage d&#39;impression à droite, et séparé par un point-virgule avec chaque élément de la nouvelle ligne, comme ceci:","html":"<p>Ajoutez / corrigez manuellement les pilotes, formulaires, ports ou imprimantes manquants.\n* Si les utilisateurs ne disposent pas des autorisations nécessaires pour installer les pilotes d&#039;impression, les pilotes de l&#039;ancien serveur et ceux du nouveau serveur doivent être identiques (numéro de version, etc.).\nRe-mapper les imprimantes utilisateur\nNous utiliserons ici les scripts d’ouverture de session pour remapper les imprimantes des utilisateurs tout en préservant leur imprimante par défaut sans qu’ils ne le sachent jamais. Si vous n’avez pas exporté les listes des deux serveurs d’imprimante de la dernière section, faites-le maintenant. Nous allons utiliser ces listes pour former un nouveau fichier texte pour notre script.\nPréparer des listes\nVous devrez créer un fichier texte (.txt) pour le script à référencer. Ce fichier texte doit être placé sur un partage réseau auquel tous les utilisateurs ont accès, ainsi que le script expliqué dans la section suivante. J&#039;ai nommé mon fichier texte «qchanges.txt». Le fichier texte doit être formaté avec l&#039;ancienne URL de partage d&#039;impression à gauche et la nouvelle URL de partage d&#039;impression à droite, et séparé par un point-virgule avec chaque élément de la nouvelle ligne, comme ceci:</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"\\ oldserver  printer1; \\ newserver  printer1\n\\ oldserver  printer2; \\ newserver  printer2\n\\ oldserver  hp-thirdfloor; \\ serveur de nouvelles  hp-thirdfloor\n\\ oldserver  ancien-nom-imprimante; \\ serveur de nouvelles  nouveau-nom-imprimante","html":"<p>\\ oldserver  printer1; \\ newserver  printer1\n\\ oldserver  printer2; \\ newserver  printer2\n\\ oldserver  hp-thirdfloor; \\ serveur de nouvelles  hp-thirdfloor\n\\ oldserver  ancien-nom-imprimante; \\ serveur de nouvelles  nouveau-nom-imprimante</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"Vous devriez voir le modèle ici. Le script s’exécutera lorsque l’utilisateur se connectera et recherchera l’ensemble du fichier texte pour voir si l’une des imprimantes actuellement mappées de l’utilisateur correspond à l’un des noms de partage restants du point-virgule. Si le script trouve une correspondance, il déconnectera cette imprimante et mappera le partage d&#39;impression à droite du point-virgule. Le script préservera également l’imprimante par défaut de l’utilisateur dans le cas où plusieurs imprimantes sont mappées.\nPréparer des scripts\nJ&#39;ai utilisé une combinaison de scripts pour compléter notre migration. Si vous êtes un gourou des scripts, n&#39;hésitez pas à les modifier et à les combiner, mais je n&#39;ai pas eu envie de prendre le temps de le faire. De plus, je ne connais pas très bien vbScipt… J&#39;ai appris PowerShell comme premier langage de script.\n* Assurez-vous de faire attention à la façon dont ces scripts se référencent. Vérifiez les variables de script.* Vérifier les autorisations pour accéder à l&#39;emplacement du script pour tous les utilisateurs* Vérifiez les autorisations des utilisateurs pour mapper les imprimantes ou installer de nouveaux pilotes s&#39;ils diffèrent de l&#39;ancien serveur.* Ce script est un peu lent, donc laissez-lui le temps de courir avant de conclure qu’il n’a rien fait.\nCe vbScript fait le travail et j&#39;ai nommé le mien “qchanges.vbs”. Ce script accepte plusieurs arguments, mais dans mon cas, je n&#39;ai utilisé que deux arguments, l&#39;un pour l&#39;emplacement du fichier texte et l&#39;autre pour masquer les actions de l&#39;utilisateur (nologo). C&#39;est la commande que j&#39;ai utilisée: “qchanges.vbs qchanges.txt // nologo”\nScript VB:","html":"<p>Vous devriez voir le modèle ici. Le script s’exécutera lorsque l’utilisateur se connectera et recherchera l’ensemble du fichier texte pour voir si l’une des imprimantes actuellement mappées de l’utilisateur correspond à l’un des noms de partage restants du point-virgule. Si le script trouve une correspondance, il déconnectera cette imprimante et mappera le partage d&#039;impression à droite du point-virgule. Le script préservera également l’imprimante par défaut de l’utilisateur dans le cas où plusieurs imprimantes sont mappées.\nPréparer des scripts\nJ&#039;ai utilisé une combinaison de scripts pour compléter notre migration. Si vous êtes un gourou des scripts, n&#039;hésitez pas à les modifier et à les combiner, mais je n&#039;ai pas eu envie de prendre le temps de le faire. De plus, je ne connais pas très bien vbScipt… J&#039;ai appris PowerShell comme premier langage de script.\n* Assurez-vous de faire attention à la façon dont ces scripts se référencent. Vérifiez les variables de script.* Vérifier les autorisations pour accéder à l&#039;emplacement du script pour tous les utilisateurs* Vérifiez les autorisations des utilisateurs pour mapper les imprimantes ou installer de nouveaux pilotes s&#039;ils diffèrent de l&#039;ancien serveur.* Ce script est un peu lent, donc laissez-lui le temps de courir avant de conclure qu’il n’a rien fait.\nCe vbScript fait le travail et j&#039;ai nommé le mien “qchanges.vbs”. Ce script accepte plusieurs arguments, mais dans mon cas, je n&#039;ai utilisé que deux arguments, l&#039;un pour l&#039;emplacement du fichier texte et l&#039;autre pour masquer les actions de l&#039;utilisateur (nologo). C&#039;est la commande que j&#039;ai utilisée: “qchanges.vbs qchanges.txt // nologo”\nScript VB:</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"En cas d&#39;erreur, reprise suivante\nConst VERBOSE = &quot;N&quot; &#39;Progression de l&#39;affichage (Y ou N)\nConst Title = &quot;Print Connection Migrator&quot;\nConst ForReading = 1","html":"<p>En cas d&#039;erreur, reprise suivante\nConst VERBOSE = &quot;N&quot; &#039;Progression de l&#039;affichage (Y ou N)\nConst Title = &quot;Print Connection Migrator&quot;\nConst ForReading = 1</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"Dim strDefaultPrinter\nTableau des noms d&#39;imprimantes de Dim InstalledPrinters\nDim Textfile &#39;Fichier avec les noms Q d&#39;impression\nDim OldPrintQueues () &#39;Tableau dynamique pour stocker les anciens noms de file d&#39;attente d&#39;impression, à partir du fichier texte\nDim NewPrintQueues () &#39;Tableau dynamique pour stocker les nouveaux noms de file d&#39;attente d&#39;impression, à partir du fichier texte\nDim fso &#39;objet système de fichiers\nDim objTextFile &#39;Objet de fichier texte\nDim strNextLine &#39;Ligne du fichier texte\nDim i\nDim WshNetwork","html":"<p>Dim strDefaultPrinter\nTableau des noms d&#039;imprimantes de Dim InstalledPrinters\nDim Textfile &#039;Fichier avec les noms Q d&#039;impression\nDim OldPrintQueues () &#039;Tableau dynamique pour stocker les anciens noms de file d&#039;attente d&#039;impression, à partir du fichier texte\nDim NewPrintQueues () &#039;Tableau dynamique pour stocker les nouveaux noms de file d&#039;attente d&#039;impression, à partir du fichier texte\nDim fso &#039;objet système de fichiers\nDim objTextFile &#039;Objet de fichier texte\nDim strNextLine &#039;Ligne du fichier texte\nDim i\nDim WshNetwork</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"Définir WshNetwork = CreateObject (&quot;WScript.Network&quot;)","html":"<p>Définir WshNetwork = CreateObject (&quot;WScript.Network&quot;)</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"&#39;1. - Récupère les arguments de la ligne de commande ###\nSET Parameters = Wscript.arguments","html":"<p>&#039;1. - Récupère les arguments de la ligne de commande ###\nSET Parameters = Wscript.arguments</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"&#39;Si aucun argument de ligne de commande fourni, quittez\nSi Parameters.Count = 0 alors\nWScript.Quit (1)\nAutre\nTextfile = Parameters.item (0)\nFin si","html":"<p>&#039;Si aucun argument de ligne de commande fourni, quittez\nSi Parameters.Count = 0 alors\nWScript.Quit (1)\nAutre\nTextfile = Parameters.item (0)\nFin si</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"Si Textfile = &quot;&quot; ou Not Right (TextFile, 4) = &quot;.txt&quot; ou Not FileExist (Textfile), alors\nError = MsgBox (&quot;Aucun fichier d&#39;entrée valide fourni. Arrêt du script maintenant.&quot;, Vbokonly, Title)\nWScript.Quit (1)\nFin si","html":"<p>Si Textfile = &quot;&quot; ou Not Right (TextFile, 4) = &quot;.txt&quot; ou Not FileExist (Textfile), alors\nError = MsgBox (&quot;Aucun fichier d&#039;entrée valide fourni. Arrêt du script maintenant.&quot;, Vbokonly, Title)\nWScript.Quit (1)\nFin si</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"Si VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Lecture du fichier d&#39;entrée&quot;\n&#39;2. Lisez le fichier texte et importez-le dans un tableau ###\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)\nDéfinir objTextFile = objFSO.OpenTextFile (TextFile, ForReading)\ni = -1","html":"<p>Si VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Lecture du fichier d&#039;entrée&quot;\n&#039;2. Lisez le fichier texte et importez-le dans un tableau ###\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)\nDéfinir objTextFile = objFSO.OpenTextFile (TextFile, ForReading)\ni = -1</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"Bien que non objTextFile.AtEndOfStream\ni = i + 1\nRedim Preserve OldPrintQueues (i)\nReDim Conserver NewPrintQueues (i)\nstrLine = objTextFile.Readline\n&#39;N&#39;importez pas les lignes de commentaire\nSi laissé (strLine, 2) = &quot;\\&quot; alors\nOldPrintQueues (i) = Left (strLine, InStr (strline, &quot;;&quot;) - 1)\nSi VERBOSE = &quot;Y&quot; alors Wscript.Echo &quot;ancien Q est:&quot; &amp; OldPrintQueues (i)\nNewPrintQueues (i) = Mid (strline, InStr (strline, &quot;;&quot;) + 1, Len (strline))\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;nouveau Q est:&quot; &amp; NewPrintQueues (i)\nFin si\nWend","html":"<p>Bien que non objTextFile.AtEndOfStream\ni = i + 1\nRedim Preserve OldPrintQueues (i)\nReDim Conserver NewPrintQueues (i)\nstrLine = objTextFile.Readline\n&#039;N&#039;importez pas les lignes de commentaire\nSi laissé (strLine, 2) = &quot;\\&quot; alors\nOldPrintQueues (i) = Left (strLine, InStr (strline, &quot;;&quot;) - 1)\nSi VERBOSE = &quot;Y&quot; alors Wscript.Echo &quot;ancien Q est:&quot; &amp; OldPrintQueues (i)\nNewPrintQueues (i) = Mid (strline, InStr (strline, &quot;;&quot;) + 1, Len (strline))\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;nouveau Q est:&quot; &amp; NewPrintQueues (i)\nFin si\nWend</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"objTextFile.Close","html":"<p>objTextFile.Close</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"&#39;3. Enregistrez le nom de l&#39;imprimante par défaut ###","html":"<p>&#039;3. Enregistrez le nom de l&#039;imprimante par défaut ###</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"strDefaultPrinter = DefaultPrinter\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Le défaut est:&quot; &amp; strDefaultPrinter","html":"<p>strDefaultPrinter = DefaultPrinter\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Le défaut est:&quot; &amp; strDefaultPrinter</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"&#39;4. Requête WMI pour les connexions d&#39;imprimante actuelles ###","html":"<p>&#039;4. Requête WMI pour les connexions d&#039;imprimante actuelles ###</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"strComputer = &quot;.&quot;\nDéfinissez objWMIService = GetObject (&quot;winmgmts:&quot; _\n&amp; &quot;impersonationLevel = emprunt d&#39;identité! \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colInstalledPrinters = objWMIService.ExecQuery _\n(&quot;Select * from Win32_Printer&quot;)","html":"<p>strComputer = &quot;.&quot;\nDéfinissez objWMIService = GetObject (&quot;winmgmts:&quot; _\n&amp; &quot;impersonationLevel = emprunt d&#039;identité! \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colInstalledPrinters = objWMIService.ExecQuery _\n(&quot;Select * from Win32_Printer&quot;)</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"&#39;5. Boucle principale dans la collection d’imprimantes ###","html":"<p>&#039;5. Boucle principale dans la collection d’imprimantes ###</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"Pour chaque objPrinter dans colInstalledPrinters\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Connexion actuelle:&quot; &amp; objPrinter.Name\nSi laissé (objPrinter.Name, 2) = &quot;\\&quot; Then &#39;ne fonctionne que sur les imprimantes réseau\n&#39;Recherchez l&#39;imprimante correspondante et créez-la\ni = 0 &#39;définit l&#39;indice au début du tableau (prépare la boucle)\nFaire jusqu&#39;à i&gt; UBound (OldPrintQueues)\nSi UCase (objPrinter.Name) = UCase (OldPrintQueues (i)), alors\n&#39;Créer la connexion à la nouvelle imprimante\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Nouvelle connexion:&quot; &amp; NewPrintQueues (i)\nWshNetwork.AddWindowsPrinterConnection NewPrintQueues (i)\nSi UCase (strDefaultPrinter) = UCase (objPrinter.Name) Alors &#39;Ceci est l&#39;imprimante par défaut\n&#39;Définir l&#39;imprimante par défaut\nWshNetwork.SetDefaultPrinter NewPrintQueues (i)\nFin si\n&#39;Supprimer la connexion de l&#39;imprimante\nWshNetwork.RemovePrinterConnection objPrinter.Name\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Suppression:&quot; &amp; objPrinter.Name\nFin si\ni = i + 1\nBoucle\nFin si &#39;Fin de vérification pour les imprimantes réseau\nNext &#39;Fin de la boucle sur les imprimantes de cet utilisateur","html":"<p>Pour chaque objPrinter dans colInstalledPrinters\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Connexion actuelle:&quot; &amp; objPrinter.Name\nSi laissé (objPrinter.Name, 2) = &quot;\\&quot; Then &#039;ne fonctionne que sur les imprimantes réseau\n&#039;Recherchez l&#039;imprimante correspondante et créez-la\ni = 0 &#039;définit l&#039;indice au début du tableau (prépare la boucle)\nFaire jusqu&#039;à i&gt; UBound (OldPrintQueues)\nSi UCase (objPrinter.Name) = UCase (OldPrintQueues (i)), alors\n&#039;Créer la connexion à la nouvelle imprimante\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Nouvelle connexion:&quot; &amp; NewPrintQueues (i)\nWshNetwork.AddWindowsPrinterConnection NewPrintQueues (i)\nSi UCase (strDefaultPrinter) = UCase (objPrinter.Name) Alors &#039;Ceci est l&#039;imprimante par défaut\n&#039;Définir l&#039;imprimante par défaut\nWshNetwork.SetDefaultPrinter NewPrintQueues (i)\nFin si\n&#039;Supprimer la connexion de l&#039;imprimante\nWshNetwork.RemovePrinterConnection objPrinter.Name\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Suppression:&quot; &amp; objPrinter.Name\nFin si\ni = i + 1\nBoucle\nFin si &#039;Fin de vérification pour les imprimantes réseau\nNext &#039;Fin de la boucle sur les imprimantes de cet utilisateur</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"Définir WshNetwork = Nothing","html":"<p>Définir WshNetwork = Nothing</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"&#39;-----------------\n&#39; Les fonctions\n&#39;-----------------","html":"<p>&#039;-----------------\n&#039; Les fonctions\n&#039;-----------------</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"&#39;Renvoyer l&#39;imprimante par défaut\nFonction DefaultPrinter\nDim strComputer\nRésultat faible","html":"<p>&#039;Renvoyer l&#039;imprimante par défaut\nFonction DefaultPrinter\nDim strComputer\nRésultat faible</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"strComputer = &quot;.&quot;\nRésultat = &quot;&quot;","html":"<p>strComputer = &quot;.&quot;\nRésultat = &quot;&quot;</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"Définissez objWMIService = GetObject (&quot;winmgmts:&quot; _\n&amp; &quot;impersonationLevel = emprunt d&#39;identité! \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colInstalledPrinters = objWMIService.ExecQuery _\n(&quot;Select * from Win32_Printer&quot;)\nPour chaque objPrinter dans colInstalledPrinters\nSi objPrinter.Default = True alors\nRésultat = nom_imprimante_journal\nFin si\nProchain\nDefaultPrinter = Résultat\nFonction de fin","html":"<p>Définissez objWMIService = GetObject (&quot;winmgmts:&quot; _\n&amp; &quot;impersonationLevel = emprunt d&#039;identité! \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colInstalledPrinters = objWMIService.ExecQuery _\n(&quot;Select * from Win32_Printer&quot;)\nPour chaque objPrinter dans colInstalledPrinters\nSi objPrinter.Default = True alors\nRésultat = nom_imprimante_journal\nFin si\nProchain\nDefaultPrinter = Résultat\nFonction de fin</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"&#39;-----------------","html":"<p>&#039;-----------------</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"&#39;Est-ce que le fichier existe (Booléen)\nFonction FileExist (FileFullPath)\nDim Fso\nSet Fso = CreateObject (&quot;Scripting.FileSystemObject&quot;)\nSi (Fso.FileExists (FileFullPath)) alors\nFileExist = True\nAutre\nFileExist = False\nFin si\nFonction de fin","html":"<p>&#039;Est-ce que le fichier existe (Booléen)\nFonction FileExist (FileFullPath)\nDim Fso\nSet Fso = CreateObject (&quot;Scripting.FileSystemObject&quot;)\nSi (Fso.FileExists (FileFullPath)) alors\nFileExist = True\nAutre\nFileExist = False\nFin si\nFonction de fin</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"&#39;Basé sur un scénario de: Sébastien Pittet (pittet.org)\n&#39;discuté à http://cwashington.netreach.net/","html":"<p>&#039;Basé sur un scénario de: Sébastien Pittet (pittet.org)\n&#039;discuté à http://cwashington.netreach.net/</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"&#39;Creative Commons Attribution-ShareAlike 2.5\n&#39;http://creativecommons.org/licenses/by-sa/2.5/","html":"<p>&#039;Creative Commons Attribution-ShareAlike 2.5\n&#039;http://creativecommons.org/licenses/by-sa/2.5/</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"&#39;Simon Sheppard septembre 2005\n&#39;http://ss64.com/vb/syntax-qchange.html","html":"<p>&#039;Simon Sheppard septembre 2005\n&#039;http://ss64.com/vb/syntax-qchange.html</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"Scripts de test\n1. Testez d&#39;abord ce script sur votre ordinateur local.\n2. Testez ce script sur un petit groupe en créant et en exploitant un groupe Active Directory via un script de connexion ou un objet de stratégie de groupe.\n* Assurez-vous que les imprimantes ont été remappées correctement et que l&#39;imprimante par défaut a été préservée.\nImplémenter des scripts\nJ&#39;ai choisi de créer un groupe Active Directory appelé «User-Printer-Migration» et le script d&#39;ouverture de session ne l&#39;exécutait que sur les utilisateurs de ce groupe. J&#39;ai ensuite ajouté les différents groupes d&#39;organisation à différents moments pour déployer la migration par étapes en cas de problème.\nNous avons eu quelques problèmes, mais j’estimerais que le succès total était d’environ 98%. Un utilisateur s&#39;est retrouvé avec toutes les imprimantes de la liste et sur quelques ordinateurs, il n&#39;a rien fait.\nJe considère ces quelques occurrences comme négligeables dans l’image globale en raison du temps gagné.\nComplet et nettoyage\nUne fois que vous avez étendu cela à l&#39;ensemble de votre réseau, il est temps de nettoyer Active Directory et de vous débarrasser définitivement de votre ancien serveur d&#39;impression.\nSurveiller l&#39;utilisation de l&#39;ancien serveur\nRetournez voir l&#39;ancien serveur d&#39;impression. Vous pouvez utiliser le journal des événements sur l&#39;ancien serveur pour voir quand il a reçu les derniers travaux d&#39;impression et sur quelle imprimante. J&#39;ai utilisé PowerShell pour y parvenir.\nVous pouvez activer «Enregistrer les informations du spouleur» dans les «Propriétés du serveur» du spouleur d’impression. Vous obtiendrez une entrée du journal des événements système, source «Imprimer», tapez «Information», ID d’événement 10, à la fin du travail d’impression. Cet événement contiendra des détails sur l&#39;utilisateur, l&#39;imprimante, la taille du travail et le nombre de pages imprimées.\nVoici un script PowerShell que j&#39;ai utilisé pour cela:","html":"<p>Scripts de test\n1. Testez d&#039;abord ce script sur votre ordinateur local.\n2. Testez ce script sur un petit groupe en créant et en exploitant un groupe Active Directory via un script de connexion ou un objet de stratégie de groupe.\n* Assurez-vous que les imprimantes ont été remappées correctement et que l&#039;imprimante par défaut a été préservée.\nImplémenter des scripts\nJ&#039;ai choisi de créer un groupe Active Directory appelé «User-Printer-Migration» et le script d&#039;ouverture de session ne l&#039;exécutait que sur les utilisateurs de ce groupe. J&#039;ai ensuite ajouté les différents groupes d&#039;organisation à différents moments pour déployer la migration par étapes en cas de problème.\nNous avons eu quelques problèmes, mais j’estimerais que le succès total était d’environ 98%. Un utilisateur s&#039;est retrouvé avec toutes les imprimantes de la liste et sur quelques ordinateurs, il n&#039;a rien fait.\nJe considère ces quelques occurrences comme négligeables dans l’image globale en raison du temps gagné.\nComplet et nettoyage\nUne fois que vous avez étendu cela à l&#039;ensemble de votre réseau, il est temps de nettoyer Active Directory et de vous débarrasser définitivement de votre ancien serveur d&#039;impression.\nSurveiller l&#039;utilisation de l&#039;ancien serveur\nRetournez voir l&#039;ancien serveur d&#039;impression. Vous pouvez utiliser le journal des événements sur l&#039;ancien serveur pour voir quand il a reçu les derniers travaux d&#039;impression et sur quelle imprimante. J&#039;ai utilisé PowerShell pour y parvenir.\nVous pouvez activer «Enregistrer les informations du spouleur» dans les «Propriétés du serveur» du spouleur d’impression. Vous obtiendrez une entrée du journal des événements système, source «Imprimer», tapez «Information», ID d’événement 10, à la fin du travail d’impression. Cet événement contiendra des détails sur l&#039;utilisateur, l&#039;imprimante, la taille du travail et le nombre de pages imprimées.\nVoici un script PowerShell que j&#039;ai utilisé pour cela:</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"$ server = read-host &quot;De quel serveur d&#39;impression souhaitez-vous collecter les événements d&#39;impression?&quot;\n$ CSVsave = read-host &quot;Où souhaitez-vous enregistrer la sortie CSV? (Ex d:  prntsrv.csv)&quot;","html":"<p>$ server = read-host &quot;De quel serveur d&#039;impression souhaitez-vous collecter les événements d&#039;impression?&quot;\n$ CSVsave = read-host &quot;Où souhaitez-vous enregistrer la sortie CSV? (Ex d:  prntsrv.csv)&quot;</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"$ StartDate = get-date 20/03/14\n$ EndDate = get-date 04/01/14","html":"<p>$ StartDate = get-date 20/03/14\n$ EndDate = get-date 04/01/14</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"Get-EventLog -LogName Système -Ordinateur $ serveur -Source print -Après $ StartDate -Before $ EndDate | où $ _. EventID -eq 10 | sélectionnez Source, EventID, MachineName, UserName, Message | export-csv $ CSVsave","html":"<p>Get-EventLog -LogName Système -Ordinateur $ serveur -Source print -Après $ StartDate -Before $ EndDate | où $ _. EventID -eq 10 | sélectionnez Source, EventID, MachineName, UserName, Message | export-csv $ CSVsave</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"Re-mappez tous les utilisateurs qui utilisent encore l’ancien serveur et lorsque les tâches ne sont plus envoyées à l’ancien serveur d’impression, il est temps de le mettre hors service.\nMise hors service de l&#39;ancien serveur d&#39;impression\nJe recommande d’arrêter temporairement l’ancien serveur d’impression / serveurs pour voir s’il ya des problèmes. S&#39;il n&#39;y a pas de plaintes, il est temps de:\n&#8211; Arrêtez l&#39;ancien serveur&#8211; Supprimer toutes les entrées AD faisant référence à l&#39;ancien serveur&#8211; Supprimez l&#39;ancien serveur de tout autre système tel que SCCM ou SolarWinds","html":"<p>Re-mappez tous les utilisateurs qui utilisent encore l’ancien serveur et lorsque les tâches ne sont plus envoyées à l’ancien serveur d’impression, il est temps de le mettre hors service.\nMise hors service de l&#039;ancien serveur d&#039;impression\nJe recommande d’arrêter temporairement l’ancien serveur d’impression / serveurs pour voir s’il ya des problèmes. S&#039;il n&#039;y a pas de plaintes, il est temps de:\n&#8211; Arrêtez l&#039;ancien serveur&#8211; Supprimer toutes les entrées AD faisant référence à l&#039;ancien serveur&#8211; Supprimez l&#039;ancien serveur de tout autre système tel que SCCM ou SolarWinds</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"Félicitations!!","html":"<p>Félicitations!!</p>"},{"id":"text-40","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":"Comment j&#39;ai migré plus d&#39;un millier d&#39;utilisateurs vers nos nouveaux serveurs d&#39;impression…\nSommaire\nCe didacticiel complet, étape par étape, explique comment migrer vers un nouveau serveur d&#39;impression sans interruption de service. Cette procédure de migration fournit une intégration transparente du nouveau système tout en éliminant progressivement l&#39;ancien serveur. Cette migration est réalisée à l&#39;aide de la console de gestion d&#39;impression, des outils de migration d&#39;imprimante et des scripts.\nS&#39;applique à: Serveurs d&#39;impression Microsoft Windows (2003/2008 / 2008r2 / 2012, bien que de nouvelles méthodes powershell soient disponibles dans Server 2012)\nMigration d&#39;imprimante\nCe guide suppose que vous avez créé un nouveau serveur d&#39;impression et que toutes les nouvelles imprimantes sont créées et partagées à partir du nouveau serveur. Le guide suivant explique la suppression progressive de l&#39;ancien serveur d&#39;impression.\nExporter des imprimantes\nPour cette migration, nous allons utiliser la console MMC de gestion d&#39;impression figurant dans vos outils d&#39;administration.\n* Vous pouvez également utiliser l&#39;outil de ligne de commande printbrm.exe pour exporter / importer des imprimantes si vous rencontrez des problèmes avec la MMC de gestion de l&#39;impression. Si vous rencontrez des problèmes avec les deux, vous devrez scripter l&#39;exportation / importation des ports et des partages d&#39;imprimante. Malheureusement, tous les pilotes devront être installés manuellement sans utiliser les outils de migration, à moins que vous ne puissiez trouver un script sophistiqué capable de gérer cette tâche.\n1. Ouvrez la MMC Gestion de l’impression:"},{"id":"text-2","heading":"Text","content":"2. Cliquez avec le bouton droit sur Serveurs d&#39;impression et ajoutez vos serveurs d&#39;impression:"},{"id":"text-3","heading":"Text","content":"3. Cliquez avec le bouton droit sur l’ancien serveur d’impression et choisissez Exporter les imprimantes dans un fichier:"},{"id":"text-4","heading":"Text","content":"Importer des imprimantes\n1. Cliquez avec le bouton droit sur le nouveau serveur d’imprimante et choisissez «Importer des imprimantes depuis un fichier…»."},{"id":"text-5","heading":"Text","content":"Vérifier les configurations correspondantes\nAvant de configurer les scripts pour remapper les imprimantes utilisateur, vous devez vérifier que tous les partages d&#39;impression, pilotes (x86 / x64) et ports existent et sont configurés correctement sur le nouveau serveur.\nCela peut être fait assez facilement en exportant des listes à l&#39;aide de la MMC Gestion de l&#39;impression.\nSous chaque serveur d&#39;impression, cliquez simplement sur Pilotes, Formulaires, Ports ou Imprimantes, puis cliquez sur Exporter la liste, puis comparez la liste de l&#39;ancien serveur à la liste du nouveau serveur."},{"id":"text-6","heading":"Text","content":"Ajoutez / corrigez manuellement les pilotes, formulaires, ports ou imprimantes manquants.\n* Si les utilisateurs ne disposent pas des autorisations nécessaires pour installer les pilotes d&#39;impression, les pilotes de l&#39;ancien serveur et ceux du nouveau serveur doivent être identiques (numéro de version, etc.).\nRe-mapper les imprimantes utilisateur\nNous utiliserons ici les scripts d’ouverture de session pour remapper les imprimantes des utilisateurs tout en préservant leur imprimante par défaut sans qu’ils ne le sachent jamais. Si vous n’avez pas exporté les listes des deux serveurs d’imprimante de la dernière section, faites-le maintenant. Nous allons utiliser ces listes pour former un nouveau fichier texte pour notre script.\nPréparer des listes\nVous devrez créer un fichier texte (.txt) pour le script à référencer. Ce fichier texte doit être placé sur un partage réseau auquel tous les utilisateurs ont accès, ainsi que le script expliqué dans la section suivante. J&#39;ai nommé mon fichier texte «qchanges.txt». Le fichier texte doit être formaté avec l&#39;ancienne URL de partage d&#39;impression à gauche et la nouvelle URL de partage d&#39;impression à droite, et séparé par un point-virgule avec chaque élément de la nouvelle ligne, comme ceci:"},{"id":"text-7","heading":"Text","content":"\\ oldserver  printer1; \\ newserver  printer1\n\\ oldserver  printer2; \\ newserver  printer2\n\\ oldserver  hp-thirdfloor; \\ serveur de nouvelles  hp-thirdfloor\n\\ oldserver  ancien-nom-imprimante; \\ serveur de nouvelles  nouveau-nom-imprimante"},{"id":"text-8","heading":"Text","content":"Vous devriez voir le modèle ici. Le script s’exécutera lorsque l’utilisateur se connectera et recherchera l’ensemble du fichier texte pour voir si l’une des imprimantes actuellement mappées de l’utilisateur correspond à l’un des noms de partage restants du point-virgule. Si le script trouve une correspondance, il déconnectera cette imprimante et mappera le partage d&#39;impression à droite du point-virgule. Le script préservera également l’imprimante par défaut de l’utilisateur dans le cas où plusieurs imprimantes sont mappées.\nPréparer des scripts\nJ&#39;ai utilisé une combinaison de scripts pour compléter notre migration. Si vous êtes un gourou des scripts, n&#39;hésitez pas à les modifier et à les combiner, mais je n&#39;ai pas eu envie de prendre le temps de le faire. De plus, je ne connais pas très bien vbScipt… J&#39;ai appris PowerShell comme premier langage de script.\n* Assurez-vous de faire attention à la façon dont ces scripts se référencent. Vérifiez les variables de script.* Vérifier les autorisations pour accéder à l&#39;emplacement du script pour tous les utilisateurs* Vérifiez les autorisations des utilisateurs pour mapper les imprimantes ou installer de nouveaux pilotes s&#39;ils diffèrent de l&#39;ancien serveur.* Ce script est un peu lent, donc laissez-lui le temps de courir avant de conclure qu’il n’a rien fait.\nCe vbScript fait le travail et j&#39;ai nommé le mien “qchanges.vbs”. Ce script accepte plusieurs arguments, mais dans mon cas, je n&#39;ai utilisé que deux arguments, l&#39;un pour l&#39;emplacement du fichier texte et l&#39;autre pour masquer les actions de l&#39;utilisateur (nologo). C&#39;est la commande que j&#39;ai utilisée: “qchanges.vbs qchanges.txt // nologo”\nScript VB:"},{"id":"text-9","heading":"Text","content":"En cas d&#39;erreur, reprise suivante\nConst VERBOSE = &quot;N&quot; &#39;Progression de l&#39;affichage (Y ou N)\nConst Title = &quot;Print Connection Migrator&quot;\nConst ForReading = 1"},{"id":"text-10","heading":"Text","content":"Dim strDefaultPrinter\nTableau des noms d&#39;imprimantes de Dim InstalledPrinters\nDim Textfile &#39;Fichier avec les noms Q d&#39;impression\nDim OldPrintQueues () &#39;Tableau dynamique pour stocker les anciens noms de file d&#39;attente d&#39;impression, à partir du fichier texte\nDim NewPrintQueues () &#39;Tableau dynamique pour stocker les nouveaux noms de file d&#39;attente d&#39;impression, à partir du fichier texte\nDim fso &#39;objet système de fichiers\nDim objTextFile &#39;Objet de fichier texte\nDim strNextLine &#39;Ligne du fichier texte\nDim i\nDim WshNetwork"},{"id":"text-11","heading":"Text","content":"Définir WshNetwork = CreateObject (&quot;WScript.Network&quot;)"},{"id":"text-12","heading":"Text","content":"&#39;1. - Récupère les arguments de la ligne de commande ###\nSET Parameters = Wscript.arguments"},{"id":"text-13","heading":"Text","content":"&#39;Si aucun argument de ligne de commande fourni, quittez\nSi Parameters.Count = 0 alors\nWScript.Quit (1)\nAutre\nTextfile = Parameters.item (0)\nFin si"},{"id":"text-14","heading":"Text","content":"Si Textfile = &quot;&quot; ou Not Right (TextFile, 4) = &quot;.txt&quot; ou Not FileExist (Textfile), alors\nError = MsgBox (&quot;Aucun fichier d&#39;entrée valide fourni. Arrêt du script maintenant.&quot;, Vbokonly, Title)\nWScript.Quit (1)\nFin si"},{"id":"text-15","heading":"Text","content":"Si VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Lecture du fichier d&#39;entrée&quot;\n&#39;2. Lisez le fichier texte et importez-le dans un tableau ###\nDéfinir objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)\nDéfinir objTextFile = objFSO.OpenTextFile (TextFile, ForReading)\ni = -1"},{"id":"text-16","heading":"Text","content":"Bien que non objTextFile.AtEndOfStream\ni = i + 1\nRedim Preserve OldPrintQueues (i)\nReDim Conserver NewPrintQueues (i)\nstrLine = objTextFile.Readline\n&#39;N&#39;importez pas les lignes de commentaire\nSi laissé (strLine, 2) = &quot;\\&quot; alors\nOldPrintQueues (i) = Left (strLine, InStr (strline, &quot;;&quot;) - 1)\nSi VERBOSE = &quot;Y&quot; alors Wscript.Echo &quot;ancien Q est:&quot; &amp; OldPrintQueues (i)\nNewPrintQueues (i) = Mid (strline, InStr (strline, &quot;;&quot;) + 1, Len (strline))\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;nouveau Q est:&quot; &amp; NewPrintQueues (i)\nFin si\nWend"},{"id":"text-17","heading":"Text","content":"objTextFile.Close"},{"id":"text-18","heading":"Text","content":"&#39;3. Enregistrez le nom de l&#39;imprimante par défaut ###"},{"id":"text-19","heading":"Text","content":"strDefaultPrinter = DefaultPrinter\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Le défaut est:&quot; &amp; strDefaultPrinter"},{"id":"text-20","heading":"Text","content":"&#39;4. Requête WMI pour les connexions d&#39;imprimante actuelles ###"},{"id":"text-21","heading":"Text","content":"strComputer = &quot;.&quot;\nDéfinissez objWMIService = GetObject (&quot;winmgmts:&quot; _\n&amp; &quot;impersonationLevel = emprunt d&#39;identité! \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colInstalledPrinters = objWMIService.ExecQuery _\n(&quot;Select * from Win32_Printer&quot;)"},{"id":"text-22","heading":"Text","content":"&#39;5. Boucle principale dans la collection d’imprimantes ###"},{"id":"text-23","heading":"Text","content":"Pour chaque objPrinter dans colInstalledPrinters\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Connexion actuelle:&quot; &amp; objPrinter.Name\nSi laissé (objPrinter.Name, 2) = &quot;\\&quot; Then &#39;ne fonctionne que sur les imprimantes réseau\n&#39;Recherchez l&#39;imprimante correspondante et créez-la\ni = 0 &#39;définit l&#39;indice au début du tableau (prépare la boucle)\nFaire jusqu&#39;à i&gt; UBound (OldPrintQueues)\nSi UCase (objPrinter.Name) = UCase (OldPrintQueues (i)), alors\n&#39;Créer la connexion à la nouvelle imprimante\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Nouvelle connexion:&quot; &amp; NewPrintQueues (i)\nWshNetwork.AddWindowsPrinterConnection NewPrintQueues (i)\nSi UCase (strDefaultPrinter) = UCase (objPrinter.Name) Alors &#39;Ceci est l&#39;imprimante par défaut\n&#39;Définir l&#39;imprimante par défaut\nWshNetwork.SetDefaultPrinter NewPrintQueues (i)\nFin si\n&#39;Supprimer la connexion de l&#39;imprimante\nWshNetwork.RemovePrinterConnection objPrinter.Name\nSi VERBOSE = &quot;Y&quot; Alors Wscript.Echo &quot;Suppression:&quot; &amp; objPrinter.Name\nFin si\ni = i + 1\nBoucle\nFin si &#39;Fin de vérification pour les imprimantes réseau\nNext &#39;Fin de la boucle sur les imprimantes de cet utilisateur"},{"id":"text-24","heading":"Text","content":"Définir WshNetwork = Nothing"},{"id":"text-25","heading":"Text","content":"&#39;-----------------\n&#39; Les fonctions\n&#39;-----------------"},{"id":"text-26","heading":"Text","content":"&#39;Renvoyer l&#39;imprimante par défaut\nFonction DefaultPrinter\nDim strComputer\nRésultat faible"},{"id":"text-27","heading":"Text","content":"strComputer = &quot;.&quot;\nRésultat = &quot;&quot;"},{"id":"text-28","heading":"Text","content":"Définissez objWMIService = GetObject (&quot;winmgmts:&quot; _\n&amp; &quot;impersonationLevel = emprunt d&#39;identité! \\&quot; &amp; strComputer &amp; &quot; root  cimv2&quot;)\nDéfinissez colInstalledPrinters = objWMIService.ExecQuery _\n(&quot;Select * from Win32_Printer&quot;)\nPour chaque objPrinter dans colInstalledPrinters\nSi objPrinter.Default = True alors\nRésultat = nom_imprimante_journal\nFin si\nProchain\nDefaultPrinter = Résultat\nFonction de fin"},{"id":"text-29","heading":"Text","content":"&#39;-----------------"},{"id":"text-30","heading":"Text","content":"&#39;Est-ce que le fichier existe (Booléen)\nFonction FileExist (FileFullPath)\nDim Fso\nSet Fso = CreateObject (&quot;Scripting.FileSystemObject&quot;)\nSi (Fso.FileExists (FileFullPath)) alors\nFileExist = True\nAutre\nFileExist = False\nFin si\nFonction de fin"},{"id":"text-31","heading":"Text","content":"&#39;Basé sur un scénario de: Sébastien Pittet (pittet.org)\n&#39;discuté à http://cwashington.netreach.net/"},{"id":"text-32","heading":"Text","content":"&#39;Creative Commons Attribution-ShareAlike 2.5\n&#39;http://creativecommons.org/licenses/by-sa/2.5/"},{"id":"text-33","heading":"Text","content":"&#39;Simon Sheppard septembre 2005\n&#39;http://ss64.com/vb/syntax-qchange.html"},{"id":"text-34","heading":"Text","content":"Scripts de test\n1. Testez d&#39;abord ce script sur votre ordinateur local.\n2. Testez ce script sur un petit groupe en créant et en exploitant un groupe Active Directory via un script de connexion ou un objet de stratégie de groupe.\n* Assurez-vous que les imprimantes ont été remappées correctement et que l&#39;imprimante par défaut a été préservée.\nImplémenter des scripts\nJ&#39;ai choisi de créer un groupe Active Directory appelé «User-Printer-Migration» et le script d&#39;ouverture de session ne l&#39;exécutait que sur les utilisateurs de ce groupe. J&#39;ai ensuite ajouté les différents groupes d&#39;organisation à différents moments pour déployer la migration par étapes en cas de problème.\nNous avons eu quelques problèmes, mais j’estimerais que le succès total était d’environ 98%. Un utilisateur s&#39;est retrouvé avec toutes les imprimantes de la liste et sur quelques ordinateurs, il n&#39;a rien fait.\nJe considère ces quelques occurrences comme négligeables dans l’image globale en raison du temps gagné.\nComplet et nettoyage\nUne fois que vous avez étendu cela à l&#39;ensemble de votre réseau, il est temps de nettoyer Active Directory et de vous débarrasser définitivement de votre ancien serveur d&#39;impression.\nSurveiller l&#39;utilisation de l&#39;ancien serveur\nRetournez voir l&#39;ancien serveur d&#39;impression. Vous pouvez utiliser le journal des événements sur l&#39;ancien serveur pour voir quand il a reçu les derniers travaux d&#39;impression et sur quelle imprimante. J&#39;ai utilisé PowerShell pour y parvenir.\nVous pouvez activer «Enregistrer les informations du spouleur» dans les «Propriétés du serveur» du spouleur d’impression. Vous obtiendrez une entrée du journal des événements système, source «Imprimer», tapez «Information», ID d’événement 10, à la fin du travail d’impression. Cet événement contiendra des détails sur l&#39;utilisateur, l&#39;imprimante, la taille du travail et le nombre de pages imprimées.\nVoici un script PowerShell que j&#39;ai utilisé pour cela:"},{"id":"text-35","heading":"Text","content":"$ server = read-host &quot;De quel serveur d&#39;impression souhaitez-vous collecter les événements d&#39;impression?&quot;\n$ CSVsave = read-host &quot;Où souhaitez-vous enregistrer la sortie CSV? (Ex d:  prntsrv.csv)&quot;"},{"id":"text-36","heading":"Text","content":"$ StartDate = get-date 20/03/14\n$ EndDate = get-date 04/01/14"},{"id":"text-37","heading":"Text","content":"Get-EventLog -LogName Système -Ordinateur $ serveur -Source print -Après $ StartDate -Before $ EndDate | où $ _. EventID -eq 10 | sélectionnez Source, EventID, MachineName, UserName, Message | export-csv $ CSVsave"},{"id":"text-38","heading":"Text","content":"Re-mappez tous les utilisateurs qui utilisent encore l’ancien serveur et lorsque les tâches ne sont plus envoyées à l’ancien serveur d’impression, il est temps de le mettre hors service.\nMise hors service de l&#39;ancien serveur d&#39;impression\nJe recommande d’arrêter temporairement l’ancien serveur d’impression / serveurs pour voir s’il ya des problèmes. S&#39;il n&#39;y a pas de plaintes, il est temps de:\n&#8211; Arrêtez l&#39;ancien serveur&#8211; Supprimer toutes les entrées AD faisant référence à l&#39;ancien serveur&#8211; Supprimez l&#39;ancien serveur de tout autre système tel que SCCM ou SolarWinds"},{"id":"text-39","heading":"Text","content":"Félicitations!!"},{"id":"text-40","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2019/11/print_mgmt_admintools.png"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/11/08/migration-des-serveurs-dimpression-et-des-mappages-dimpression-utilisateur-serveur-dimpression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/11/08/migration-des-serveurs-dimpression-et-des-mappages-dimpression-utilisateur-serveur-dimpression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/11/08/migration-des-serveurs-dimpression-et-des-mappages-dimpression-utilisateur-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}