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

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

Ответить
Настройки темы
PowerShell - [решено] Поиск по значениям реестра

Аватара для dosperados

Пользователь


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

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


Добрый день, всем любителям powershell`a.
Встала задача поиска по значениям реестра.
Если более детально, то известен примерный путь где нужно искать и само значение параметра (т.к. имя параметра может быть разное и лежать в разных подразделах)
З.Ы. ищем в реестре надстройки Excel, т.к. версии excel разные и само имя надстройки (open, open1, open2, open3 и т.д.) может отличатся необходимо искать именно по значению реестра

Код: Выделить весь код
$SKey = Get-ChildItem HKCU:\Software\Microsoft\Office -recurse -Include excel
данный запрос находит все разделы где находит Excel, а как правильно проводить поиск именно по значениям реестра!?
необходимо найти значение и изменить его.

Отправлено: 05:53, 26-01-2015

 

Аватара для IVa_

Старожил


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

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


Цитата dosperados:
Поиск именно по значениям реестр »
Скрытый текст
Получение всех подразделов раздела реестра

Скрытый текст
Показать все элементы, непосредственно содержащиеся в разделе реестра, можно при помощи командлета Get-ChildItem. Для отображения скрытых и системных элементов добавьте необязательный параметр Force. Например, эта команда отображает элементы, непосредственно расположенные на диске HKCU: Windows PowerShell, который соответствует кусту HKEY_CURRENT_USER:

PS> Get-ChildItem -Path hkcu:\


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
Благодарности: 0

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


Приведите пример, какое значение на что поменять?

Отправлено: 06:26, 26-01-2015 | #3


Аватара для dosperados

Пользователь


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

Профиль | Отправить 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_:
Командлет Get-ChildItem позволяет выполнять сложные операции фильтрации при помощи параметров Path »
Спасибо за ответ, но как вы заметили я и пользовался этим командлетом, если бы понимал как поставить фильтр по конкретному значению, то не стал бы писать этот пост..

Отправлено: 12:00, 26-01-2015 | #4


Ветеран


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

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


dosperados,
Код: Выделить весь код
set-itemproperty "hkcu:\Software\Microsoft\Office\14.0\Excel\Options" "OPEN3" "C:\PATH\TO"

Отправлено: 12:27, 26-01-2015 | #5


Аватара для dosperados

Пользователь


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

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


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

Отправлено: 12:33, 26-01-2015 | #6


Ветеран


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

Профиль | Отправить 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


Аватара для yurfed

Ветеран


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

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


dosperados, вам готовый вариант RegReplace ни как не подходит?

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия

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

Отправлено: 13:36, 26-01-2015 | #8


Аватара для dosperados

Пользователь


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

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


Цитата yurfed:
вам готовый вариант RegReplace ни как не подходит? »
использовать "левый" сторонний софт неизвестно кем и для чего написанный, вместо "мощнейшего" инструмента администрирования - powershell... нет, не подходит!!!

Отправлено: 13:50, 26-01-2015 | #9


Аватара для yurfed

Ветеран


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

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


Цитата dosperados:
использовать "левый" сторонний софт неизвестно кем и для чего написанный, вместо "мощнейшего" инструмента администрирования - powershell... нет, не подходит!!! »
А ещё кирпичи на голову с крыш падают. Поэтому лучше дома сидеть. Правда и люстра может упасть.
Цитата dosperados:
"левый" сторонний »
У вас "левый" подход и видимо паранойя преследования. Укутайтесь матрасом и ляжьте под кровать. Компьютер выкиньте. Мало ли какие вирусы.

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия

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

Отправлено: 13:58, 26-01-2015 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход