我正在尝试使用Copy-Item带有-Recurseand-Force参数的 Powershell 命令行开关从一个注册表项复制设置并覆盖另一个注册表项中的相同设置(如果它们存在)。如果我在文件系统上使用相同的命令,那么源和目标中存在的任何文件夹都将在目标中被覆盖。
但是,在注册表上使用此命令时,如果目标中存在存在的键,则源键将被复制为子键。例子:
起始状态:
HKCU:Software\OldVendor\Program
HKCU:Software\OldVendor\Program\Setting1
HKCU:Software\OldVendor\Program\Setting2
HKCU:Software\NewVendor\Program
HKCU:Software\NewVendor\Program\Setting1
HKCU:Software\NewVendor\Program\Setting2
现在如果我运行这个命令:
Copy-Item -Path "HKCU:Software\OldVendor\Program" -Destination "HKCU:Software\NewVendor" -Recuse -Force
我希望保持相同的结构。其实NewVendor下的结构是这样的:
HKCU:Software\NewVendor\Program
HKCU:Software\NewVendor\Program\Setting1
HKCU:Software\NewVendor\Program\Setting1\Setting1
HKCU:Software\NewVendor\Program\Setting2
HKCU:Software\NewVendor\Program\Setting2\Setting2
谁能告诉我如何让 Powershell 覆盖现有的注册表项,而不是复制到子项?