首页 > 解决方案 > .net 远程获取注册表值

问题描述

我正在尝试使用 .net 从远程 PC 获取 Windows 10 次要版本号。这是我使用的 Powershell 命令:

[Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, 192.168.78.103).OpenSubKey('Software\Microsoft\Windows NT\CurrentVersion').GetValue('UBR')

乍一看似乎工作正常,但我刚刚意识到它实际上并没有获取远程 PC 的值,而是从我的本地 PC 获取的值。我四处搜索,很多人已经报告说这个命令工作正常,但它不适合我。

我以前没有真正使用过很多.net,我是否必须调整本地或远程计算机上的一些设置才能使其正常工作?

标签: .netpowershellregistry

解决方案


第二个参数是一个字符串,所以需要用引号引起来:

[Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, "192.168.78.103").OpenSubKey('Software\Microsoft\Windows NT\CurrentVersion').GetValue('UBR')

RegistryKey.OpenRemoteBaseKey 方法

如果 machineName 为 String.Empty,则打开本地计算机注册表。请求的键必须是远程机器上的根键,并由相应的 RegistryHive 值标识。


推荐阅读