Хорошо, ограниченные навыки PS, и вы хотите автоматизировать работу с реестром.
Уххххх ... ты уверен? 8-}
Все это, как говорится.
То, что вы здесь показываете, хорошо, за исключением того, что вы не показываете значения для установки и команду для установки ключа реестра.
Эти командлеты можно использовать для работы с реестром.
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
Обязательно посмотрите файлы справки и их примеры, прежде чем использовать их также.
https://docs.microsoft.com/en-us/powershell/scripting/getting-started/cookbooks/working-with-registry-entries?view=powershell-6
https://blogs.technet.microsoft.com/heyscriptingguy/2015/04/02/update-or-add-registry-key-value-with-powershell
PSRemoteRegistry 1.0.0.0
Этот модуль содержит функции для создания, изменения или удаления разделов реестра и значений на локальных или удаленных компьютерах.
https://www.powershellgallery.com/packages/PSRemoteRegistry/1.0.0.0
https://stackoverflow.com/questions/28076128/powershell-export-multiple-keys-to-one-reg-file
Как мы знаем, возиться с реестром может действительно навредить, если вы не будете осторожны. Итак, сначала сделайте резервную копию, чтобы вы могли восстановить в случае аварии или хотя бы до точки восстановления системы, контрольной точки / снимка виртуальной машины.
Итак, вот небольшая модификация вашего размещенного кода, но не принимайте это как окончательное, поскольку вам нужно принимать решения о том, какие действия нужно предпринять и как.
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
}
}