Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3112 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Pb Script vbs pour basculer server impression

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pb Script vbs pour basculer server impression

n°1698501
axxel88
Posté le 06-03-2008 à 13:50:49  profilanswer
 

Bonjour !
 
Je suis actuellement en stage dans un centre hospitalier et voila le probleme ils ont un serveur d imprimante qu il veulent formater car il a de gros soucis, donc j ai reussi grace a printmigrator 3.1 a faire un backup sur un autre PC de toute les imprimantes reseau et en cherchant sur le net j ai trouver un script qui permet de basculer sur le serveur backup si jamais le serveur d impression tombe en panne sans que les utilisateurs ne voit quoi que ce soit
 
Le serveur d impression tourne sous 2000 Server donc la technique de Clustering ne peut pas fonctionner apparement.
 
voici la souce : http://www.iwannaclick.org/index.p [...] &Itemid=32
 
et voici le script en question :
 

Citation :

'==========================================================================
'
' NAME: monscript.vbs
'
' AUTHOR: sharky
' DATE  : 21.02.2007
'
' COMMENT: Ce script a pour but de balancer automatiquement les imprimantes
'           connectées à l'utilisation au serveur backup d'impression et retour
'
'==========================================================================
On Error Resume Next
DefaultPrintServer = "DATA1"                        'Nom netbios du serveur par défaut
BackupPrintServer = "PRINTSERV02"                        'Nom netbios du serveur d'impression backup
Set WSHShell = WScript.CreateObject("WScript.Shell" )
UTemp = WSHShell.ExpandEnvironmentStrings("%TEMP%" )        'Définition de la zone de travail temporaire pour le script
'Contrôle du serveur d'impression par défaut présent
Set objShell = CreateObject("WScript.Shell" )
Set objExecObject = WSHShell.Exec _
("%comspec% /c ping -n 2 -w 800 "&DefaultPrintServer&"" )'Ping le serveur par défaut, il existe une autre possibilité mais uniquement XP/2003
Do While Not objExecObject.StdOut.AtEndOfStream
strText = objExecObject.StdOut.ReadAll()
If Instr(strText, "TTL=" ) => 1 Then                        'Si dans le résultat du PING il y a au moins 1 TTL= OK
'Si serveur d'impression par défaut est atteignable
OLDSERVER = "\\" & BackupPrintServer
NEWSERVER = "\\" & DefaultPrintServer
Else
'Si serveur d'impression par défaut n'est pas atteignable
OLDSERVER = "\\" & DefaultPrintServer
NEWSERVER = "\\" & BackupPrintServer
End If
Loop
Const ForReading = 1
Const ForWriting = 2
PrinterList = UTemp&"PrinterList.txt"
const HKEY_CURRENT_USER = &H80000001
'1 crée la liste des imprimantes actuelle
ListPrinters()
'2 Ajoute les mêmes imprimantes de liste mais de NEWSERVER
AddPrinters()
'3 redéfinis l'imprimante par défaut
SetDefaultPrinter()
'4 supprime les anciennes imprimantes
DeletePrinters()
'5 Supprime le fichier list
Set objFSO = CreateObject("Scripting.FileSystemObject" )
objFSO.DeleteFile(PrinterList)
WScript.Quit
'**************************************************************************************
Sub ListPrinters()
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objDestinationFile = objFSO.OpenTextFile(PrinterList, ForWriting, true)  Set WshNetwork = WScript.CreateObject("WScript.Network" )
Set oPrinters = WshNetwork.EnumPrinterConnections  For i = 0 to oPrinters.Count - 1 Step 2
Printer = oPrinters.Item(i+1)
If UCase(Left(Printer,Len(OLDSERVER)))=OLDSERVER Then
PrinterName=Replace(UCase(Printer),OLDSERVER & "","" )
objDestinationFile.Writeline PrinterName
End If
Next
objDestinationFile.Close
End Sub
'**************************************************************************************
Sub AddPrinters()
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objSourceFile = objFSO.OpenTextFile(PrinterList, ForReading)  Set WshNetwork = WScript.CreateObject("WScript.Network" )  Do Until objSourceFile.AtEndOfStream
PrinterName = objSourceFile.ReadLine
NewPrinter = NEWSERVER & "" & PrinterName
WshNetwork.AddWindowsPrinterConnection NewPrinter
Loop
objSourceFile.Close
End Sub
'**************************************************************************************
Sub SetDefaultPrinter()
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "rootdefault:StdRegProv" )  strKeyPath = "SoftwareMicrosoftWindows NTCurrentVersionWindows"
strValueName = "Device"
oReg.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue  If UCase(Left(strValue,Len(OLDSERVER)))=OLDSERVER Then
PrinterName=Replace(UCase(strValue),OLDSERVER & "","" )
Name = Split(PrinterName,"," )
strKeyPath = "SoftwareMicrosoftWindows NTCurrentVersionDevices"
strDeviceName = NEWSERVER & "" & Name(0)
oReg.GetStringValue HKEY_CURRENT_USER,strKeyPath,strDeviceName,SpoolName  strKeyPath = "SoftwareMicrosoftWindows NTCurrentVersionWindows"
strValueName = "Device"
strValue = NEWSERVER & "" & Name(0) & "," & SpoolName
oReg.SetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue
End If
End Sub
'**************************************************************************************
Sub DeletePrinters()
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objSourceFile = objFSO.OpenTextFile(PrinterList, ForReading)  strComputer = "."  Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "rootdefault:StdRegProv" )  Do Until objSourceFile.AtEndOfStream
PrinterName = objSourceFile.ReadLine  strServer = Replace(OLDSERVER,"\\","" )
strKeyPath = "PrintersConnections,," & strServer & "," & PrinterName
oReg.DeleteKey HKEY_CURRENT_USER, strKeyPath  strKeyPath = "SoftwareMicrosoftWindows NTCurrentVersionDevices"
strDeviceName = OLDSERVER & "" & PrinterName
oReg.DeleteValue HKEY_CURRENT_USER, strKeyPath,strDeviceName  strKeyPath = "SoftwareMicrosoftWindows NTCurrentVersionPrinterPorts"
strPrinterPortName = OLDSERVER & "" & PrinterName
oReg.DeleteValue HKEY_CURRENT_USER, strKeyPath,strPrinterPortName
Loop
objSourceFile.Close
End Sub


 
PS : j ai telecharger VBFactory et fait un debogage donc les erreurs qui se generai etait je pense un probleme de retour a la ligne mais il reste d autre erreur et je cale sur ca etabnt debutant dans ce domaine.
 
