|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Поиск по значениям реестра |
|
|
PowerShell - [решено] Поиск по значениям реестра
|
Пользователь Сообщения: 77 |
Добрый день, всем любителям powershell`a.
Встала задача поиска по значениям реестра. Если более детально, то известен примерный путь где нужно искать и само значение параметра (т.к. имя параметра может быть разное и лежать в разных подразделах) З.Ы. ищем в реестре надстройки Excel, т.к. версии excel разные и само имя надстройки (open, open1, open2, open3 и т.д.) может отличатся необходимо искать именно по значению реестра данный запрос находит все разделы где находит Excel, а как правильно проводить поиск именно по значениям реестра!? необходимо найти значение и изменить его. |
|
Отправлено: 05:53, 26-01-2015 |
![]() Старожил Сообщения: 349
|
Цитата dosperados:
Скрытый текст
Получение всех подразделов раздела реестра
Скрытый текст
Показать все элементы, непосредственно содержащиеся в разделе реестра, можно при помощи командлета Get-ChildItem. Для отображения скрытых и системных элементов добавьте необязательный параметр Force. Например, эта команда отображает элементы, непосредственно расположенные на диске HKCU: Windows PowerShell, который соответствует кусту HKEY_CURRENT_USER:
PS> Get-ChildItem - Hive: Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER SKC VC Name Property --- -- ---- -------- 2 0 AppEvents {} 7 33 Console {ColorTable00, ColorTable01, ColorTab... 25 1 Control Panel {Opened} 0 5 Environment {APR_ICONV_PATH, INCLUDE, LIB, TEMP...} 1 7 Identities {Last Username, Last User ... 4 0 Keyboard Layout {} ... Это разделы верхнего уровня, которые можно видеть под разделом HKEY_CURRENT_USER в редакторе реестра (Regedit.exe). Указать этот путь в реестре можно также, задав имя поставщика реестра с последующей строкой ::. Полное имя поставщика реестра выглядит как Microsoft.PowerShell.Core\Registry, но может быть сокращено до Registry. Любая из следующих команд выведет содержимое элементов, непосредственно расположенных под разделом HKCU: Get-ChildItem -Path Registry::HKEY_CURRENT_USER Get-ChildItem -Path Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER Get-ChildItem -Path Registry::HKCU Get-ChildItem -Path Microsoft.PowerShell.Core\Registry::HKCU Get-ChildItem HKCU: Эти команды выводят только элементы, содержащиеся на диске непосредственно, так же как и команда DIR оболочки Cmd.exe и команда ls оболочки UNIX. Для показа вложенных элементов необходимо указать параметр Recurse. Для вывода всех подразделов раздела HKCU используется следующая команда (эта операция может занять очень продолжительное время): Get-ChildItem -Path hkcu:\ -Recurse Командлет Get-ChildItem позволяет выполнять сложные операции фильтрации при помощи параметров Path, Filter, Include и Exclude, но обычно с этими параметрами осуществляется лишь фильтрация по имени. Сложную фильтрацию на основе других свойств элементов можно выполнить при помощи командлета Where-Object. Следующая команда находит все подразделы раздела HKCU:\Software, у которых не более одного подраздела и ровно четыре значения: Get-ChildItem -Path HKCU:\Software -Recurse | Where-Object -FilterScript {($_.SubKeyCount -le 1) -and ($_.ValueCount -eq 4) } |
|
Последний раз редактировалось IVa_, 26-01-2015 в 06:24. Причина: Ошибки Отправлено: 06:23, 26-01-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 24
|
Профиль | Сайт | Отправить PM | Цитировать Приведите пример, какое значение на что поменять?
|
Отправлено: 06:26, 26-01-2015 | #3 |
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать Конкретно на моем ПК это раздел HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options
а в нем находятся параметры OPEN, OPEN1, OPEN2, OPEN3 в параметре OPEN3 находится значение, которое нужно поменять "c:\gal810\exe\XLS\F_XlsRep\GalRepBuilder.XLA" тип:REG_SZ на "c:\новый_путь_до_XLA" Цитата IVa_:
|
|
Отправлено: 12:00, 26-01-2015 | #4 |
Ветеран Сообщения: 1758
|
|
|
Отправлено: 12:27, 26-01-2015 | #5 |
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать Foreigner, прочитай первый пост, я писал что главное найти путь до параметра по значению параметра т.к. путь у всех разный...
|
Отправлено: 12:33, 26-01-2015 | #6 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Get-ChildItem "HKCU:\Software\Microsoft\Office\" -Recurse | ForEach-Object { $obj = Get-ItemProperty $_.pspath $prop = $obj | Get-Member -Type NoteProperty -ErrorAction SilentlyContinue | Foreach {$_.Name} $prop | Where {$obj.$_ -match "GalRepBuilder.XLA"} | Foreach { $obj | Set-ItemProperty -Name $_ "C:\PATH" } } |
Отправлено: 13:33, 26-01-2015 | #7 |
Ветеран Сообщения: 20133
|
Профиль | Отправить PM | Цитировать dosperados, вам готовый вариант RegReplace ни как не подходит?
|
------- Отправлено: 13:36, 26-01-2015 | #8 |
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать Цитата yurfed:
|
|
Отправлено: 13:50, 26-01-2015 | #9 |
Ветеран Сообщения: 20133
|
Профиль | Отправить PM | Цитировать Цитата dosperados:
Цитата dosperados:
|
||
------- Отправлено: 13:58, 26-01-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Поиск строки в значени ключа реестра. | user_123 | Скриптовые языки администрирования Windows | 14 | 27-11-2014 18:07 | |
Стоимость жёстких дисков постепенно приближается к докризисным значениям | OSZone News | Новости информационных технологий | 0 | 27-01-2013 18:30 | |
VBS/WSH/JS - Поиск ключей реестра, созданных программой. | MKN | Скриптовые языки администрирования Windows | 5 | 21-02-2012 17:20 | |
Поиск слова в txt затем поиск по маске "(383)" и вывод инфы | rustoss | AutoIt | 10 | 29-09-2011 15:27 | |
Система - поиск программы по сравнению реестра | seman | Программное обеспечение Windows | 7 | 30-06-2009 20:38 |
|