WINS - définir ou changer à l'aide du VBS
Bonsoir,
Je souhaite définir ou changer le wins primaire et/ou secondaire à l'aide d'un script.
Mon script fonctionne quand il s'agit de rajouter un wins secondaire quand il y a déjà un wins primaire.
Mais il ne fonctionne pas quand il n'y a pas de wins déjà présent et donc créer un wins primaire, cela me retourne
l'erreur 68, paramètre invalide.
voilà le script
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
' VB Script Document
Option Explicit
Dim i
Dim imprimante_port_valide
Dim IPdebut
Dim IPfin
Dim ip_masque
Dim ip_point
Dim message
Dim winsmemoire
Dim winsprimaire
Dim winssecondaire
Dim winsserver
Dim objAdapter
Dim objAdapters
Dim objWMIService
'************************************ Attention a l'adresse IP des machines ( 10.xxx.xxx.xxx ou 192.xxx.xxx.xxx ) ************************************
ip_masque = "10."
ip_masque = "192."
ip_point = "."
message = ""
winsmemoire = ""
winsprimaire = "10.20.30.40"
winssecondaire = "10.10.10.10"
winsserver = 0
Set objAdapter = Nothing
Set objAdapters = Nothing
Set objWMIService = Nothing
Set objWMIService = GetObject("winmgmts:" & "!\\" & ip_point & "\root\cimv2")
Set objAdapters = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objAdapter in objAdapters
IPdebut = LBound(objAdapter.IPAddress)
IPfin = UBound(objAdapter.IPAddress)
For i = IPdebut To IPfin
imprimante_port_valide = InStr(1 , objAdapter.IPAddress(i) , ip_masque)
If imprimante_port_valide > 0 Then
WScript.Echo "Primary Server : * " & objAdapter.WINSPrimaryServer & " *"
WScript.Echo "Secondary Server : * " & objAdapter.WINSSecondaryServer & " *"
If (objAdapter.WINSPrimaryServer) = "" Then
winsserver = objAdapter.SetWINSServer(winsprimaire,winssecondaire)
Else
winsmemoire = objAdapter.WINSPrimaryServer
winsserver = objAdapter.SetWINSServer(winsmemoire,winsprimaire)
End If
' si la variable winsserver = 0, le changement a été fait, pas la peine de rebooter
' si la variable winsserver = 1, le changement a été fait, mais il faut rebooter
' si la variable winsserver >= 2, le changement n'a pas été fait, voir la documentation de microsoft sur internet
' exemple : la valeur 91 comme erreur indique que l'acces est refusé ( acces denied )
message = message & "utilise l'adresse IP " & objAdapter.IPAddress(i) & vbCrLf & winsserver
End If
Next
Next
Wscript.Echo message
Set objAdapter = Nothing
Set objAdapters = Nothing
Set objWMIService = Nothing |
merci pour votre aide
EDIT : je suis sur windows 10 pro 64 bits