プロが教える店舗&オフィスのセキュリティ対策術

対象となるOSは、Windows98SEです.
WSHでレジストリキーの内容を取得したいのですが、WMIを使わずに確認する方法はないでしょうか?
よろしくお願いします.

A 回答 (2件)

WMIを使わなければ列挙(EnumKey,EnumValues)はできないと思います。

キーまたは名前指定でよければエラーハンドリングできます。

VBScriptならOn Error Resume Nextを使います。
-----
'Name = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir"
Name = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDirErr"
Set WshShell = WScript.CreateObject("WScript.Shell")
Val = ""
On Error Resume Next
Val = WshShell.RegRead(Name)
On Error GoTo 0
if Val="" then
WScript.Echo Name & "の読み取りエラーです。"
else
WScript.Echo Name & "の値は" & Val & "です。"
end if
-----

JScriptならスマートなtry catchを使えます。バージョン5以降。最新は5.6です。
-----
//Name = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ProgramFilesDir";
Name = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ProgramFilesDirErr";
WshShell = WScript.CreateObject("WScript.Shell");
try{
Val = WshShell.RegRead(Name);
}
catch(e){
Val = "";
}
if (Val=="")
WScript.Echo (Name + "の読み取りエラーです。");
else
WScript.Echo (Name + "の値は" + Val + "です。");
-----
    • good
    • 0

Dim WshShell, regValue


Set WshShell = WScript.CreateObject("WScript.Shell")
regValue = WshShell.RegRead ("レジストリキーまたは名前")

この回答への補足

回答、ありがとうございます.
言葉足らずだったのですが、
WshShell.RegRead ("レジストリキーまたは名前")
は試しております.
ですが、98SEの場合、キーが存在しないとエラーで落ちてしまいます.(警告のPOPUP)
エラーで落ちた場合に、エラーハンドリングして、判断するという手段は、今回の仕様だと使えません.
何か他に方法はないでしょうか?
またはエラーで落ちないようにすることは可能なのでしょうか?

補足日時:2006/10/03 18:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!