Scripts de migration de serveur d'impression – Comment coder .NET – Bien choisir son serveur d impression
Mon collègue et moi avons dû migrer de notre serveur d’imprimante 2008 vers un serveur plus récent pour de nombreuses raisons. Nous ne pouvions pas utiliser l’outil de migration de Microsoft car nous avions trop de pilotes pour le fichier cab et le correctif qui nous permettrait d’utiliser un type différent ne s’installerait pas. Cela nous a laissé des scripts comme seule véritable option. Nous avons pu le faire en 3 parties.
Un séjour sans faille
Partie 1 – Pilotes
Nous avons copié les dossiers de «C: WindowsSystem32spooldriversx643» sur le serveur d'impression 2008 dans un dossier temporaire du nouveau, C: TempDrivers dans ce cas.
Un séjour sans faille
# Script Powershell pour l’installation en masse de pilotes. # Créé par: Gabe Maddox - 25/03/2019 # Dernière édition par: Gabe Maddox - 4/9/219 # Variable qui définit le répertoire de travail. Définissez ceci sur le dossier racine avec les pilotes. # C'EST À DIRE. C: Temp est que les pilotes sont en C: TempDrivers $ DRIVERLOCAL = "C: Temp" # Variable qui stocke l'heure / la date actuelle. $ Date = Get-Date # Crée le fichier journal dans le répertoire de travail défini dans $ DRIVERLOCAL. Ecrasera tous les fichiers de log précédents. # Note également l'heure à laquelle le script commence. Write-Output "Start: $ Date" | Out-File -FilePath $ DRIVERLOCALDriver_Install.txt -Encoding Ascii -Force # Ce bloc démarre la Powershell Trannscription pour enregistrer la sortie / les actions du script. $ ErrorActionPreference = "SilentlyContinue" Stop-Transcript | out-null $ ErrorActionPreference = "Continuer" Start-Transcript -path $ DRIVERLOCALDriver_Install.txt -Append # Sélectionne les fichiers du répertoire de travail, y compris les sous-répertoires. Filtre les fichiers afin que seuls les fichiers # contenant le nom complet .inf soient sélectionnés. Filtre également les dossiers contenant le nom .inf dans le nom en utilisant # the where ! Commande $ _. PSIsContainer. Get-ChildItem "$ DRIVERLOCAL" -Recurse -Filter "* .inf" | où ! $ _. PSIsContainer | # Pour la boucle qui exécute le bloc de script sur chaque fichier sélectionné dans la section ci-dessus. ForEach-Object PNPUtil.exe / add-driver $ _. Nom complet / install # Ceci arrête la transcription Powershell. Stop-Transcript # Indique l'heure à laquelle les scripts se terminent. $ Date = Get-Date Write-Output "End: $ Date" | Out-File -FilePath $ DRIVERLOCALDriver_Install.txt -Encoding Ascii -Append
Cela a eu les pilotes dans le magasin de pilotes.
Partie 2 – Enregistrer les imprimantes à migrer
Nous avons utilisé ce script:
https://gallery.technet.microsoft.com/scriptcenter/Save-printer-server-90a75354
saisir toutes les informations sur l’imprimante et la stocker dans un fichier CSV.
Un séjour sans faille
Partie 3 – Réinstaller les imprimantes
Nous avons utilisé ce fichier pour réinstaller les imprimantes:
https://gallery.technet.microsoft.com/scriptcenter/Migrate-printers-script-ab044c5f
Cependant, nous avons rencontré le problème suivant: le script ne voyait pas les pilotes et échouait. Nous avons fini par réinstaller manuellement les pilotes car notre calendrier était serré, mais après quelques recherches / digging / pleurs, j’ai été en mesure de modifier légèrement le script afin qu’il installe les pilotes du magasin de pilotes dans le dossier de spouleur le script pouvait les voir. Avec le recul, c’était bêtement simple, mais être novice au mieux s’agissant de PowerShell, c’était un cauchemar. > __>
Tout ce que j'avais à faire était d'ajouter la ligne suivante à la boucle for du script:
Add-PrinterDriver -Name $ printer.DriverName
Pour que la boucle for ressemble à ceci:
foreach ($ imprimante dans $ imprimantes) # Ajoute un pilote d'imprimante à partir du magasin de pilotes. Add-PrinterDriver -Name $ printer.DriverName $ port = get-printerport -ComputerName $ SourceComputerName
Je suis sûr qu'il existe des moyens meilleurs ou plus élégants de le faire, mais cela a fonctionné pour nous. Certes, cela semble prendre 5 à 10 secondes par imprimante à l’étape 3, c’est quelque chose qui devrait être fait lorsque vous avez suffisamment de temps et que vous n’êtes pas programmé.
Si quelqu'un a un meilleur moyen de le faire ou des conseils sur la façon de l'améliorer, faites-le moi savoir. J'aime toujours être en mesure de rationaliser / améliorer mes manuscrits.
J'espère que cela aidera d'autres personnes lorsqu'elles sont contraintes de mettre à niveau leurs anciens serveurs d'impression comme nous le devions. =)
Commentaires
Laisser un commentaire