PDA

Показать полную графическую версию : Поиск ветки реестра по фильтру/маске (VBScript, PowerShell)


geppo
04-03-2016, 01:24
Всем доброго времени суток!

Прошу помочь в следующем вопросе: нужно найти все ветки реестра, содержащие в своем названии "TeamViewer", посредством кода на VBScript. Поиск нужно вести в разделе "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall".

Основная цель - удалить все версии TeamViewer. Строки удаления хочу брать в реестре. Проблема в том, что для каждой версии ветки называются по-разному: TeamViewer 7, TeamViewer 8 и т.п.

Удалять планирую следующим способом: организовать цикл поиска веток, содержащих "TeamViewer", для каждой найденной - запросить значение параметра UninstallString, и запустить его с "тихими" ключами (в моем случае /S).

Или еще лучше - в цикле сразу найти значения UninstallString, типа: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\TeamViewer **(маска или фильтр)\UninstallString"

Возможно у кого-то уже есть аналогичный опыт другими методами - прошу поделиться.

Буду признателен за помощь!

Iska
04-03-2016, 02:53
все ветки реестра »
Зачем все? Могут быть несколько параллельно установленных разных версий вместо обновления?

greg zakharov
04-03-2016, 10:57
Возможно у кого-то уже есть аналогичный опыт другими методами - прошу поделиться.
Например, PowerShell:
gp HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* |
? {$_.PSChildName -match 'TeamViewer'} |
select -ExpandProperty UninstallString
Далее отправляете полученные строки на исполнение.

geppo
04-03-2016, 17:27
greg zakharov, спасибо!
Запилил, работает на ура!
Получилось так:


$Query = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* | ? {$_.PSChildName -match 'TeamViewer'} | select -ExpandProperty UninstallString
ForEach ($DelString in $Query) {
if (Test-Path $DelString) {
& $DelString /S
}
}


С кодом VBS тоже помогли:
https://social.technet.microsoft.com/Forums/ru-RU/53702db7-e6f2-401e-b793-05c09936a91d/-vbscript-powershell?forum=scrlangru

Тему можно закрывать




© OSzone.net 2001-2012