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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
'
rep = Msgbox ("Info : A utilisé en mode ligne de commande seulement (cscript.exe ChangeDNSDistant.vbs)." & vbCrLf & "executer cmd en administrateur" & vbCrLf & vbCrLf & "Voulez-vous continuer ?", vbYesNo, "Lancer le script ?")
If (rep = vbYes) then
dim DNS1, DNS2
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oTS = oFS.OpenTextFile("computers.txt")
arrServers = Split( strParamServers, " " )
DNS1 = DNSChoice("DNS n°1 : ")
DNS2 = DNSChoice("DNS n°2 : ")
WScript.echo vbCrlf 'Saut de ligne
Do Until oTS.AtEndOfStream
sComputer = oTS.ReadLine
Showdns sComputer
Do
choice = MakeChoice( "Voulez-vous modifier le DNS n°1 : " & DNS1 & " et le DNS n°2 : " & DNS2 & " (O/N)?" )
Loop until choice ="O" or choice = "N"
if choice = "O" then
WScript.echo vbCrlf 'Saut de ligne
Setdns sComputer,DNS1,DNS2
else
WScript.Quit
end if
WScript.echo( vbCrlf )
Loop
oTS.Close
else
Msgbox "Opération annulé !"
end If
' ############ Quitter le script une fois terminé ############
WScript.Quit
' ############ Sous fonction pour auditer la configuration DNS du poste distant ############
Sub Showdns(strServer)
strComputer = strServer
Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set collection_Network = objWMI.ExecQuery("Select Caption from Win32_NetworkAdapter where AdapterType=""Ethernet 802.3"" and ServiceName<>""VMnetAdapter"" ")
strResult = ""
For each objNetworkCard In collection_Network
Set collection_Nics = objWMI.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where Caption=""" & objNetworkCard.Caption & """")
For each objNIC In collection_Nics
If NOT (IsNull(objNIC.DNSServerSearchOrder) OR IsEmpty(objNIC.DNSServerSearchOrder)) Then
strResult = strResult & " - " & objNIC.Description & " : " & vbCrlf & " "
n = 1
For Each strDns In objNIC.DNSServerSearchOrder
strResult = strResult & vbTab & "DNS n°" & n & " : " & strDns & " "
n = n + 1
Next
strResult = strResult & vbCrlf
End If
Next
Next
WScript.echo strResult
WScript.echo vbCrlf
End Sub
' ############ Sous fonction pour modifier la configuration DNS du poste distant ############
Sub Setdns( strServer, DNS1, DNS2)
strWinMgmt = "winmgmts:{impersonationLevel=impersonate}!//"& strServer &""
Set objNICs = GetObject( strWinMgmt ).InstancesOf( "Win32_NetworkAdapterConfiguration" )
WScript.echo "Changement des DNS pour : "
For Each objNIC In objNICs
If objNIC.IPEnabled Then
objNIC.SetDNSServerSearchOrder Array(DNS1,DNS2)
WScript.echo " - " & objNIC.Description & vbCrlf
End If
Next
WScript.echo vbCrlf
End Sub
' ############ Fonction pour afficher du texte sur le promt : Yes/No ############
Function MakeChoice(strMsg)
WScript.StdOut.Write(strMsg)
WScript.StdIn.Read(0)
strChoice = WScript.StdIn.ReadLine()
MakeChoice = UCase( Left( strChoice, 1 ) )
End Function
' ############ Fonction pour afficher du texte sur le promt ############
Function DNSChoice(strMsg)
WScript.StdOut.Write(strMsg)
WScript.StdIn.Read(0)
DNSChoice = WScript.StdIn.ReadLine()
End Function |
Partager