名古屋で働くユーザ系SEのブログ

ジャンルにこだわりません。

レジストリ

管理者によるレジストリの遠隔操作

ブログネタ
Windows全般 に参加中!
こんにちは、ippan_seです。
PCやドメインの管理者なら障害端末の調査などでレジストリを見ることが多いのではないでしょうか。
今回はそのレジストリを遠隔から操作しようというノウハウのご紹介です。

ノウハウの特徴として
1.端末の管理者権限が必要です。
2.利用者に気づかれることなくレジストリを操作できます。

では、ご紹介していきましょう。

ネットワーク上のコンピュータのレジストリを操作する為に「レジストリエディタ」の「ファイル」-「ネットワークレジストリへの接続」を使用するのですが、
普通にアクセスしてみると以下のエラーが出ます。
キャプチャ
BlogPaint
[コンピュータ名]に接続できません。コンピューターがネットワーク上にあるか、リモート管理が使用可能になっているか、両方のコンピュータでリモート レジストリ サービスが開始しているか、確認してください。

このエラーの通り接続元、接続先どちらも「リモートレジストリ」のサービスを開始しておく必要があるのです。
では、まず接続元のサービスを起動します。
サービス起動


次に接続先のサービスを起動します。
ここではSCコマンドを使って遠隔で起動させます。
----------------------------------------------------------------------------
DOS>sc \\[コンピュータ名] start RemoteRegistry
SERVICE_NAME: RemoteRegistry
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 2  START_PENDING
                                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x7d0
        PID                : 7512
        FLAGS              :
----------------------------------------------------------------------------
STATEがSTART_PENDINGと帰ってくればOKです。

それでは、先ほどと同じようにレジストリエディタからアクセスしてみましょう。
BlogPaint

うまくできました!

もしこの端末に何度もアクセスするのであれば、
RemoteRegistryサービスの起動モードを自動にしておくのもいいかもしれませんね。
----------------------------------------------------------------------------
DOS>sc \\[コンピュータ名] config RemoteRegistry start= auto
[SC] ChangeServiceConfig SUCCESS
----------------------------------------------------------------------------

以上、レジストリを遠隔操作する方法でした~。
(2016-05-03)

VBS・VBAでサブキーも含め、ごそっとレジストリキーを削除する方法

ブログネタ
エクセルVBA に参加中!
こんにちは、ippan_seです。
タイトルの件ですが、レジストリの削除に少し手間取ったので紹介します。
 

VBSでレジストリを削除する方法の1つに、WshShellオブジェクトのRegDeleteメソッドがあります。
これは様々なサイトで紹介されているのですが、これには1つ問題があります。
サブキーが格納されているキーを削除できないのです。
どういうことかというと、こんな感じに、サブキーがあるとして
サブキー

この親のキーを削除しようとするとエラーがでます。
BlogPaint


こんなメッセージではサブキーが含まれていることが理由とは判断できにくいですよね。もー。


では、私がどのように削除したのかというと、DOSのREGコマンドをで削除しました。
以下サンプルコードです。
----------------------------------------------------------------------------
Dim objWshShell
Dim result
Set objWshShell = WScript.CreateObject("WScript.Shell")

'削除コマンド コマンドの/Fは強制削除。Runメソッドの0はウインドウ非表示、Trueは同期処理
result = objWshShell.Run("REG DELETE HKEY_CURRENT_USER\A_test /F", 0, True)

'結果判定
If result = 0 Then
  WScript.echo "成功"
Else
  WScript.echo "失敗"
End If

Set objWshShell = Nothing
----------------------------------------------------------------------------

とっても簡単です。

ちなみに、VBSだけでゴリゴリ消す方法もあるみたいです。
サブキーを先に全て削除してから、親キーを削除するという煩雑な方法ですが・・・興味ある方はここのサイトから確認してください。

Windows スクリプト ホストの RegDelete メソッドは、サブキーが格納されているキーを削除できません。 

(2016-03-13)
記事検索
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

Feed
follow us in feedly
  • ライブドアブログ