OK, habilidades PS limitadas e você deseja automatizar o uso do registro.
Uhhhhh ... tem certeza? 8 -}
Tudo o que foi dito.
O que você mostra aqui é bom, com a exceção de que você não mostra os valores a serem definidos nem o comando para definir a chave de registro.
Esses cmdlets são aqueles que você pode usar para lidar com o registro.
Get-Command -CommandType Cmdlet -Name '*item*'
CommandType Name ModuleName
----------- ---- ----------
Cmdlet Clear-Item Microsoft.PowerShell.Management
Cmdlet Clear-ItemProperty Microsoft.PowerShell.Management
Cmdlet Copy-Item Microsoft.PowerShell.Management
Cmdlet Copy-ItemProperty Microsoft.PowerShell.Management
Cmdlet Get-ChildItem Microsoft.PowerShell.Management
Cmdlet Get-Item Microsoft.PowerShell.Management
Cmdlet Get-ItemProperty Microsoft.PowerShell.Management
Cmdlet Move-Item Microsoft.PowerShell.Management
Cmdlet Move-ItemProperty Microsoft.PowerShell.Management
Cmdlet New-Item Microsoft.PowerShell.Management
Cmdlet Remove-Item Microsoft.PowerShell.Management
Cmdlet Remove-ItemProperty Microsoft.PowerShell.Management
Cmdlet Set-Item Microsoft.PowerShell.Management
Cmdlet Set-ItemProperty Microsoft.PowerShell.Management
Não deixe de consultar os arquivos de ajuda e seus exemplos antes de usá-los também.
https://blogs.technet.microsoft.com/heyscriptingguy/2015/04/02/update-or-add-registry-key-value-with-powershell
PSRemoteRegistry 1.0.0.0
This module contains functions to create, modify or delete registry subkeys and values on local or remote computers.
https://www.powershellgallery.com/packages/PSRemoteRegistry/1.0.0.0
https://stackoverflow.com/questions/28076128/powershell-export-multiple-keys-to-one-reg-file
Como sabemos, mexer com o registro pode realmente doer se você não for cuidadoso. Portanto, faça o backup primeiro para poder restaurar se ocorrer um desastre ou, pelo menos, para um ponto de restauração do sistema, ponto de verificação / instantâneo da VM.
Então, aqui está uma pequena modificação no seu código postado, mas não tome isso como final, já que você precisa tomar decisões sobre quais ações precisam ser tomadas e como.
Get-ChildItem "Registry::HKCR" -Recurse -Force '
| where { $_.Name -match 'vlc.'}'
| ForEach-Object {
try {
'Target key to modify / export / whatever'
$_.Name
# 'Registry code here' -WhatIf # remove the whatif if you are sure you are good with what you have
}
catch {
Write-Warning -Message 'Key not accessible'
$_.Name
}
}