• ベストアンサー

WSHでレジストリキーの確認(Win98SE)

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

質問者が選んだベストアンサー

  • ベストアンサー
  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.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 + "です。"); -----

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

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

takashi_it
質問者

補足

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

関連するQ&A

  • Win98SEには、regedt32はないのでしょうか

    Windows98SEで、レジストリ操作をするには、regedit しかないのでしょうか。WindowsNTや他のWindowsのように regedt32 が入っていないようですが、レジストリキーのセキュリティの変更はどこですればよいのでしょうか。 どなたか教えて下さい。

  • WSH

    OSを再インストール(WIN98SE)したら、これまで使っていたWSHの*.vbsの一部のファイルがエラーになりました。 最新バージョンはどのようにして手に入れたらよかったでしょうか。

  • WSH

    2003 server です。 WSH で VBScript を使用しております。 ローカルディスクのプロパティ→セキュリティタブのアクセス許可の情報を取得するにはどうような方法があるでしょうか? 現在、自分でも調査中です。

  • WSH

    こんにちわ WSHで以下のような処理は可能でしょうか。 複数のコンピュータのローカルデータを ファイルサーバに保存する。 Windows NT 4.0 workstationになります。 処理イメージ (1)それぞれのコンピュータ名を取得する。 (2)取得したコンピュータ名と同じディレクトリを ファイルサーバに作成する。 (3)自分と同じディレクトリに、ローカルデータを保存する。 よろしくお願いします。

  • レジストリキーの削除について

    この質問に目を通してくださってありがとうございます。 実はタスクバーのトレイアイコンが消えてしまい見てみたところ管理者によって管理されています。と出てきて何も設定できません。当然アカウントはひとつしか作ってませんしアカウントの種類も管理者です。調べたところレジストリキーのNoTrayItemsDisplayが原因らしいのですが・・・ このレジストリだけ他のと違うんですが削除しても大丈夫なものなんですかね? ちなみにOSはWindows7です。 回答よろしくお願いします。

  • バッチファイルでレジストリキーを読み出すには?

    バッチファイルから、レジストリキーを読み出す方法を探しています。 やりたいことは、あるソフトウェアのインストール後に、一部のファイルのみをバッチファイルで置き換えたいのです。ソフトのインストーラは既存のものなので、変更できません。ソフトが何処にインストールされるかはユーザ次第です。 このソフトをインストールすると、レジストリにインストールフォルダのパスが格納されるので、これを取得して、ファイルのパスを割り出すことを考えています。 バッチファイルから指定のレジストリキーを読み出す方法をご存知の方はご教授ください。

  • レジストリキーの検索をする方法を教えてください

    お世話になっております。 VB.NET環境なのですが、 http://oshiete1.goo.ne.jp/qa2556273.html で質問をさせて頂き、レジストリキーの検索について教えて 頂いたのですが、全部検索するとしても 具体的にはどのようにして検索したら良いでしょうか。 キーの名前や存在がわからない状態からの検索なので、 番号などで指定して重複したFor Nextを使ったりするのでしょうか? キーの数を取得したり、番号からキー名を取得する関数があるのでしょうか? 具体的な方法を簡単にご教示頂ければありがたいです。 宜しくお願いいたします。 OSはWindowsXP環境です。

  • レジストリの検索

    こんにちは。 お世話になります。 早速ですが、 WSHを使って、レジストリキーを検索し、そのキーの入ってるフォルダごと削除するような vbsを作りたいのですが、レジストリキーを検索する方法がわかりません。 検索したいレジストリキーの場所は、コンピュータによって変わってしまうので あるキーワードを元にレジストリ全体を検索し、そのキーのパスを取得したいと考えています。 レジストリの検索方法をご存知の方、やり方を教えていただけないでしょうか。 よろしくお願いいたします。

  • Win98SEから2000へ

     LavieCというNEC製でWin98SEがプリインストールされたノートPCへWin2000 をインストールしようと思っています。ハードの条件はクリアしています。 Celeron500MHz 192MB 総10GB、空6GB。ドライバの対応も問題ないようです。  いきなりWin2000だけにするのは少し不安なので、まずWin98SEとのデュアル ブートでWin2000の動作確認をし、その後はWin2000だけで動くようにしたいと 思います。  そこでお尋ねしたいのは、  1. Win2000プロダクトアップグレード版でインストール出来るでしょうか?     多分途中でWin98のCD-ROMを要求されると思うのですが、プリインス    トール仕様なのでリカバリー用のCDしかありません。  2. Win2000の動作確認後に、98SEを削除する方法があれば教えて下さい。     Win98への上書きインストールはお薦めできないと聞きます。そうする    とWin2000だけで動かすには新規インストールをやり直す必要があるので    しょうか。それともWin98SEを削除する方法があるのでしょうか。  その他、気をつけなければならない事があれば教えて下さい。

  • Win98SEって…

    先日、オークションを見ていたら、商品内容の一部に「Win98SEは良くスタックしますし…」と書かれているのを見かけました。そういえば、現在我が家には5台のPCが稼動していますが(98×2台、ME1台、XP1台、以上はデスクトップで、もう一台ノートの98SE)、富士通FMV-BIBLO NE2-450Lという98SEのPCはよくフリーズします。これは購入当時からで、この製品の特徴だとか、ノートだから熱くなり易いからだとか、スペックが良くないからだとか思っていたのですが、果たしてOSのせいだったのでしょうか?(ちなみに他のデスクトップPCでは、WIN95時代からフリーズの経験が全くありません)

専門家に質問してみよう