Si je n ai pas ete assez clair sur certains point dites le moi je vous renseignerai
 
Merci d avance pour vos reponses.


Message édité par axxel88 le 07-03-2008 à 15:07:24
mood
Publicité
Posté le 06-03-2008 à 13:50:49  profilanswer
 

n°1698502
freds45
Posté le 06-03-2008 à 19:28:14  profilanswer
 

Ce sujet a été déplacé de la catégorie Windows & Software vers la categorie Programmation par Freds45


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°1698653
axxel88
Posté le 07-03-2008 à 09:11:13  profilanswer
 

Excusez moi j avais poster dans windows car un sujet ressemblant avait etait dans cette rubrique.

n°1700531
axxel88
Posté le 11-03-2008 à 14:38:05  profilanswer
 

je suis plus en stage donc ce n est plus tres important mais si vous avez quand meme la reponse je viendrai de temps en temps voir si quelqu un a repondu

n°1713077
sharkyiwc
Posté le 05-04-2008 à 10:53:46  profilanswer
 

as-tu changer les 2 variables ??
DefaultPrintServer = "DATA1"                        'Nom netbios du serveur par défaut
BackupPrintServer = "PRINTSERV02"                        'Nom netbios du serveur d'impression backup


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Pb Script vbs pour basculer server impression

 

Sujets relatifs
C# -- Problème d'éxécution de requête sur la base SQL serverAide Script PHP
réécriture d'1 script javascript de control d'1 balise html<div en php[PHP] Après update serveur. Script de log ne fonctionne plus
Problème connexion serveur sql serverPHP : SMTP server response: 501 Bad address syntax
[VBS] Pause avant que le script commencescript de copie de contenu d'un cdrom sur le bureau
Chmod dans script de copie de répertoireScript PHP / upload
Plus de sujets relatifs à : Pb Script vbs pour basculer server impression


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR