次の VBScript コードを、すべてのユーザーのユーザー プロファイル パスを取得するために使用される JScript に変換するにはどうすればよいですか?
Set oWshNet = CreateObject("Wscript.Network")
sComputer = oWshNet.ComputerName
'For remote computer
'sComputer = "some name or IP"
Const HKLM = &H80000002
sProfileRegBase = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
Set oReg = GetObject("WinMgmts:{impersonationLevel=impersonate}!//" _
& sComputer & "/root/default:StdRegProv")
Set oWMI = GetObject("WinMgmts:{impersonationLevel=impersonate}!//" _
& sComputer & "/root/cimv2")
Set colItems = oWMI.ExecQuery _
("Select Name,SID from Win32_UserAccount WHERE Domain = '" _
& sComputer & "'",,48)
For Each oItem In colItems
sAddInfo = ""
Wscript.Echo "User name: " & oItem.Name & sAddInfo
oReg.GetExpandedStringValue HKLM, sProfileRegBase& "\" & oItem.SID, _
"ProfileImagePath", sProfilePath
If IsNull(sProfilePath) Then
sProfilePath = "(none defined)"
End If <br>
Wscript.Echo "Profile path: " & sProfilePath
Wscript.Echo ' blank line
Next
変換には部分的に成功しましたが、2 つの点で行き詰まりました。
私の使用法
oReg = GetObject("WinMgmts:\\\\.\\root\\default:StdRegProv");が正しく、コードで指定されたものと同じであるかどうかを確認してください。そうでない場合は、正しい使用法を提案してください。GetExpandedStringValueJScriptに相当するものは何ですか? 存在しない場合、値を取得する前にレジストリ キーが存在するかどうかを検証するより良い方法は何ですか?