Изменить WINS на серверах в домене
Может возникнуть необходимость массовой смены списка WINS-серверов на серверах вашего домена. Воспользуйтесь приведенным ниже VBS скриптом, который выбирает все сервера (кроме контроллеров домена) из заданной OU-шки и меняет в настройках их сетевых подключений список WINS-серверов. Перед использованием скрипта не забудте поменять все значения, помеченные красным цветом, на свои.
------------------------------------------------------------- начало скрипта --------------------------------------------------------------
Const ADS_SCOPE_SUBTREE = 3
Dim c, r1, r2, i
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TF = FSO.CreateTextFile("C:\WINS_change_log.txt", True)
EnumComputers
SUB EnumComputers
Dim UserPCs(10000,1)
on error resume next
strDomain = "domain.ru"
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = "SELECT Name, Location, whenChanged, operatingSystem, primaryGroupID, distinguishedName FROM 'LDAP://OU=Test,OU=Servers,DC=domain,DC=ru' WHERE operatingSystem='Windows*Server*' and primaryGroupID<>'516'"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
i=1
Do Until objRecordSet.EOF
strComputer = objRecordSet.Fields("Name").Value
UserPCs(i,0)=strComputer
UserPCs(i,1)=objRecordSet.Fields("operatingSystem").Value
serverName = objRecordSet.Fields("Name").Value
QueryWINS serverName
TF.Write (UserPCs(i,0))
TF.Write " | "
TF.Write "первичный WINS-сервер: "& r1 & " "
TF.Write " | "
TF.Write "вторичный WINS-сервер: "& r2 & " "
TF.Write " | "
TF.Write "результат: " & c & " "
TF.Write " | "
TF.Write (UserPCs(i,1))
TF.Write vbCrLf
i=i+1
objRecordSet.MoveNext
Loop
END SUB
SUB QueryWINS (strServerName)
on error resume next
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strServerName & "\root\cimv2")
Set colNICConfigs = objWMIService.ExecQuery("SELECT WINSPrimaryServer, WINSSecondaryServer, Description FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True AND DHCPEnabled = false")
for each objNICConfig in colNICConfigs
OldWINS1Configuration = objNICConfig.WINSPrimaryServer
OldWINS2Configuration = objNICConfig.WINSsecondaryServer
if LEN(OldWINS1Configuration)>1 THEN
r1 = OldWINS1Configuration
r2 = OldWINS2Configuration
objNICConfig.SetWINSServer "192.168.1.2","192.168.1.3"
select Case Err.Number
case 0
c = 0
case Else
c = 1
end select
end if
next
END SUB
-------------------------------------------------------------- конец скрипта --------------------------------------------------------------