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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удаление значения реестра по типу

Ответить
Настройки темы
CMD/BAT - Удаление значения реестра по типу

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


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

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


Изображения
Тип файла: png regedit_2018-04-07_15-41-30.png
(59.6 Kb, 12 просмотров)
Всем привет

Есть путь: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
В нем есть много параметров, внесенных вручную(см. скриншот - синие), нужно с помощью батника определить по этому пути все регедиты и удалить их если в них выставлен тип REG_DWORD

У самого не хватает опыта и понимания CMD скриптинга на такое. Заранее огромное спасибо!

Отправлено: 15:52, 07-04-2018

 

Ветеран


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

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


Цитата Darkysha:
определить по этому пути все регедиты »
Чего-чего определить?

Отправлено: 16:02, 07-04-2018 | #2



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

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


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


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

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


Iska, регедит=параметр реестра, так принято называть, он же рег, оно же "параметр".

Отправлено: 18:24, 07-04-2018 | #3


Ветеран


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

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


Цитата Darkysha:
Iska, регедит=параметр реестра, так принято называть, »
Darkysha, впервые об этом «так принято» слышу.

Пакетные файлы — не лучший способ, удобнее и проще использовать WSH/PoSH. Определить можно так:
WSH
Код: Выделить весь код
Option Explicit

Const HKEY_LOCAL_MACHINE = &H80000002
Const REG_DWORD = 4


Dim strKeyPath

Dim arrValueNames, arrValueTypes

Dim i
Dim lngValue


strKeyPath = "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"

With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\default").Get("StdRegProv")
	If .EnumValues(HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes) = 0 Then
		For i = LBound(arrValueNames) To UBound(arrValueNames)
			If arrValueTypes(i) = REG_DWORD Then
				If .GetDWORDValue(HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames(i), lngValue) = 0 Then
					WScript.Echo "0x" & Right(String(8, "0") & Hex(lngValue), 8), arrValueNames(i)
				Else
					WScript.Echo "An error occured when reading value of [HKEY_LOCAL_MACHINE\" & strKeyPath & "\" & arrValueNames(i) & "]."
				End If
			End If
		Next
	Else
		WScript.Echo "An error occured when reading [HKEY_LOCAL_MACHINE\" & strKeyPath & "]."
		WScript.Quit 1
	End If
End With

WScript.Quit 0
PowerShell
Код: Выделить весь код
$RegKey = Get-ItemProperty 'Registry::HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'

$RegKey.PSObject.Properties | ForEach-Object -Process {
    if($_.TypeNameOfValue -eq 'System.Int32') {
        "0x{0:X8}`t{1, -30}" -f $_.Value, $_.Name
    }
}

По поводу же «всё синее есть внесённое вручную и потому подлежит удалению» — ну, не знаю, не знаю. Сделать-то можно, но нужно ли?!
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:50, 07-04-2018 | #4

x0r x0r вне форума

Забанен


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

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


RTFM!
Reg-файлы могут как добавлять , так и удалять значения и ключи в реестре Виндовс. Для удаления надобно всего-то добавить знак "-" (минус) после "="
Перечисли нужные тебе имена параметров в точно такомже REG-файле, только заместо парамтров повтыкай - и точно также вноси\удаляй нужные тебе значения\разделы. Никаких доп. скриптов не нужно.
Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]
"DeadGWDetectDefault"=-
"DontAddDefaultGatewayDefault"=-
"EnableWsd"=-
"QualifyingDestinationThreshold"=-
"TcpWindowSize"=-
... ну и т.д.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:12, 07-04-2018 | #5


Ветеран


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

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


Цитата x0r:
Перечисли нужные тебе имена параметров »
x0r, полагаю, вопрос состоит именно в определении перечня этих имён .

Отправлено: 20:32, 07-04-2018 | #6


Аватара для Казбек

Ветеран


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

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


Цитата Darkysha:
регедит=параметр реестра, так принято называть, он же рег, оно же "параметр". »
Ну, может это так принято у бабушек на скамейке. А у Майкрософт есть официальная терминология, которую на русском языке прекрасно изложил Вадим в своей статье.

-------
Кто реку перешел, тому росы бояться ни к чему

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:46, 07-04-2018 | #7

x0r x0r вне форума

Забанен


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

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


Iska, ну ты предложил динамит. Шарахнем всех! Что в общем то, явл. точным ответом на вопрос TS. Да.
Я предложил точечные поражения, конкретных целей. Точно известных, явных, с минимальным отклонением.
Пущай выбираит

Отправлено: 00:48, 08-04-2018 | #8


Ветеран


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

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


Цитата x0r:
Iska, ну ты предложил динамит. Шарахнем всех! »
Я предложил?!!

Отправлено: 07:05, 08-04-2018 | #9


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Определить-то несложно:
Код: Выделить весь код
reg query HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /t REG_DWORD
Только выдаваемый результат - не объекты, и с ними ничего не сделаешь. В Пауэршелле Get-ItemProperty выдаёт кое-что, но типа ключей от него добиться невозможно. В интернете есть разные костыли, реализующие функционал определения типа ключей, но как передать данные для команды удаления - лично я так и не понял.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 20:16, 08-04-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удаление значения реестра по типу

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Изменение значения ключа реестра по правилу. heretique Скриптовые языки администрирования Windows 9 29-03-2013 10:00
CMD/BAT - [решено] Удаление значения параме реестра KPOTOC Скриптовые языки администрирования Windows 6 07-02-2012 21:07
VBS/WSH/JS - удаление разделов реестра по маске (?) foxbat Скриптовые языки администрирования Windows 10 03-02-2012 08:40
CMD/BAT - [решено] .bat: удаление значения реестра после отбора Lightman123 Скриптовые языки администрирования Windows 25 17-08-2011 13:54
CMD/BAT - [решено] Удаление файлов по заданному типу -Marshall- Скриптовые языки администрирования Windows 5 21-12-2010 00:22




 
Переход