阅读HKEY_USERS和HKEY_CURRENT_USERS

时间:2013-11-25 07:22:06

标签: powershell registry

$strIPAddrTmp = "172.28.27.200"
$strKeyIEConnections = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\"
$strRegType = [Microsoft.Win32.RegistryHive]::CurrentUser
$strRegKey  = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($strRegType, $strIPAddrTmp)
$strRegKey  = $strRegKey.OpenSubKey($strKeyIEConnections)

我使用上面的PS脚本尝试阅读以下内容:

HKCU::Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings

我只是想检查目标远程计算机的IE代理设置。 我发现该脚本始终返回HKEY_USERS而不是HKEY_CURRENT_USERS的内容。 我做错了什么?

3 个答案:

答案 0 :(得分:2)

您无法远程连接到当前用户配置单元。如果您知道用户的sid并通过HKEY_USERS配置单元连接到它,则可以。

答案 1 :(得分:2)

这应该是答案!

1)找出登录到机器的用户的SID。

$strSID = (Get-WmiObject -Class Win32_UserAccount  -Filter "Domain = '$domain' AND Name = '$name'").SID 

2)使用SID查找HKEY_USER中的信息:

$strKeyIEConnections = "$strSID\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\"
$strRegType = [Microsoft.Win32.RegistryHive]::Users
$strRegKey  = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($strRegType, $strIPAddrTmp)
$strRegKey  = $strRegKey.OpenSubKey($strKeyIEConnections)

答案 2 :(得分:1)

HKEY_USERS的子项是用户登录后实际挂载用户注册表配置单元(ntuser.dat的配置文件)的位置。HKEY_CURRENT_USER只是{HKEY_USERS\S-1-5-...的别名1}},其中S-1-5-...是当前登录用户的SID。