Peter wrote:
>I have a VBS script that needs to read a registry value from remote
>computers
> on a LAN, my efforts so far have led me to what I show below. It generates
> an
> error trying to use the GetString method on the ObjWMIService object. A
> little research shows me that this was not a valid method for an object
> returned from the ConnectServer method.
> I use the SWbemLocator.ConnectServer method since the logged in user of
> the
> remote computers do not have access to registry editing.
> I am stumped as to where to go next, I am sure this is a simple task but I
> am not smart enough to get past this, any thoughts appreciated.
>
> -------------------- Begin Script---------------
> Option Explicit
>
> Const HKEY_CURRENT_USER = &H80000001
> Dim StrComputer, StrNameSpace, StrUserName, StrPassword
> Dim StrPath, StrKey, StrValue
> Dim ObjWMIService, ObjWbemLocator
>
>
> StrComputer = "Comp01"
> StrNameSpace = "\root\default:StdRegProv"
> StrUserName = "adminuser"
> StrPassword = "correctpassword"
>
> Set ObjWbemLocator = CreateObject("WbemScripting.SWbemLocator")
> Set ObjWMIService = objWbemLocator.ConnectServer(StrComputer, _
> StrNameSpace, StrUserName, StrPassword)
>
> StrKey = "SOFTWARE\Microsoft\Office\11.0\Outlook\Security"
> StrValue = "OutlookSecureTempFolder"
> ObjWMIService.GetStringValue HKEY_CURRENT_USER, StrKey, StrValue, StrPath
> MsgBox StrPath
> -------------------------- End Script --------------------
> --
> Regards - Peter
> I can't verify at the moment, but I believe that once you are authenticated
to the remote computer, you can bind to other objects on the computer with
the same permissions. For example:
=======
Dim objReg
Set ObjWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set ObjWMIService = objWbemLocator.ConnectServer(StrComputer, _
StrNameSpace, StrUserName, StrPassword)
Set objReg = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,authenticationLevel=Pkt}!\\" _
& strComputer & strNameSpace)
StrKey = "SOFTWARE\Microsoft\Office\11.0\Outlook\Security"
StrValue = "OutlookSecureTempFolder"
objReg.GetStringValue HKEY_CURRENT_USER, StrKey, StrValue, StrPath
========
However, if the computer is remote, I don't think you can access the
HKEY_CURRENT_USER hive.
--
Richard Mueller
MVP Directory Services
Hilltop Lab -
http://www.rlmueller.net
--