Batch file 将注册表设置拉入另一个注册表值

Batch file 将注册表设置拉入另一个注册表值,batch-file,cmd,registry,virtual-machine,Batch File,Cmd,Registry,Virtual Machine,我们正在尝试在VM中提取以下注册表设置: Key: HKEY_CURRENT_USER\Volatile Environment Value Name: ViewClient_Machine_Name Value Data: "Desktop1" 这将为我们提供运行VMDesktop1的当前物理设备的名称。然后,我们需要将该机器名写入以下密钥: Key: HKLM\SOFTWARE\WOW6432Node\Citrix\ICA Client Value Name: ClientName Val

我们正在尝试在VM中提取以下注册表设置:

Key: HKEY_CURRENT_USER\Volatile Environment
Value Name: ViewClient_Machine_Name
Value Data: "Desktop1"
这将为我们提供运行VMDesktop1的当前物理设备的名称。然后,我们需要将该机器名写入以下密钥:

Key: HKLM\SOFTWARE\WOW6432Node\Citrix\ICA Client
Value Name: ClientName
Value Data: "Desktop1"
我尝试过VBS、BAT和KIX脚本,我得到的最接近的结果是它在键中添加了一个空白值。帮忙

这就是我们正在研究的:

$strwkstn = READVALUE("HKEY_CURRENT_USER\Volatile Environment", "ViewClient_Machine_Name")

$RC = writevalue("HKEY_LOCAL_MACHINE\Software\Wow6432Node\Citrix\ICA Client","ClientName", $strwkstn,"REG_SZ")
当我运行这个时,什么都没有发生


这是我的第一篇帖子,很抱歉把事情搞砸了,我最终会把它做好的

您不应该写入WOW6432节点密钥

如果需要将信息放入64位系统上的32位注册表中,则可以使用/Reg:32选项从带有Reg.exe的批处理文件中执行此操作:

@回音 布波= 设置处理器| ARCHITE | Find 64>Nul&&Set BO=/Reg:32 对于/F令牌=2*%%A In 'Reg Query HKCU\Volatile Environment/V ViewClient\u Machine\u Name' Do Reg添加HKLM\SOFTWARE\Citrix\ICA客户端/V客户端名称/D%%~B/F%BO%
没有代码和错误消息,这是一个猜测游戏。打开命令提示符窗口并运行reg/?并阅读输出帮助。然后运行reg add/?然后再次阅读输出帮助。命令%SystemRoot%\System32\reg.exe是在命令提示符下或在cmd.exe执行的批处理文件中用于Windows注册表的首选可执行文件。这在Windows 7上非常有效。现在我必须弄清楚为什么它没有在Windows10上运行。谢谢你的帮助@DavePriier,你是以管理员的身份运行它的吗?是的,我以内置管理员的身份运行它,并且我对这台机器拥有完全的管理员权限。