Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Поиск и замена индивидуальных данных в реестре

Ответить
Настройки темы
VBS/WSH/JS - [решено] Поиск и замена индивидуальных данных в реестре

Новый участник


Сообщения: 15
Благодарности: 2

Профиль | Отправить PM | Цитировать


Помогите доработать скрипт или написать новый. Задача такова: XP3, существует несколько сетевых адаптеров, не обязательно подключённых к сети, необходимо найти все сетевые подключения ("Подключение по локальной сети" и "Подключение по локальной сети 2") и переименовать их по заранее введённым в скрипт именам. Включить "При подключении вывести значок в области уведомлений" и "Уведомлять при ограниченном или отсутствующем подключении". Приведённый скрипт делает всё, кроме переименования. Как изменить? Всё должно проходить без запросов.

Код: Выделить весь код
' use "." for local computer 
sComputer = "." 

'Constants for WMI StdRegProv 
Const HKCR = &H80000000 
Const HKCU = &H80000001 
Const HKLM = &H80000002 

Const NetBase = "SYSTEM\CurrentControlSet\Control\Network\" 

On Error Resume Next 

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sComputer & "\root\default:StdRegProv") 

' Finding the right place in registry is not so easy 
' You must find the SettingID for the correct network adapter 

' Get adapter collection 
Set oAdapters = GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True") 

' Get all subkeys under NetBase in an array 
iRC = oReg.EnumKey(HKLM, NetBase, aRegKeys) 

' Поиск адаптера с именем подключения "Подключение по локальной сети" 
' или с именем "Подключение по локальной сети 2" 
If (Err.Number = 0) And (iRC = 0) Then 
On Error Goto 0 
bAdapterFound = False 
For Each oAdapter In oAdapters 
sSettingID = oAdapter.SettingID 
' Loop through all registry keys 
For i = 0 To Ubound(aRegKeys) 
sKeyName = NetBase & aRegKeys(i) & "\" & sSettingID & "\Connection" 
oReg.GetStringValue HKLM, sKeyName, "Name", sValue 
If sValue = "Подключение по локальной сети" or sValue = "Подключение по локальной сети 2" Then 
'' bAdapterFound = True 
' WScript.Echo "Updating this setting id: " & sSettingID 
' WScript.Echo "Registry path: " & sKeyName 
' Now we can get to the network icon setting in registry 
oReg.SetDWORDValue HKLM, sKeyName, "ShowIcon", 1 

' Если надо то можно еще тамже снять галочку с "Уведомлять при ограниченном или отсутствующем подключении"
' нужно добавить после строки (или перед-не важно) oReg.SetDWORDValue HKLM, sKeyName, "ShowIcon", 1
' строку oReg.SetDWORDValue HKLM, sKeyName, "IpCheckingEnabled", 0

'' Exit For 
End If 
Next 
If bAdapterFound Then 
Exit For 
End If 
Next 

' WScript.Echo "Finished, you must log off and on to see the change" 

Else 
WScript.Echo "Error in WMI registry parsing!" 
End If

Отправлено: 19:52, 12-03-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Const HKLM = &H80000002 
Const NetBase = "SYSTEM\CurrentControlSet\Control\Network\" 

Set oAdapters = GetObject("winmgmts:").ExecQuery("SELECT * " & _
  "FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True") 
Set oReg = GetObject("winmgmts:\\.\root\default:StdRegProv") 
iRC = oReg.EnumKey(HKLM, NetBase, aRegKeys) 

For Each oAdapter In oAdapters
  For Each sKey In aRegKeys
    sKeyName = NetBase & sKey &"\"& oAdapter.SettingID &"\Connection"
    oReg.GetStringValue HKLM, sKeyName, "Name", sValue

    If sValue = "Подключение по локальной сети" Then
      oReg.SetStringValue HKLM, sKeyName, "Name", "LAN1" 
      oReg.SetDWORDValue  HKLM, sKeyName, "ShowIcon", 1 
      oReg.SetDWORDValue  HKLM, sKeyName, "IpCheckingEnabled", 1
    End If
    If sValue = "Подключение по локальной сети 3" Then 
      oReg.SetStringValue HKLM, sKeyName, "Name", "LAN3" 
      oReg.SetDWORDValue  HKLM, sKeyName, "ShowIcon", 1 
      oReg.SetDWORDValue  HKLM, sKeyName, "IpCheckingEnabled", 1
    End If 
  Next 
Next
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:45, 14-03-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 15
Благодарности: 2

Профиль | Отправить PM | Цитировать


amel27, ОГРОМНОЕ СПАСИБО.

Отправлено: 11:51, 14-03-2010 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Поиск и замена индивидуальных данных в реестре

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] поиск в реестре и сохранение результата в *.Reg sushnyak Скриптовые языки администрирования Windows 2 30-04-2024 22:50
Установка - [решено] Замена Windows XP HOME на Pro без потери данных ***De7c5*** Microsoft Windows 2000/XP 7 22-03-2013 17:16
export-reg2inf (как узнать тип данных в реестре) semiono AutoIt 1 31-12-2009 00:34
C/C++ - [решено] Поиск данных в файле Luzuk Программирование и базы данных 5 05-11-2008 04:04
Search & Replace (Поиск и Замена) pingUIN Хочу все знать 8 31-12-2007 10:57




 
Переход