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 : Sélectionner tout - Visualiser dans une fenêtre à part
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