|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Поиск и замена индивидуальных данных в реестре |
|
VBS/WSH/JS - [решено] Поиск и замена индивидуальных данных в реестре
|
Новый участник Сообщения: 15 |
Профиль | Отправить 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
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать amel27, ОГРОМНОЕ СПАСИБО.
|
Отправлено: 11:51, 14-03-2010 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|