PowerShell - [решено] Поиск по значениям реестра

Аватара пользователя
dosperados

Re: PowerShell - [решено] Поиск по значениям реестра

Сообщение dosperados »

yurfed, Спасибо за помощь, но привычка пользоваться штатными средствами у меня с детства.

При том лучше один раз разобраться и решать подобные проблемы в дальнейшем маленькими скриптами, которые я могу централизовано запускать.
Аватара пользователя
yurfed

Re: PowerShell - [решено] Поиск по значениям реестра

Сообщение yurfed »

dosperados, Ваше право. Только хотелось подсказать готовый и удобный вариант. Лет 10 этой прожкой пользуюсь. Проблем небыло.

Ещё раз, право ваше.

ЗЫ Я не думаю что ассемблер тупее чем powershell. Если не ошибаюсь, написано именно на ассемблере + прикрученный GUI.
Аватара пользователя
yurfed

Re: PowerShell - [решено] Поиск по значениям реестра

Сообщение yurfed »

Цитата Kazun:



Get-ChildItem "HKCU:\Software\Microsoft\Office\" -Recurse -Include excel | ForEach-Object { # я добавил ограничение -Include excel

$obj = Get-ItemProperty $_.pspath

$prop = $obj | Get-Member -Type NoteProperty -ErrorAction SilentlyContinue | Foreach {$_.Name} # здесь мне совсем не понятно зачем используется Get-Member с подавлением ошибок, ошибки возникают из-за того что не все структуры объекта имеют тип NoteProperty, поставил ограничение -name PSPath

$prop | Where {$obj.$_ -match "GalRepBuilder.XLA"} | Foreach {

$obj | Set-ItemProperty -Name $_ "C:\PATH"

}

}
PowerShell - [решено] Поиск по значениям реестра




Не смог понять полностью суть вашего примера, у меня оригинальный вариант примера не работает, так и мои модификации не заставили его работать...



Оригинальный вариант примера выдает ошибку:



Set-ItemProperty : Не удается привязать объект ввода к любым параметрам команды, так как команда не принимает входные данные конвейера, либо входные данные

и их свойства не совпадают с любыми из параметров, принимающих входные данные конвейера.

строка:5 знак:10

+ $obj | Set-ItemProperty -Name $_ "C:\PATH"

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidArgument: (@{LastUILang=10....Core\Registry}:PSObject) [Set-ItemProperty], ParameterBindingException

+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.SetItemPropertyCommand
Аватара пользователя
dosperados

Re: PowerShell - [решено] Поиск по значениям реестра

Сообщение dosperados »

Нашел замечательную статью
тык




готовый пример:



Код:

Код: Выделить всё

Get-ChildItem "HKCU:\Software\Microsoft\Office\" -rec -ea SilentlyContinue | foreach {
   $CurrentKey = (Get-ItemProperty -Path $_.PsPath)
   select-string "GalRepBuilder.XLA" -input $CurrentKey -AllMatches | foreach {($_.matches)|select-object Value}
}
Аватара пользователя
dosperados

Re: PowerShell - [решено] Поиск по значениям реестра

Сообщение dosperados »

Нашел замечательную статью
тык




готовый пример:



Код:

Код: Выделить всё

Get-ChildItem "HKCU:\Software\Microsoft\Office\" -rec -ea SilentlyContinue | foreach {
   $CurrentKey = (Get-ItemProperty -Path $_.PsPath)
   select-string "GalRepBuilder.XLA" -input $CurrentKey -AllMatches | foreach {($_.matches)|select-object Value}
}
Аватара пользователя
dosperados

Re: PowerShell - [решено] Поиск по значениям реестра

Сообщение dosperados »

Код:

Код: Выделить всё

Get-ChildItem "HKCU:\Software\Microsoft\Office\" -rec -ea SilentlyContinue | foreach {
   $CurrentKey = (Get-ItemProperty -Path $_.PsPath)
   if ($CurrentKey -match "GalRepBuilder.XLA") {
      $a = $CurrentKey
	  $a.Description
	  $a.PSPath
   }
}

Как выбрать конкретный параметр чтобы в нем изменить значение?
Аватара пользователя
Foreigner

Re: PowerShell - [решено] Поиск по значениям реестра

Сообщение Foreigner »

Цитата Foreigner:



[array] $keys = gci 'HKCU:\Software\Microsoft\Office' -recurse -include 'Excel'

foreach ($key in $keys) {

$key.property | ? { (gp $key.pspath).$($_) -eq 'c:\gal810\exe\XLS\F_XlsRep\GalRepBuilder.XLA' } | % {

sp $key.pspath $_ 'C:\New\Path\GalRepBuilder.XLA'

}

}
PowerShell - [решено] Поиск по значениям реестра




Данный код не отрабатывает, по факту значения в реестре не меняются.
Аватара пользователя
dosperados

Re: PowerShell - [решено] Поиск по значениям реестра

Сообщение dosperados »

dosperados, У меня нет офиса за ненадобностью, тестировал на 7-ZIP, все отрабатывало..
Аватара пользователя
Foreigner

Re: PowerShell - [решено] Поиск по значениям реестра

Сообщение Foreigner »

dosperados, У меня нет офиса за ненадобностью, тестировал на 7-ZIP, все отрабатывало..
Аватара пользователя
Foreigner

Re: PowerShell - [решено] Поиск по значениям реестра

Сообщение Foreigner »

Foreigner, Пробовал запускать ваш пример без изменений, ни каких ошибок нет, но и результата нет. В реестре параметр не меняется.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»