From 1ea5c2eaec6835daecb7329fe6cdc25a2de43489 Mon Sep 17 00:00:00 2001 From: Nicolas Simond Date: Thu, 10 Aug 2023 11:55:59 +0000 Subject: [PATCH] docs: create vbscript/migration-imprimante --- vbscript/migration-imprimante.md | 61 ++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 vbscript/migration-imprimante.md diff --git a/vbscript/migration-imprimante.md b/vbscript/migration-imprimante.md new file mode 100644 index 0000000..00acda9 --- /dev/null +++ b/vbscript/migration-imprimante.md @@ -0,0 +1,61 @@ +--- +title: Migration d'imprimantes vers un autre serveur +description: Migration d'imprimantes vers un autre serveur +published: true +date: 2023-08-10T11:55:55.618Z +tags: active directory, vbscript +editor: markdown +dateCreated: 2023-08-10T11:55:55.618Z +--- + +# Introduction + +Le but de ce script est de migrer les imprimantes d'un serveur à l'autre sur des postes utilisateurs après une migration du serveur d'impression. + +# Script + + +```vbnet +strOldServer = "srvdc01" +strNewServer = "chgefs01" + +strComputer = "." +Set WSHNetwork = CreateObject("WScript.Network") +Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") +Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer") + +strOldServer = prepServer(strOldServer) +strNewServer = prepServer(strNewServer) + +For Each objPrinter in colInstalledPrinters + strName = objPrinter.Name + iPrinterLocation = InStr(UCase(objPrinter.Name),UCase(strOldServer)) + If iPrinterLocation > 0 then + strPrinter = strNewServer & Right(strName, Len(strName) - Len(strOldServer)) + objPrinter.Delete_ + WSHNetwork.AddWindowsPrinterConnection strPrinter + If objPrinter.Default = True Then + WSHNetwork.SetDefaultPrinter strPrinter + End If + End If +Next + + +Function prepServer(strServer) + If Left(strServer, 2) <> "\\" then + strServer = "\\" & strServer + End If + If Right(strServer, 1) <> "\" then + strServer = strServer & "\" + End If + prepServer = strServer +End Function +``` + +# Utilisation + +Appelez le script depuis les scripts de logon habituels en ajoutant cette ligne : + +```batch +cscript //nologo \\chgefs01.domain.local\sysvol\domain.local\scripts\migrate-printers1.vbs +``` \ No newline at end of file