在远程计算机.NET openremotebasekey上访问%appdata%

时间:2011-02-12 17:19:41

标签: .net windows vb.net registry

我正在尝试访问远程计算机上用户的“AppData”。我拥有所需的所有权利。我试过这个:

r = RegistryKey.OpenRemoteBaseKey(RegistryHive.Users, MachineName)
r.OpenSubKey(SIDValue & "\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders")
AppData = r.GetValue("AppData")

事实是它检索我自己的appdata文件夹...实际上远程计算机上和我的帐户的SID值是相同的(我在域下)。我不知道这是否是我获得自己的appdata文件夹的原因。

我该怎么办?

当我浏览HKEY_Local_Machine时,我设法获得有关远程计算机的信息。但是在浏览HKEY_USERS时却没有。

1 个答案:

答案 0 :(得分:0)

我自己找到了答案,谢谢...... 对于那些对如何做到这一点感兴趣的人,我的方法如下:

通过HKLM浏览确实给了我好的数据(远程计算机上的数据),我只是搜索了HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion中的systemroot值。 在以下情况下检索appdata:

systemdrive = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, _
                                                           MachineName).OpenSubKey("Software\Microsoft\Windows NT\CurrentVersion").GetValue("SystemRoot").ToString.Substring(0, 3)

然后,对于Windows XP:

appdata = systemdrive & "Documents and Settings\" & username & "\Application Data"

对于Windows 7:

appdata = systemdrive & "Users\" & username & "\AppData\Roaming"