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

时间:2018-05-25 14:28:31

标签: batch-file cmd registry virtual-machine

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

Key: HKEY_CURRENT_USER\Volatile Environment
Value Name: ViewClient_Machine_Name
Value Data: "Desktop1"

这将为我们提供运行VM(Desktop1)的当前物理设备的名称。然后我们需要将该机器名称写入以下密钥:

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")

当我运行时,没有任何反应。

这是我的第一篇文章,很抱歉打扰它,我最终会把它弄好!

1 个答案:

答案 0 :(得分:1)

您不应该写入WOW6432Node密钥。

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

@Echo Off
Set "BO="
Set PROCESSOR_ARCHITE|Find "64">Nul&&(Set "BO=/Reg:32")
For /F "Tokens=2*" %%A In (
    'Reg Query "HKCU\Volatile Environment" /V "ViewClient_Machine_Name"'
) Do Reg Add "HKLM\SOFTWARE\Citrix\ICA Client" /V ClientName /D "%%~B" /F %BO%