reg 查询远程计算机不工作

问题描述 投票:0回答:3

我有以下问题。在工作中,我正在处理一个域,并且正在编写一个批处理脚本,该脚本除其他外,还可以从域中的其他计算机远程查询 Windows 注册表。在那里,一切正常。也就是说,查询如下:

reg query \\MACHINE1\HKLM\SYSTEM

效果很好。然而,在家里做一些测试时,我无法从计算机 B 访问计算机 A 中的 Windows 注册表。相同的命令 在我的小型 2 PC 网络中,结果是:

ERROR: Cannot find network path

或者类似的东西,不知道如何从西班牙语翻译:错误:No se ha encontrado la ruta de acceso a la red。 一台计算机运行 Windows 8.1 Pro 32 位,另一台计算机运行 Windows 7 Pro 64 位。他们可以互相 ping 通。它们都有共享文件夹,当单击网络图标时,两台计算机都会显示,以及共享资源。

我错过了什么???

提前致谢!

windows batch-file networking registry
3个回答
0
投票

您需要以正在读取的计算机上的本地管理员身份执行此操作。请参阅

runas
命令。


0
投票

不确定是什么阻止您对远程计算机运行

reg query
,但我确实有一个潜在的解决方法可以建议,直到您弄清楚哪种安全限制阻止了您。您可以通过 wmic 调用 WMI
StdRegProv 类
。这有点棘手,我什至不记得我是在哪里第一次了解到此功能的,但在直接阻止远程注册表调用但不阻止 WMI 远程过程调用的情况下,它很有用。

@echo off
setlocal

set "remotePC=machine1"
set "remoteUser=username or domain\username"
set "remotePass=password"

set "HKCR=&H80000000"
set "HKLM=&H80000002"
set "HKU=&H80000003"
set "HKCC=&H80000005"

set "wmic=wmic /node:%remotePC% /user:%remoteUser% /password:%remotePass%"

rem // to enumerate keys in \\HKLM\SYSTEM, do:
%wmic% class stdregprov call EnumKey hDefKey="%HKLM%" sSubKeyName="SYSTEM"

rem // to enumerate values in \\HKLM\Software\Microsoft\Windows\CurrentVersion\Run, do:
%wmic% class stdregprov call EnumValues hDefKey="%HKLM%" sSubKeyName="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"

rem // note the double backslashes in sSubKeyName above

除了

EnumKey
EnumValues
之外,您还可以调用更多方法 -
GetDWORDValue
GetExpandedStringValue
DeleteKey
等等。 有关完整详细信息,请参阅 MSDN StdRegProv 类文档


0
投票

设法解决了问题。正如我提到的,问题在于用于测试的小型 2 PC 家庭网络(配置为工作组、Windows 7 64 位和 Windows 8.1 32 位)。这是我所做的:

  1. 在两台电脑上启用管理员帐户并设置相同的密码。
  2. 然后,从计算机 B 访问计算机 A 的共享资源。 在计算机 B 上,计算机 A 询问用户名和密码。我输入它并要求系统保存它。重复相同的操作,但方向相反 方向。

现在我可以从A到B以及从B到A进行查询、添加或删除。

感谢您的回答。节日快乐!

© www.soinside.com 2019 - 2024. All rights reserved.