[powershell] Zoek reg item en delete hele regkey

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • TheIceWarrior
  • Registratie: Februari 2004
  • Laatst online: 11-09 23:10
Op een groot aantal computers willen verschillende software pakketten niet updaten omdat de oorspronkelijke msi file er niet meer is.

Dat kun je oplossen door de betreffende regitem te verwijderen, ik zoek een commando die het product opzoekt in
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products hier staan randomproductid's
en als die voor komt de hele regkey verwijderd.
Bijvoorbeeld een oude chrome versie:
HKLM\SOFTWARE\Classes\Installer\Products\916E731B5386A643DB9E9480C8A6B2A6\
regsz: ProductName waarde: Google Chrome
Hier wil ik dus dat deze hele regkey verwijderd wordt:
HKLM\SOFTWARE\Classes\Installer\Products\916E731B5386A643DB9E9480C8A6B2A6

Tot nu toe kom ik tot dit commando, maar dat zoekt alleen naar de regkey, niet naar een Reg_SZ:
Get-ChildItem -path HKLM:\SOFTWARE\Classes\Installer\Products\: -Recurse | where { $_.Name -match 'Google Chrome'} | Remove-Item -force

Beste antwoord (via TheIceWarrior op 02-05-2022 14:00)


  • _360_
  • Registratie: Januari 2011
  • Laatst online: 11:06
Als je naar de output van de code kijkt en ook Get-Member gebruikt op het resultaat

code:
1
Get-ChildItem -path HKLM:\SOFTWARE\Classes\Installer\Products\ -Recurse | Get-Member


Dan zie je dat er een GetValue() method bestaat, en dat er een property ProductName is.

Dit kan je combineren naar zoiets als dit:

code:
1
Get-ChildItem -path HKLM:\SOFTWARE\Classes\Installer\Products\ -Recurse | ?{ $_.GetValue("ProductName") -like "*Chrome*" } | Remove-Item -Recurse -force -WhatIf

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • _360_
  • Registratie: Januari 2011
  • Laatst online: 11:06
Als je naar de output van de code kijkt en ook Get-Member gebruikt op het resultaat

code:
1
Get-ChildItem -path HKLM:\SOFTWARE\Classes\Installer\Products\ -Recurse | Get-Member


Dan zie je dat er een GetValue() method bestaat, en dat er een property ProductName is.

Dit kan je combineren naar zoiets als dit:

code:
1
Get-ChildItem -path HKLM:\SOFTWARE\Classes\Installer\Products\ -Recurse | ?{ $_.GetValue("ProductName") -like "*Chrome*" } | Remove-Item -Recurse -force -WhatIf

Acties:
  • 0 Henk 'm!

  • TheIceWarrior
  • Registratie: Februari 2004
  • Laatst online: 11-09 23:10
bedankt, dat zocht ik!